IsoContours uses a fast datastructure to compute intersections of horizontal planes with a given list of triangles. More...
#include <IsoContours.h>
Public Member Functions | |
IsoContours (std::vector< Point2 > &vCorners, const Vector2 &dirVec) | |
IsoContours (std::vector< Triangle2 * > &vTriangles) | |
bool | getContours (double height, std::vector< std::vector< Segment2 > > &vvContours, bool bVerbose, bool bAutoPerturbate=true) |
double | getMaxHeight () |
double | getMinHeight () |
void | getProfile (const Point2 &p, std::vector< Segment2 > &vSegmentsOut) |
Protected Member Functions | |
IsoContours (const IsoContours &other) | |
IsoContours & | operator= (const IsoContours &other) |
Protected Attributes | |
std::vector< Triangle2 * > | vTriangles |
IsoContours uses a fast datastructure to compute intersections of horizontal planes with a given list of triangles.
Experimental feature
IsoContours can be used to create profiles (slices).
vCorners | contains 3*n points to specify n triangles, i.e. it is a corners-list where 3 subsequent points define a triangle. |
dirVec | specifies the slice direction to compute profiles |
bool GEOM_FADE25D::IsoContours::getContours | ( | double | height, |
std::vector< std::vector< Segment2 > > & | vvContours, | ||
bool | bVerbose, | ||
bool | bAutoPerturbate = true |
||
) |
Get Contours
Computes the intersection of a horizontal plane at a certain height with all triangles and returns a vector of assembled polygons and polylines. The method works only for height
values that do not occur as heights of any of the vertices. It returns false in such as case except bAutoPerturbate=true
. In this case a tiny offset is automatically added to height
.
double GEOM_FADE25D::IsoContours::getMaxHeight | ( | ) |
The the maximum height
Returns the largest z-coordinate
double GEOM_FADE25D::IsoContours::getMinHeight | ( | ) |
Get the minimum height
Returns the smallest z coordinate
void GEOM_FADE25D::IsoContours::getProfile | ( | const Point2 & | p, |
std::vector< Segment2 > & | vSegmentsOut | ||
) |
Get Profile
This is a new method to compute profiles i.e., to produce slices orthogonal to a direction specified in the constructor IsoContours(std::vector<Point2>& vCorners,const Vector2& dirVec)