Corrections sur les toits & bâtiments.
This commit is contained in:
parent
8db867a104
commit
9d668fe95e
|
@ -145,7 +145,6 @@ void BatimentTri::sousBatiments() {
|
||||||
Triangle t = c << c.minAngleCorner();
|
Triangle t = c << c.minAngleCorner();
|
||||||
TriBool tb = w << c.minAngleCorner();
|
TriBool tb = w << c.minAngleCorner();
|
||||||
|
|
||||||
// TODO : ajuster pour que la distance c[LEFT] -- left et c[LEFT] -- base soit similaire.
|
|
||||||
Vertex left = Segment(t[LEFT], t[TOP]).randomPos(seed, 0, 1.f/3.f, 2.f/3.f);
|
Vertex left = Segment(t[LEFT], t[TOP]).randomPos(seed, 0, 1.f/3.f, 2.f/3.f);
|
||||||
float dLeft = Segment(t[LEFT], left).length();
|
float dLeft = Segment(t[LEFT], left).length();
|
||||||
float posBase = dLeft / Segment(t[LEFT], t[RIGHT]).length();
|
float posBase = dLeft / Segment(t[LEFT], t[RIGHT]).length();
|
||||||
|
|
|
@ -12,8 +12,10 @@ void ToitQuad::getBoundingBoxPoints() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void ToitQuad::triangulation() {
|
void ToitQuad::triangulation() {
|
||||||
// TODO : si angles pas acceptables, plat().
|
if (c.maxAngle() > Angle::d2r(90+40) || c.minAngle() < Angle::d2r(90-40)) {
|
||||||
// TODO : toit plat : surélever.
|
plat();
|
||||||
|
return;
|
||||||
|
}
|
||||||
switch (hash2(seed, -1) % 5) {
|
switch (hash2(seed, -1) % 5) {
|
||||||
case 0: pointCentral(); break;
|
case 0: pointCentral(); break;
|
||||||
case 1: quatrePoints(); break;
|
case 1: quatrePoints(); break;
|
||||||
|
@ -86,7 +88,9 @@ void ToitQuad::deuxPointsVerticaux() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void ToitQuad::plat() {
|
void ToitQuad::plat() {
|
||||||
addGPUQuad(c, Couleurs::toit);
|
Quad ch = c.offsetNormal(Dimensions::hauteurToit * 0.6f);
|
||||||
|
addGPUFourQuads(c, ch, Couleurs::toit);
|
||||||
|
addGPUQuad(ch, Couleurs::toit);
|
||||||
}
|
}
|
||||||
|
|
||||||
ToitTri::ToitTri(Triangle _c, float _height) : Chose(), c(_c), height(_height) {
|
ToitTri::ToitTri(Triangle _c, float _height) : Chose(), c(_c), height(_height) {
|
||||||
|
@ -99,6 +103,10 @@ void ToitTri::getBoundingBoxPoints() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void ToitTri::triangulation() {
|
void ToitTri::triangulation() {
|
||||||
|
if (c.maxAngle() > Angle::d2r(120) || c.minAngle() < Angle::d2r(30)) {
|
||||||
|
plat();
|
||||||
|
return;
|
||||||
|
}
|
||||||
plat(); return;
|
plat(); return;
|
||||||
switch (hash2(seed, -1) % 5) {
|
switch (hash2(seed, -1) % 5) {
|
||||||
case 0: pointCentral(); break;
|
case 0: pointCentral(); break;
|
||||||
|
@ -143,6 +151,7 @@ void ToitTri::deuxPointsVerticaux() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void ToitTri::plat() {
|
void ToitTri::plat() {
|
||||||
|
Triangle ch = c.offsetNormal(Dimensions::hauteurToit * 0.6f);
|
||||||
|
addGPUThreeQuads(c, ch, Couleurs::toit);
|
||||||
addGPUTriangle(c, Couleurs::toit);
|
addGPUTriangle(c, Couleurs::toit);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user