#include <Polyhedron.hpp>
◆ Polyhedron()
openstudio::Polyhedron::Polyhedron |
( |
std::vector< Surface3d > | surfaces | ) |
|
This will call updateZonePolygonsForMissingColinearPoints if needed (if original Polyhedron isn't enclosed) to add any missing colinear point (=splitting up edges in case surface intersection hasn't been performed already)
◆ calcDivergenceTheoremVolume()
double openstudio::Polyhedron::calcDivergenceTheoremVolume |
( |
| ) |
const |
◆ calcPolyhedronVolume()
double openstudio::Polyhedron::calcPolyhedronVolume |
( |
| ) |
const |
|
protected |
◆ edgesNotTwo()
std::vector< Surface3dEdge > openstudio::Polyhedron::edgesNotTwo |
( |
bool | includeCreatedEdges = false | ) |
const |
All unique edges that aren't used exactly twice.
◆ findSurfacesWithIncorrectOrientation()
std::vector< Surface3d > openstudio::Polyhedron::findSurfacesWithIncorrectOrientation |
( |
| ) |
const |
Finds all edges that two surface define in the same order (if all surfaces are correctly oriented, they should match in reverse order) For each matching edge, we pick a single surface between the two surfaces that define it but retainign the surface that has the largest proportion of conflicted edges / total number of edges.
◆ hasAddedColinearPoints()
bool openstudio::Polyhedron::hasAddedColinearPoints |
( |
| ) |
const |
◆ hasAnySurfaceWithIncorrectOrientation()
bool openstudio::Polyhedron::hasAnySurfaceWithIncorrectOrientation |
( |
| ) |
const |
In an ENCLOSED Polyhedron, all edges should be used twice.
And if all surfaces are correctly oriented, each edge should match an edge that is in reversed order
◆ hasEdgesNot2()
bool openstudio::Polyhedron::hasEdgesNot2 |
( |
| ) |
const |
|
protected |
◆ isCompletelyInsideOut()
bool openstudio::Polyhedron::isCompletelyInsideOut |
( |
| ) |
const |
◆ isEnclosedVolume()
bool openstudio::Polyhedron::isEnclosedVolume |
( |
| ) |
const |
Test if the volume described by the polyhedron if full enclosed (would not leak).
This is done by checking that every edge is used exactly TWICE.
◆ numVertices()
size_t openstudio::Polyhedron::numVertices |
( |
| ) |
const |
◆ performEdgeMatching()
void openstudio::Polyhedron::performEdgeMatching |
( |
| ) |
|
|
protected |
◆ polyhedronVolume()
double openstudio::Polyhedron::polyhedronVolume |
( |
| ) |
const |
◆ resetEdgeMatching()
void openstudio::Polyhedron::resetEdgeMatching |
( |
| ) |
|
|
protected |
◆ surface3ds()
std::vector< Surface3d > openstudio::Polyhedron::surface3ds |
( |
| ) |
const |
◆ uniqueEdges()
std::vector< Surface3dEdge > openstudio::Polyhedron::uniqueEdges |
( |
| ) |
const |
Ignores orientation of edges to return the unique edges.
◆ uniqueVertices()
std::vector< Point3d > openstudio::Polyhedron::uniqueVertices |
( |
| ) |
const |
◆ updateZonePolygonsForMissingColinearPoints()
void openstudio::Polyhedron::updateZonePolygonsForMissingColinearPoints |
( |
| ) |
|
|
protected |