Ajout de RouteTriChaussee.
This commit is contained in:
parent
3ad78d40ea
commit
1eda7b7456
|
@ -51,6 +51,8 @@ class Chose;
|
||||||
|
|
||||||
#include "rules/route/routequadcarrefour.hh"
|
#include "rules/route/routequadcarrefour.hh"
|
||||||
#include "rules/route/routequadchaussee.hh"
|
#include "rules/route/routequadchaussee.hh"
|
||||||
|
#include "rules/route/routetrichaussee.hh"
|
||||||
|
|
||||||
#include "rules/route/trottoirquadnormal.hh"
|
#include "rules/route/trottoirquadnormal.hh"
|
||||||
|
|
||||||
#include "rules/terrain/terrainquadherbe.hh"
|
#include "rules/terrain/terrainquadherbe.hh"
|
||||||
|
|
1
main.cpp
1
main.cpp
|
@ -26,7 +26,6 @@ int main() {
|
||||||
Vertex se(size, 0, 0);
|
Vertex se(size, 0, 0);
|
||||||
Vertex sw(0, 0, 0);
|
Vertex sw(0, 0, 0);
|
||||||
Vertex nw(0, size, 0);
|
Vertex nw(0, size, 0);
|
||||||
Chose::initialSeed = 1889676033;
|
|
||||||
Chose* c = QuartierQuad::factory(Chose::initialSeed, 0, ne, se, sw, nw);
|
Chose* c = QuartierQuad::factory(Chose::initialSeed, 0, ne, se, sw, nw);
|
||||||
c->triangulation();
|
c->triangulation();
|
||||||
c->updateAABB();
|
c->updateAABB();
|
||||||
|
|
|
@ -101,4 +101,4 @@ void Chose::drawAABB() {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int Chose::initialSeed = 779313522;//random_seed();
|
unsigned int Chose::initialSeed = random_seed();
|
||||||
|
|
|
@ -18,8 +18,8 @@ bool QuartierQuadAngle::split() {
|
||||||
addChild(QuartierTri::factory(seed, 0, t1.v1, t1.v2, t1.v3));
|
addChild(QuartierTri::factory(seed, 0, t1.v1, t1.v2, t1.v3));
|
||||||
addChild(QuartierTri::factory(seed, 1, t2.v1, t2.v2, t2.v3));
|
addChild(QuartierTri::factory(seed, 1, t2.v1, t2.v2, t2.v3));
|
||||||
addChild(new RouteQuadChaussee(t1.v1, t1.v3, t2.v1, t2.v3));
|
addChild(new RouteQuadChaussee(t1.v1, t1.v3, t2.v1, t2.v3));
|
||||||
addChild(new QuartierTri(t2.v3, corner[NE+i], t1.v1)); // TODO : new RouteTri
|
addChild(new RouteTriChaussee(t1.v1, corner[NE+i], t2.v3));
|
||||||
addChild(new QuartierTri(t1.v3, corner[SW+i], t2.v1)); // TODO : new RouteTri
|
addChild(new RouteTriChaussee(t2.v1, corner[SW+i], t1.v3));
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -40,7 +40,7 @@ bool QuartierQuadAngle::split() {
|
||||||
addChild(QuartierTri::factory(seed, 0, tn.v1, tn.v2, tn.v3));
|
addChild(QuartierTri::factory(seed, 0, tn.v1, tn.v2, tn.v3));
|
||||||
addChild(QuartierQuad::factory(seed, 1, q.corner[0], q.corner[1], q.corner[2], q.corner[3]));
|
addChild(QuartierQuad::factory(seed, 1, q.corner[0], q.corner[1], q.corner[2], q.corner[3]));
|
||||||
addChild(new RouteQuadChaussee(tn.v1, tn.v3, q.corner[1], q.corner[0]));
|
addChild(new RouteQuadChaussee(tn.v1, tn.v3, q.corner[1], q.corner[0]));
|
||||||
addChild(new QuartierTri(tn.v3, oldv3, q.corner[1])); // TODO : new RouteTri
|
addChild(new RouteTriChaussee(q.corner[1], oldv3, tn.v3));
|
||||||
} else {
|
} else {
|
||||||
q = Quad(corner[NW+i], e, corner[SE+i], corner[SW+i]);
|
q = Quad(corner[NW+i], e, corner[SE+i], corner[SW+i]);
|
||||||
Vertex oldv1 = te.v1;
|
Vertex oldv1 = te.v1;
|
||||||
|
@ -49,7 +49,7 @@ bool QuartierQuadAngle::split() {
|
||||||
addChild(QuartierTri::factory(seed, 0, te.v1, te.v2, te.v3));
|
addChild(QuartierTri::factory(seed, 0, te.v1, te.v2, te.v3));
|
||||||
addChild(QuartierQuad::factory(seed, 1, q.corner[0], q.corner[1], q.corner[2], q.corner[3]));
|
addChild(QuartierQuad::factory(seed, 1, q.corner[0], q.corner[1], q.corner[2], q.corner[3]));
|
||||||
addChild(new RouteQuadChaussee(te.v1, te.v3, q.corner[1], q.corner[0]));
|
addChild(new RouteQuadChaussee(te.v1, te.v3, q.corner[1], q.corner[0]));
|
||||||
addChild(new QuartierTri(q.corner[0], oldv1, te.v1)); // TODO : new RouteTri
|
addChild(new RouteTriChaussee(te.v1, oldv1, q.corner[0]));
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,17 +33,3 @@ void RouteQuadChaussee::triangulation() {
|
||||||
addTriangle(new Triangle(corner[NE], corner[NW], corner[SW], 0x36, 0x36, 0x36));
|
addTriangle(new Triangle(corner[NE], corner[NW], corner[SW], 0x36, 0x36, 0x36));
|
||||||
addTriangle(new Triangle(corner[SW], corner[SE], corner[NE], 0x36, 0x36, 0x36));
|
addTriangle(new Triangle(corner[SW], corner[SE], corner[NE], 0x36, 0x36, 0x36));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Version avec trottoirs.
|
|
||||||
/*void RouteQuadChaussee::triangulation() {
|
|
||||||
triangles.reserve(2);
|
|
||||||
Vertex nne, nnw, nse, nsw; // Nouvel emplacement de la route.
|
|
||||||
|
|
||||||
nnw = nw + ((ne - nw)/6);
|
|
||||||
nsw = sw + ((se - sw)/6);
|
|
||||||
nne = ne - ((ne - nw)/6);
|
|
||||||
nse = se - ((se - sw)/6);
|
|
||||||
|
|
||||||
addChild(new TrottoirRoute(nnw, nsw, sw, nw, 20));
|
|
||||||
addChild(new TrottoirRoute(ne, se, nse, nne,20));
|
|
||||||
}*/
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
#ifndef _RULES_ROUTE_HH_
|
#ifndef _RULES_ROUTE_QUAD_CHAUSSEE_HH_
|
||||||
#define _RULES_ROUTE_HH_
|
#define _RULES_ROUTE_QUAD_CHAUSSEE_HH_
|
||||||
|
|
||||||
#include "all_includes.hh"
|
#include "all_includes.hh"
|
||||||
|
|
||||||
|
|
26
rules/route/routetrichaussee.cpp
Normal file
26
rules/route/routetrichaussee.cpp
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
#include "all_includes.hh"
|
||||||
|
|
||||||
|
RouteTriChaussee::RouteTriChaussee(Vertex left, Vertex top, Vertex right) : Chose() {
|
||||||
|
addEntropy(left, top, right);
|
||||||
|
corner[0] = left;
|
||||||
|
corner[1] = top;
|
||||||
|
corner[2] = right;
|
||||||
|
}
|
||||||
|
|
||||||
|
void RouteTriChaussee::getBoundingBoxPoints() {
|
||||||
|
addBBPoint(corner[0]);
|
||||||
|
addBBPoint(corner[1]);
|
||||||
|
addBBPoint(corner[2]);
|
||||||
|
addBBPoint(corner[0] + Vertex(0,0,1000)); // TODO
|
||||||
|
addBBPoint(corner[1] + Vertex(0,0,1000));
|
||||||
|
addBBPoint(corner[2] + Vertex(0,0,1000));
|
||||||
|
}
|
||||||
|
|
||||||
|
bool RouteTriChaussee::split() {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void RouteTriChaussee::triangulation() {
|
||||||
|
triangles.reserve(1);
|
||||||
|
addTriangle(new Triangle(corner[0], corner[1], corner[2], 0x36, 0x36, 0x36));
|
||||||
|
}
|
17
rules/route/routetrichaussee.hh
Normal file
17
rules/route/routetrichaussee.hh
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
#ifndef _RULES_ROUTE_TRI_CHAUSSEE_HH_
|
||||||
|
#define _RULES_ROUTE_TRI_CHAUSSEE__HH_
|
||||||
|
|
||||||
|
#include "all_includes.hh"
|
||||||
|
|
||||||
|
class RouteTriChaussee : public Chose {
|
||||||
|
private :
|
||||||
|
Vertex corner[3];
|
||||||
|
|
||||||
|
public :
|
||||||
|
RouteTriChaussee(Vertex left, Vertex top, Vertex right);
|
||||||
|
virtual bool split();
|
||||||
|
virtual void triangulation();
|
||||||
|
virtual void getBoundingBoxPoints();
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in New Issue
Block a user