Fonction concaveCoroner() et isConcave() OK.
This commit is contained in:
parent
4fb95b083b
commit
16841b35b1
|
@ -182,6 +182,23 @@ Coin Quad::concaveCorner() {
|
||||||
return NW;
|
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) {
|
Quad operator+(const Quad& q, const Vertex& v) {
|
||||||
return Quad(q[NE] + v, q[SE] + v, q[SW] + v, q[NW] + 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 minLengthSide() const;
|
||||||
Cardinal maxLengthSide() const;
|
Cardinal maxLengthSide() const;
|
||||||
Coin concaveCorner();
|
Coin concaveCorner();
|
||||||
|
bool isConcave();
|
||||||
float angle(Coin corner) const;
|
float angle(Coin corner) const;
|
||||||
float minAngle() const;
|
float minAngle() const;
|
||||||
float maxAngle() const;
|
float maxAngle() const;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user