Merge branch 'master' of https://github.com/jsmaniac/2011-m2s3-city-builder
This commit is contained in:
commit
05ac0cd0bd
2
main.cpp
2
main.cpp
|
@ -3,7 +3,7 @@
|
||||||
int main() {
|
int main() {
|
||||||
// Générer une tile de base
|
// Générer une tile de base
|
||||||
std::cout << "Initial seed = " << Chose::initialSeed << std::endl;
|
std::cout << "Initial seed = " << Chose::initialSeed << std::endl;
|
||||||
float size = 200 * 100;
|
float size = 500 * 100;
|
||||||
Vertex ne(size, size, 0);
|
Vertex ne(size, size, 0);
|
||||||
Vertex se(size, 0, 0);
|
Vertex se(size, 0, 0);
|
||||||
Vertex sw(0, 0, 0);
|
Vertex sw(0, 0, 0);
|
||||||
|
|
|
@ -9,7 +9,8 @@ void QuartierQuad::getBoundingBoxPoints() {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool QuartierQuad::split() {
|
bool QuartierQuad::split() {
|
||||||
bool small = c.minLength() < 3500;
|
bool small = c.minLength() < 35 * 100;
|
||||||
|
bool big = (c.minLengthNS() > 100 * 100 || c.minLengthEW() > 100 * 100) && c.minLength() > 40*100 && c.maxLength() < 300*100;
|
||||||
bool isConcave = c.isConcave();
|
bool isConcave = c.isConcave();
|
||||||
bool nearConcave = c.maxAngle() > Angle::d2r(160);
|
bool nearConcave = c.maxAngle() > Angle::d2r(160);
|
||||||
bool anglesOk = c.minAngle() > Angle::d2r(90-40) && c.maxAngle() < Angle::d2r(90+40);
|
bool anglesOk = c.minAngle() > Angle::d2r(90-40) && c.maxAngle() < Angle::d2r(90+40);
|
||||||
|
@ -19,7 +20,9 @@ bool QuartierQuad::split() {
|
||||||
concave();
|
concave();
|
||||||
else if (nearConcave)
|
else if (nearConcave)
|
||||||
angleAngle();
|
angleAngle();
|
||||||
else if (!small && !anglesOk && proba(seed, -2, 1, 2))
|
else if (big && anglesOk && proba(seed, -2, 1, 4))
|
||||||
|
longueRue();
|
||||||
|
else if (!small && !anglesOk && proba(seed, -3, 1, 2))
|
||||||
angleAngle();
|
angleAngle();
|
||||||
else if (!small && !anglesOk)
|
else if (!small && !anglesOk)
|
||||||
angleCote();
|
angleCote();
|
||||||
|
@ -104,6 +107,18 @@ void QuartierQuad::carre() {
|
||||||
addChild(new QuartierQuad(Quad(c[NE+i], middle[E+i], center, middle[N+i])));
|
addChild(new QuartierQuad(Quad(c[NE+i], middle[E+i], center, middle[N+i])));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void QuartierQuad::longueRue() {
|
||||||
|
Quad q = c << c.maxLengthSide();
|
||||||
|
Vertex e = Segment(q[NE], q[SE]).randomPos(seed, 0, 1.f/3.f, 2.f/3.f);
|
||||||
|
Vertex w = Segment(q[SW], q[NW]).randomPos(seed, 1, 1.f/3.f, 2.f/3.f);
|
||||||
|
Quad qn = Quad(q[NE], e, w, q[NW]).inset(S, 7*100);
|
||||||
|
Quad qs = Quad(q[SW], w, e, q[SE]).inset(S, 7*100);
|
||||||
|
|
||||||
|
addChild(new QuartierQuad(qn));
|
||||||
|
addChild(new QuartierQuad(qs));
|
||||||
|
addChild(new BatimentQuad_(Quad(qn[SE], qs[SW], qs[SE], qn[SW]))); // TODO
|
||||||
|
}
|
||||||
|
|
||||||
void QuartierQuad::batiments() {
|
void QuartierQuad::batiments() {
|
||||||
Quad qtrottoir = c.insetNESW(Dimensions::largeurRoute);
|
Quad qtrottoir = c.insetNESW(Dimensions::largeurRoute);
|
||||||
Quad qinterieur = qtrottoir.insetNESW(Dimensions::largeurTrottoir);
|
Quad qinterieur = qtrottoir.insetNESW(Dimensions::largeurTrottoir);
|
||||||
|
|
|
@ -18,6 +18,7 @@ private:
|
||||||
void angleCote();
|
void angleCote();
|
||||||
void rect();
|
void rect();
|
||||||
void carre();
|
void carre();
|
||||||
|
void longueRue();
|
||||||
void batiments();
|
void batiments();
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -168,4 +168,4 @@ void Chose::drawAABB() {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int Chose::initialSeed = random_seed();
|
unsigned int Chose::initialSeed = 1896509207;//random_seed();
|
||||||
|
|
Loading…
Reference in New Issue
Block a user