commit b38b9bde55d19981bbf308e9183483d372ec97f2
parent 16841b35b15c2ffede21bf0285c4aa20f77d5006
Author: Yoann <yoann.b87@voila.fr>
Date: Thu, 12 Jan 2012 21:30:21 +0100
Découpage des quartier dits "concaves" en deux quartier triangulaires.
Diffstat:
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/rules/architecture/quartier.cpp b/rules/architecture/quartier.cpp
@@ -10,7 +10,8 @@ void QuartierQuad_::getBoundingBoxPoints() {
bool QuartierQuad_::split() {
bool small = c.minLength() < 3500;
- bool isConcave = c.maxAngle() > Angle::d2r(160);
+ bool isConcave = c.isConcave();
+ //bool isConcave = c.maxAngle() > Angle::d2r(160);
bool anglesOk = c.minAngle() > Angle::d2r(90-40) && c.maxAngle() < Angle::d2r(90+40);
bool tooWideX = c.minLengthEW() * 2 < c.maxLengthNS(); // trop allongé (côté E ou W deux fois plus petit que le côté N ou S).
bool tooWideY = c.minLengthNS() * 2 < c.maxLengthEW(); // trop allongé (côté N ou S deux fois plus petit que le côté E ou W).
@@ -39,7 +40,12 @@ void QuartierQuad_::triangulation() {
}
void QuartierQuad_::concave() {
- // TODO
+ // TODO À vérifier.
+ Triangle t1(c[c.concaveCorner()], c[c.concaveCorner()+1], c[c.concaveCorner()+2]);
+ Triangle t2(c[c.concaveCorner()+2], c[c.concaveCorner()+3], c[c.concaveCorner()]);
+
+ addChild(new QuartierTri_(t1));
+ addChild(new QuartierTri_(t2));
}
void QuartierQuad_::angleCote() {