www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs

commit 4fb95b083b51c2cf334da5d207bd12085cbdc6e3
parent 50a348eff890a34978c8ad514b6ef089347e2399
Author: Yoann <yoann.b87@voila.fr>
Date:   Thu, 12 Jan 2012 20:57:27 +0100

Suite et fin de la fonction concaveCorner().

Diffstat:
Mgeometry/quad.cpp | 33++++++++++++++++++++++-----------
1 file changed, 22 insertions(+), 11 deletions(-)

diff --git a/geometry/quad.cpp b/geometry/quad.cpp @@ -158,17 +158,28 @@ Coin Quad::maxAngleCorner() const { } Coin Quad::concaveCorner() { - Vertex nne = Triangle(c[NW], c[NE], c[SE]).normal(); - Vertex nse = Triangle(c[NE], c[SE], c[SW]).normal(); - Vertex nsw = Triangle(c[SE], c[SW], c[NW]).normal(); - Vertex nnw = Triangle(c[SW], c[NW], c[NE]).normal(); - - nne = nne; - nnw = nnw; - nse = nse; - nsw = nsw; - - return NW; + 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 dne2 = (nse - nne).norm(); + float dse1 = (nne - nse).norm(); + float dse2 = (nsw - nse).norm(); + float dsw1 = (nse - nsw).norm(); + float dsw2 = (nnw - nsw).norm(); + //float dnw1 = (nsw - nnw).norm(); + //float dnw2 = (nne - nnw).norm(); + + if(dne1 >= 1.5 && dne2 >= 1.5) + return NE; + else if(dse1 >= 1.5 && dse2 >= 1.5) + return SE; + else if(dsw1 >= 1.5 && dsw2 >= 1.5) + return SW; + else + return NW; } Quad operator+(const Quad& q, const Vertex& v) {