Fonction concaveCoroner() et isConcave() OK.
This commit is contained in:
parent
4fb95b083b
commit
16841b35b1
|
@ -182,6 +182,23 @@ Coin Quad::concaveCorner() {
|
|||
return NW;
|
||||
}
|
||||
|
||||
bool Quad::isConcave() {
|
||||
Vertex nne = Triangle(c[NW], c[NE], c[SE]).normalizedNormal();
|
||||
Vertex nse = Triangle(c[NE], c[SE], c[SW]).normalizedNormal();
|
||||
Vertex nsw = Triangle(c[SE], c[SW], c[NW]).normalizedNormal();
|
||||
Vertex nnw = Triangle(c[SW], c[NW], c[NE]).normalizedNormal();
|
||||
|
||||
float dne1 = (nnw - nne).norm();
|
||||
float dse1 = (nne - nse).norm();
|
||||
float dsw1 = (nse - nsw).norm();
|
||||
float dnw1 = (nsw - nnw).norm();
|
||||
|
||||
if(dne1 >= 1.5 || dse1 >= 1.5 || dsw1 >= 1.5 || dnw1 >= 1.5)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
Quad operator+(const Quad& q, const Vertex& v) {
|
||||
return Quad(q[NE] + v, q[SE] + v, q[SW] + v, q[NW] + v);
|
||||
}
|
||||
|
|
|
@ -38,6 +38,7 @@ class Quad {
|
|||
Cardinal minLengthSide() const;
|
||||
Cardinal maxLengthSide() const;
|
||||
Coin concaveCorner();
|
||||
bool isConcave();
|
||||
float angle(Coin corner) const;
|
||||
float minAngle() const;
|
||||
float maxAngle() const;
|
||||
|
|
Loading…
Reference in New Issue
Block a user