45 #if GEOM_PSEUDO3D==GEOM_TRUE
54 #if GEOM_PSEUDO3D==GEOM_TRUE
55 namespace GEOM_FADE25D {
56 #elif GEOM_PSEUDO3D==GEOM_FALSE
57 namespace GEOM_FADE2D {
59 #error GEOM_PSEUDO3D is not defined
84 explicit Fade_2D(
unsigned numExpectedVertices=3)
86 initFade(numExpectedVertices);
155 bool saveZones(
const char* filename,std::vector<Zone2*>& vSaveZones);
180 bool saveZones(std::ostream& stream,std::vector<Zone2*>& vSaveZones);
194 bool load(
const char* filename,std::vector<Zone2*>& vZones);
208 bool load(std::istream& stream,std::vector<Zone2*>& vZones);
285 void show(
const char* postscriptFilename,
bool bWithConstraints=
true)
const;
302 #if GEOM_PSEUDO3D==GEOM_TRUE
310 void showGeomview(
const char* filename,
const char* color=
"1 1 1 0.5")
const;
342 void remove(std::vector<Point2*>& vPoints);
365 void getConvexHull(
bool bAllVertices,std::vector<Point2*>& vConvexHullPointsOut);
367 #if GEOM_PSEUDO3D==GEOM_TRUE
411 void insert(
const std::vector<Point2>& vInputPoints);
427 void insert(
const std::vector<Point2>& vInputPoints,std::vector<Point2*>& vHandles);
429 #if GEOM_PSEUDO3D==GEOM_TRUE
498 #if GEOM_PSEUDO3D==GEOM_TRUE
524 bool getHeight(
double x,
double y,
double& heightOut,
Triangle2* pApproxT=NULL,
double tolerance=0)
const;
543 double minAngleDegree,
544 double minEdgeLength,
545 double maxEdgeLength,
546 bool bAllowConstraintSplitting
733 #if GEOM_PSEUDO3D==GEOM_TRUE
735 std::vector<Segment2>& vSegments,
737 bool bOrientedSegments=
false,
738 bool bUseHeightOfLatest=
false
742 std::vector<Segment2>& vSegments,
744 bool bOrientedSegments=
false
788 Zone2*
createZone(
const std::vector<ConstraintGraph2*>& vConstraintGraphs,ZoneLocation zoneLoc,
const Point2& startPoint,
bool bVerbose=
true);
969 bool checkZoneQuality(
Zone2* pZone,
double minAngle,
const char* name,
const AcceptExperimentalFeature& accept);
971 void setName(
const char* s);
973 std::string getName()
const;
998 bool bReorientIfNeeded,
999 bool bCreateExtendedBoundingBox
1040 bool bTurnEdgesIntoConstraints);
1055 bool bTurnEdgesIntoConstraints);
1125 #if GEOM_PSEUDO3D==GEOM_TRUE
1126 bool drape( std::vector<Segment2>& vSegmentsIn,
1127 std::vector<Segment2>& vSegmentsOut,
1128 double zTolerance)
const;
1130 bool drape( std::vector<Segment2>& vSegmentsIn,
1131 std::vector<Segment2>& vSegmentsOut)
const;
1157 void enableMultithreading();
1160 void internal(
int au,
int fu,
const char* s=
"");
1164 void setDev(
const char* s,
int ival,
double dval);
1168 void initFade(
unsigned numExpectedVertices);
1187 std::stringstream ss;
1189 dt1.
load(ss,vZones1);
ConstraintInsertionStrategy
Constraint Insertion Strategy determines how a constraint edge shall be inserted:
Definition: ConstraintSegment2.h:52
void copyFade(Fade_2D &dt0, std::vector< Zone2 * > &vZones0, Fade_2D &dt1, std::vector< Zone2 * > &vZones1)
Copy a Fade_2D object and selected Zone2 objects.
Definition: Fade_2D.h:1185
Bbox2 is an axis aligned 2D bounding box.
Definition: Bbox2.h:37
CloudPrepare simplifies overdense point clouds and helps to avoid memory-usage-peaks during data tran...
Definition: CloudPrepare.h:87
ConstraintGraph2 is a set of Constraint Edges (ConstraintSegment2)
Definition: ConstraintGraph2.h:52
A ConstraintSegment2 represents a Constraint Edge.
Definition: ConstraintSegment2.h:69
Fade_2D is the Delaunay triangulation class.
Definition: Fade_2D.h:73
void getTrianglePointers(std::vector< Triangle2 * > &vAllTriangles) const
Get pointers to all triangles.
void writeWebScene(const char *path, Zone2 *pZone) const
Write a zone to an *.obj file.
bool getHeight(double x, double y, double &heightOut, Triangle2 *pApproxT=NULL, double tolerance=0) const
Compute the height of a certain point.
bool load(const char *filename, std::vector< Zone2 * > &vZones)
Load a triangulation.
void getVertexPointers(std::vector< Point2 * > &vAllPoints) const
Get pointers to all vertices.
void statistics(const char *s) const
Statistics.
void cutTriangles(const Point2 &knifeStart, const Point2 &knifeEnd, bool bTurnEdgesIntoConstraints)
Cut through a triangulation.
void getConvexHull(bool bAllVertices, std::vector< Point2 * > &vConvexHullPointsOut)
Compute the convex hull.
void getAliveConstraintSegments(std::vector< ConstraintSegment2 * > &vAliveConstraintSegments) const
Get active (alive) constraint segments.
bool drape(std::vector< Segment2 > &vSegmentsIn, std::vector< Segment2 > &vSegmentsOut, double zTolerance) const
Drape segments along a surface.
void insert(const std::vector< Point2 > &vInputPoints)
Insert a vector of points.
void showGeomview(Visualizer3 *pVis, const char *color="1 1 1 0.5") const
Draws the triangulation in 3D.
void writeWebScene(const char *path) const
Write the current triangulation to an *.obj file.
Voronoi2 * getVoronoiDiagram()
Get the Voronoi diagram.
void unsubscribe(MsgType msgType, MsgBase *pMsg)
Unregister a message receiver.
void setFastMode(bool bFast)
Set fast mode.
void remove(std::vector< Point2 * > &vPoints)
Remove vertices.
void insert(CloudPrepare *pCloudPrepare, bool bClear=true)
Insert points from a CloudPrepare object.
void insert(int numPoints, double *aCoordinates, Point2 **aHandles)
Insert points from an array.
void refineAdvanced(MeshGenParams *pParameters)
Delaunay refinement and grid meshing.
size_t numberOfTriangles() const
Number of triangles.
void writeObj(const char *filename, Zone2 *pZone) const
Write a zone to an *.obj file.
void insert(const std::vector< Point2 > &vInputPoints, std::vector< Point2 * > &vHandles)
Insert points from a std::vector and store pointers in vHandles.
ConstraintGraph2 * createConstraint(std::vector< Segment2 > &vSegments, ConstraintInsertionStrategy cis, bool bOrientedSegments=false, bool bUseHeightOfLatest=false)
Add constraint edges (edges, polyline, polygon) .
ConstraintSegment2 * getConstraintSegment(Point2 *p0, Point2 *p1) const
Retrieve a ConstraintSegment2.
bool saveZones(std::ostream &stream, std::vector< Zone2 * > &vSaveZones)
Save zones.
bool isConstraint(Point2 *p0, Point2 *p1) const
Check if an edge is a constraint edge.
Point2 * insert(const Point2 &p)
Insert a single point.
void applyConstraintsAndZones()
Apply conforming constraints and zones (deprecated!)
bool hasArea() const
Check if the triangulation contains triangles (which is the case if at least 3 non-collinear points e...
void refine(Zone2 *pZone, double minAngleDegree, double minEdgeLength, double maxEdgeLength, bool bAllowConstraintSplitting)
Delaunay refinement.
void remove(Point2 *pVertex)
Remove a single vertex.
Zone2 * createZone(ConstraintGraph2 *pConstraintGraph, ZoneLocation zoneLoc, bool bVerbose=true)
Create a zone.
void show(const char *postscriptFilename, bool bWithConstraints=true) const
Draws the triangulation as postscript file.
bool saveTriangulation(const char *filename, std::vector< Zone2 * > &vSaveZones)
Save a triangulation.
void showGeomview(const char *filename, const char *color="1 1 1 0.5") const
Draws the triangulation in 3D.
Point2 * getNearestNeighbor(const Point2 &p)
Get nearest neighbor.
void deleteZone(Zone2 *pZone)
Delete a Zone2 object.
size_t numberOfPoints() const
Number of points.
bool saveZones(const char *filename, std::vector< Zone2 * > &vSaveZones)
Save zones.
void getIncidentTriangles(Point2 *pVtx, std::vector< Triangle2 * > &vIncidentT) const
Get incident triangles.
Zone2 * createZone(const std::vector< ConstraintGraph2 * > &vConstraintGraphs, ZoneLocation zoneLoc, const Point2 &startPoint, bool bVerbose=true)
Create a zone limited by multiple ConstraintGraph2 objects by growing from a start point.
void show(Visualizer2 *pVis, bool bWithConstraints=true) const
Draws the triangulation as postscript file using an existing Visualizer2 object.
Zone2 * importTriangles(std::vector< Point2 > &vPoints, bool bReorientIfNeeded, bool bCreateExtendedBoundingBox)
Import triangles.
Triangle2 * getAdjacentTriangle(Point2 *p0, Point2 *p1) const
Get adjacent triangle.
Triangle2 * locate(const Point2 &p)
Locate a triangle which contains p.
bool isConstraint(Point2 *pVtx) const
Check if a vertex is a constraint vertex.
void exportTriangulation(FadeExport &fadeExport, bool bWithCustomIndices, bool bClear)
Export triangulation data from Fade.
Fade_2D(unsigned numExpectedVertices=3)
Constructor of the triangulation class.
Definition: Fade_2D.h:84
void getUndirectedEdges(std::vector< Edge2 > &vUndirectedEdgesOut) const
Get undirected edges.
Zone2 * createZone(std::vector< Triangle2 * > &vTriangles, bool bVerbose=true)
Create a zone defined by a vector of triangles.
void getDirectedEdges(std::vector< Edge2 > &vDirectedEdgesOut) const
Get directed edges Edges are counterclockwise oriented around their triangle. The present method retu...
bool checkValidity(bool bCheckEmptyCircleProperty, const char *msg) const
Checks if a triangulation is valid.
bool isConstraint(Triangle2 *pT, int ith) const
Check if an edge is a constraint edge.
void printLicense() const
Prints license information.
int setNumCPU(int numCPU)
Set the number CPU cores for multithreading (deprecated)
void subscribe(MsgType msgType, MsgBase *pMsg)
Register a message receiver.
void writeObj(const char *filename) const
Write the current triangulation to an *.obj file.
bool saveTriangulation(std::ostream &stream, std::vector< Zone2 * > &vSaveZones)
Save a triangulation.
void cutTriangles(std::vector< Segment2 > &vSegments, bool bTurnEdgesIntoConstraints)
Cut through a triangulation.
Zone2 * createZone(ConstraintGraph2 *pConstraintGraph, ZoneLocation zoneLoc, const Point2 &startPoint, bool bVerbose=true)
Create a zone limited by a ConstraintGraph by growing from a start point.
bool load(std::istream &stream, std::vector< Zone2 * > &vZones)
Load a triangulation.
Zone2 * createZone_cookieCutter(std::vector< Segment2 > &vSegments, bool bProtectEdges)
Cookie Cutter The Cookie Cutter cuts out a part of a triangulation and returns it as a Zone2 object.
Orientation2 getOrientation(const Point2 &p0, const Point2 &p1, const Point2 &p2)
Compute the orientation of 3 points.
void getIncidentVertices(Point2 *pVtx, std::vector< Point2 * > &vIncidentVertices) const
Get incident vertices.
void getAliveAndDeadConstraintSegments(std::vector< ConstraintSegment2 * > &vAllConstraintSegments) const
Get all (alive and dead) constraint segments.
double measureTriangulationTime(std::vector< Point2 > &vPoints)
Measure the Delaunay triangulation time.
Bbox2 computeBoundingBox() const
Compute the axis-aligned bounding box of the points.
Parameters for the mesh generator.
Definition: MeshGenParams.h:59
MsgBase, a base class for message subscriber classes.
Definition: MsgBase.h:47
Point.
Definition: Point2.h:43
Triangle.
Definition: Triangle2.h:60
Visualizer2 is a general Postscript writer. It draws the objects Point2, Segment2,...
Definition: Visualizer2.h:56
Visualizer3 is a 3D scene writer for the Geomview viewer.
Definition: Visualizer3.h:37
Zone2 is a certain defined area of a triangulation.
Definition: Zone2.h:92
FadeExport is a simple struct to export triangulation data.
Definition: FadeExport.h:43