changes to Floorplan 3D
This commit is contained in:
@@ -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) */
|
||||
|
||||
Reference in New Issue
Block a user