Geom Software - C++ Programming and Geometry Libraries
Fade2D Documentation pages v1.63
Tools

Functions

bool GEOM_FADE2D::isSimplePolygon (std::vector< Segment2 > &vSegments)
isSimplePolygon More...

void GEOM_FADE2D::getDirectedEdges (std::vector< Triangle2 *> &vT, std::vector< Edge2 > &vDirectedEdgesOut)
Get directed edge The directed edges of `vT` are returned `vDirectedEdgesOut`. Directed means that each edge (a,b) with two adjacent triangles in vT is returned twice, as edge(a,b) and edge(b,a).

void GEOM_FADE2D::getUndirectedEdges (std::vector< Triangle2 *> &vT, std::vector< Edge2 > &vUndirectedEdgesOut)
Get undirected edges. More...

void GEOM_FADE2D::edgesToPolygons (std::vector< Edge2 > &vEdgesIn, std::vector< std::vector< Edge2 > > &vvPolygonsOut, std::vector< Edge2 > &vRemainingOut)
Create polygons from a set of edges. More...

void GEOM_FADE2D::getBorders (const std::vector< Triangle2 *> &vT, std::vector< Segment2 > &vBorderSegmentsOut)
Get Borders. More...

bool GEOM_FADE2D::sortRing (std::vector< Segment2 > &vRing)
Sort a vector of Segments. More...

bool GEOM_FADE2D::sortRingCCW (std::vector< Segment2 > &vRing)
Sort a vector of Segments. More...

Orientation2 GEOM_FADE2D::getOrientation2 (const Point2 *p0, const Point2 *p1, const Point2 *p2)
Get the orientation of three points. More...

Orientation2 GEOM_FADE2D::getOrientation2_mt (const Point2 *p0, const Point2 *p1, const Point2 *p2)
Get Orientation2 (MT) More...

◆ edgesToPolygons()

 void GEOM_FADE2D::edgesToPolygons ( std::vector< Edge2 > & vEdgesIn, std::vector< std::vector< Edge2 > > & vvPolygonsOut, std::vector< Edge2 > & vRemainingOut )

A number of methods in Fade returns an unorganized set of edges that delimit a certain area. But sometimes it is more beneficial to have these edges organized as a set of one or more polygons. This is the purpose of the present method.

Parameters
 [in] vEdgesIn is a vector of oriented edges [out] vvPolygonsOut contains one vector for each polygon found in the input data. [out] vRemainingOut is used to return the unused edges

The present function adds one vector<Edge2> to `vvPolygonsOut` for each polygon found in `vEdgesIn`. Each such polygon starts with the leftmost vertex (and when two or more vertices share the smallest x-coordiante then the one of them with the smallest y-coordinate is chosen). Edges that do not form a closed polygon are returned in `vRemainingOut`.

Note
An Edge2 object represents an edge of a triangle. Triangle corners are always counterclockwise (CCW) oriented. Thus outer polygons are CCW-oriented while hole-polygons are CW-oriented, see the figure.
Polygons created by edgesToPolygons

◆ getBorders()

 void GEOM_FADE2D::getBorders ( const std::vector< Triangle2 *> & vT, std::vector< Segment2 > & vBorderSegmentsOut )

Computes the border of the triangles in `vT`. The border consists of all edges having only one adjacent triangle in vT.

Parameters
 [in] vT are the input triangles [out] vBorderSegmentsOut is used to return all border segments

◆ getOrientation2()

 Orientation2 GEOM_FADE2D::getOrientation2 ( const Point2 * p0, const Point2 * p1, const Point2 * p2 )

This function returns the exact orientation of the points `p0`, `p1`, `p2` Possible values are
ORIENTATION2_COLLINEAR if `p0`, `p1`, `p2` are located on a line,
ORIENTATION2_CCW if `p0`, `p1`, `p2` are counterclockwise oriented
ORIENTATION2_CW if `p0`, `p1`, `p2` are clockwise oriented
Not thread-safe but a bit faster than the thread-safe version

◆ getOrientation2_mt()

 Orientation2 GEOM_FADE2D::getOrientation2_mt ( const Point2 * p0, const Point2 * p1, const Point2 * p2 )
See also
getOrientation2(const Point2* p0,const Point2* p1,const Point2* p2)

This version is thread-safe.

◆ getUndirectedEdges()

 void GEOM_FADE2D::getUndirectedEdges ( std::vector< Triangle2 *> & vT, std::vector< Edge2 > & vUndirectedEdgesOut )

A unique set of edges of `vT` is returned.

◆ isSimplePolygon()

 bool GEOM_FADE2D::isSimplePolygon ( std::vector< Segment2 > & vSegments )
Parameters
 [in] vSegments specifies segments to be checked. Degenerate segments (0-length) are ignored.
Returns
true when `vSegments` contains a closed polygon without selfintersections. False otherwise.

◆ sortRing()

 bool GEOM_FADE2D::sortRing ( std::vector< Segment2 > & vRing )

The segments in vRing are reoriented and sorted such that subsequent segments join at the endpoints.

◆ sortRingCCW()

 bool GEOM_FADE2D::sortRingCCW ( std::vector< Segment2 > & vRing )

The segments in vRing are reoriented and sorted such that the resulting polygon is counterclockwise oriented and subsequent segments join at the endpoints.