changes to Floorplan 3D

This commit is contained in:
2018-07-30 20:59:54 +02:00
parent e45cc1d3c6
commit 4d740d6236
7 changed files with 484 additions and 76 deletions

View File

@@ -4,6 +4,7 @@
#include <vector>
#include "../../geo/Triangle3.h"
#include "../../geo/Sphere3.h"
#include "../../geo/TriangleStrip3.h"
#include "../v2/Floorplan.h"
@@ -41,15 +42,35 @@ namespace Floorplan3D {
/** append a new triangle. REFERENCE ONLY VALID UNTIL NEXT ADD */
Triangle3& addTriangle(const Point3 p1, const Point3 p2, const Point3 p3) {
triangles.push_back(Triangle3(p1, p2, p3));
Triangle3& addTriangle(const Point3 p1, const Point3 p2, const Point3 p3, const bool reverse) {
Triangle3 t(p1, p2, p3);
if (reverse) {t.reverse();}
triangles.push_back(t);
return triangles.back();
}
void addTriangleStrip(std::initializer_list<Point3> pts, bool reverse = false) {
TriangleStrip3 strip;
for (const Point3& p : pts) {strip.add(p);}
for (Triangle3 t : strip.toTriangles()) {
if (reverse) {t.reverse();}
triangles.push_back(t);
}
}
void addTriangleStrip(const std::vector<Point3>& pts, bool reverse = false) {
TriangleStrip3 strip;
for (const Point3& p : pts) {strip.add(p);}
for (Triangle3 t : strip.toTriangles()) {
if (reverse) {t.reverse();}
triangles.push_back(t);
}
}
/** append a new quad by splitting into two triangles */
void addQuad(const Point3 p1, const Point3 p2, const Point3 p3, const Point3 p4) {
addTriangle(p1, p2, p3);
addTriangle(p1, p3, p4);
void addQuad(const Point3 p1, const Point3 p2, const Point3 p3, const Point3 p4, const bool reverse = false) {
addTriangle(p1, p2, p3, reverse);
addTriangle(p1, p3, p4, reverse);
}
/** reverse all faces (CW<->CCW) */