Geom Software - C++ Programming and Geometry Libraries
Fade2D Documentation pages v1.74
GEOM_FADE2D::ConstraintGraph2 Class Reference

ConstraintGraph2 is a set of Constraint Edges to be enforced. These are ConstraintSegment2 objects. More...

#include <ConstraintGraph2.h>

Public Member Functions

bool isPolygon () const
 Does the constraint graph form a closed polygon? More...
bool isOriented () const
 Are the segments of the constraint graph oriented? More...
void getPolygonVertices (std::vector< Point2 *> &vVertices_)
 Get the vertices of the constraint segments. More...
ConstraintInsertionStrategy getInsertionStrategy () const
 Get the constraint insertion strategy. More...
bool isConstraint (Point2 *p0, Point2 *p1) const
 Check if an edge is a constraint. More...
bool isConstraint (ConstraintSegment2 *pCSeg) const
 Check if a ConstraintSegment2 is a member. More...
void show (const std::string &name)
 Visualization. More...
void show (Visualizer2 *pVis, const Color &color)
 Visualization. More...
void getOriginalConstraintSegments (std::vector< ConstraintSegment2 *> &vConstraintSegments_) const
 Get the original ConstraintSegment2 objects. More...
void getChildConstraintSegments (std::vector< ConstraintSegment2 *> &vConstraintSegments_) const
 Get child ConstraintSegment2 objects. More...
Dt2 * getDt2 ()
void getDirectChildren (ConstraintSegment2 *pParent, ConstraintSegment2 *&pChild0, ConstraintSegment2 *&pChild1)
 Get direct children. More...
bool isReverse (ConstraintSegment2 *pCSeg) const

Protected Attributes

Dt2 * pDt2
GeomTest * pGeomPredicates
ConstraintInsertionStrategy cis
std::vector< ConstraintSegment2 * > vCSegParents
bool bIsPolygon
std::map< ConstraintSegment2 *, bool, func_ltDerefPtr< ConstraintSegment2 * > > mCSegReverse
std::map< Point2 *, size_t > mSplitPointNum
bool bIsOriented

Detailed Description

See also
createConstraint in the Fade2D class
Constraints in a triangulation

Member Function Documentation

◆ getChildConstraintSegments()

void GEOM_FADE2D::ConstraintGraph2::getChildConstraintSegments ( std::vector< ConstraintSegment2 *> &  vConstraintSegments_) const

Returns the current constraint segments, i.e., the original ones or, if splitted, their child segments.

◆ getDirectChildren()

void GEOM_FADE2D::ConstraintGraph2::getDirectChildren ( ConstraintSegment2 pParent,
ConstraintSegment2 *&  pChild0,
ConstraintSegment2 *&  pChild1 
[in]pParentis a ConstraintSegment that may have been splitted
[out]pChild0,pChild1are the direct child segments of pParent. They can be alive or dead (splitted).

The children are returned in the correct order of the present ConstraintGraph2.

◆ getDt2()

Dt2* GEOM_FADE2D::ConstraintGraph2::getDt2 ( )
the Delaunay class it belongs to

◆ getInsertionStrategy()

ConstraintInsertionStrategy GEOM_FADE2D::ConstraintGraph2::getInsertionStrategy ( ) const

◆ getOriginalConstraintSegments()

void GEOM_FADE2D::ConstraintGraph2::getOriginalConstraintSegments ( std::vector< ConstraintSegment2 *> &  vConstraintSegments_) const

Get the original, ConstraintSegment2 objects. They are not subdivided but may be dead and have child segments (which may also be dead and have child segments...)

◆ getPolygonVertices()

void GEOM_FADE2D::ConstraintGraph2::getPolygonVertices ( std::vector< Point2 *> &  vVertices_)

Use this method to retrieve the vertices of the present ConstraintGraph2. If it forms ONE closed polygon, then the vertices are ordered and oriented in counterclockwise direction, e.g. (a,b,b,c,c,d,d,a). Otherwise they are returned in original order. Be aware that the order is only maintained if the ConstraintGraph2 has been created with Fade_2D::createConstraint(..,..,bOrientedSegments=true).

The segments of the present ConstraintGraph2 may have been splitted. In this case the split points are also contained in the result. If, in the above example, the ConstraintSegment2(a,b) has been subdivided at vertex x then the result is (a,x,x,b,b,c,c,d,d,a).
See also
Do you already know Zone2::getBorderEdges() and edgesToPolygons() ?

◆ isConstraint() [1/2]

bool GEOM_FADE2D::ConstraintGraph2::isConstraint ( Point2 p0,
Point2 p1 
) const

Checks if the edge (p0,p1) is a constraint of the present ConstraintGraph2 object.

◆ isConstraint() [2/2]

bool GEOM_FADE2D::ConstraintGraph2::isConstraint ( ConstraintSegment2 pCSeg) const

The present ConstraintGraph2 has been created using a set of edges and this method checks if the ConstraintSegment2 pCSeg is one of them. Original edges that have been splitted are not alive anymore and are no members. But their child segments are members.

◆ isOriented()

bool GEOM_FADE2D::ConstraintGraph2::isOriented ( ) const
true if the constraint graph has been created with bOrientedSegments=true or if automatic reorientation was possible which is the case for simple polygons.

◆ isPolygon()

bool GEOM_FADE2D::ConstraintGraph2::isPolygon ( ) const
true when the present ConstraintGraph forms a closed polygon.
This method won't check if it is a simple polygon (one without self-intersections).

◆ isReverse()

bool GEOM_FADE2D::ConstraintGraph2::isReverse ( ConstraintSegment2 pCSeg) const

Get the orientation of a ConstraintSegment2

A ConstraintSegment2 pCSeg is unoriented because it may participate (with different orientations) in more than just one ConstraintGraph2 and thus the vertices returned by pCSeg->getSrc() and pCSeg->getTrg() do not carry any orientation information. However, the orientation of pCSeg is stored in the ConstraintGraph2 objects where pCSeg is a member and this method returns if the source and target vertex must be exchanged to match the present graph's direction.

◆ show() [1/2]

void GEOM_FADE2D::ConstraintGraph2::show ( const std::string &  name)

◆ show() [2/2]

void GEOM_FADE2D::ConstraintGraph2::show ( Visualizer2 pVis,
const Color color 

The documentation for this class was generated from the following file: