This commit is contained in:
2018-05-12 11:00:18 +02:00
40 changed files with 640 additions and 153 deletions

View File

@@ -89,27 +89,37 @@ public:
void rebuild(Floorplan::IndoorMap* im) {
<<<<<<< HEAD
// rebuild the mesh
Ray3D::ModelFactory fac(im);
fac.exportDoors = showDoors;
mesh = fac.getMesh();
=======
>>>>>>> 45592899ee7de1a99f3086205788ff43398fad41
triaTransp.clear();
triaSolid.clear();
for (const Ray3D::Obstacle3D& obs : mesh.elements) {
const int matID = getMaterial(obs);
const Material& mat = mats[matID];
for (const Triangle3& tria : obs.triangles) {
const Point3 n = cross(tria.p2-tria.p1, tria.p3-tria.p1).normalized();
if (mat.a != 255) {
triaTransp.addTriangle(tria.p1, tria.p2, tria.p3, n, mat.r/255.0f, mat.g/255.0f, mat.b/255.0f, mat.a/255.0f);
} else {
triaSolid.addTriangle(tria.p1, tria.p2, tria.p3, n, mat.r/255.0f, mat.g/255.0f, mat.b/255.0f, mat.a/255.0f);
// rebuild the mesh
try {
Ray3D::ModelFactory fac(im);
mesh = fac.getMesh();
for (const Ray3D::Obstacle3D& obs : mesh.elements) {
const int matID = getMaterial(obs);
const Material& mat = mats[matID];
for (const Triangle3& tria : obs.triangles) {
const Point3 n = cross(tria.p2-tria.p1, tria.p3-tria.p1).normalized();
if (mat.a != 255) {
triaTransp.addTriangle(tria.p1, tria.p2, tria.p3, n, mat.r/255.0f, mat.g/255.0f, mat.b/255.0f, mat.a/255.0f);
} else {
triaSolid.addTriangle(tria.p1, tria.p2, tria.p3, n, mat.r/255.0f, mat.g/255.0f, mat.b/255.0f, mat.a/255.0f);
}
}
}
}
catch(const std::exception& e) {
std::cout << "Can't create 3D view. Failed to get mesh from model factory with error: '" << e.what() << "'" << std::endl;
}
}
};