SFCGAL  2.2.0
Modules | Namespaces | Classes | Functions
Implementation details

Modules

 Algorithm implementation details
 
 IO implementation details
 

Namespaces

 SFCGAL::detail
 Implementation details namespace.
 
 SFCGAL::detail::algorithm
 Algorithm detail namespace.
 
 SFCGAL::detail::io
 Input/output detail namespace.
 
 SFCGAL::triangulate::detail
 Triangulate detail namespace.
 

Classes

class  SFCGAL::algorithm::BoundaryVisitor
 Compute the boundary for a Geometry. More...
 
class  SFCGAL::algorithm::WeightedCentroid
 Holds weighted data to compute the centroid for a Geometry. More...
 
class  SFCGAL::algorithm::SurfaceGraph
 Represents a polyhedral surface as a graph where faces are nodes and egde are graph edges. More...
 
class  SFCGAL::algorithm::ConsistentOrientationBuilder
 Make orientation consistent in a triangle set. More...
 

Functions

auto SFCGAL::algorithm::signedArea (const Triangle &g)
 Compute the 2D signed area for a Triangle. More...
 
auto SFCGAL::algorithm::signedArea (const LineString &g)
 Compute the 2D signed area for a closed LineString. More...
 
auto SFCGAL::algorithm::area (const Triangle &g)
 Returns Compute the 2D area for a Triangle. More...
 
auto SFCGAL::algorithm::area (const Polygon &g)
 Returns Compute the 2D area for a Polygon. More...
 
auto SFCGAL::algorithm::area (const GeometryCollection &g)
 Returns the 2D area for a GeometryCollection. More...
 
auto SFCGAL::algorithm::area (const TriangulatedSurface &g)
 Returns the 2D area for a TriangulatedSurface. More...
 
auto SFCGAL::algorithm::area (const PolyhedralSurface &g)
 Returns the 2D area for a TriangulatedSurface. More...
 
auto SFCGAL::algorithm::area3D (const Geometry &g, NoValidityCheck)
 Returns 3D area for a Geometry. More...
 
auto SFCGAL::algorithm::area3D (const Polygon &g)
 Returns 3D area for a Polygon. More...
 
auto SFCGAL::algorithm::area3D (const GeometryCollection &g)
 Returns the 3D area for a MultiPolygon. More...
 
auto SFCGAL::algorithm::area3D (const PolyhedralSurface &g)
 Returns the 3D area for a PolyhedralSurface. More...
 
auto SFCGAL::algorithm::area3D (const Triangle &g)
 Returns the 3D area for a Triangle. More...
 
auto SFCGAL::algorithm::area3D (const TriangulatedSurface &g)
 Returns the 3D area for a TriangulatedSurface. More...
 
auto SFCGAL::algorithm::weightedCentroid (const Geometry &g, bool enable3DComputation=false)
 Returns the weighted centroid for a Geometry. More...
 
auto SFCGAL::algorithm::weightedCentroid (const Triangle &g, bool enable3DComputation=false)
 Returns the weighted centroid for a Triangle. More...
 
auto SFCGAL::algorithm::weightedCentroid (const Point &a, const Point &b, const Point &c, bool enable3DComputation=false)
 Returns the weighted centroid for a Triangle. More...
 
auto SFCGAL::algorithm::weightedCentroid (const LineString &g, bool enable3DComputation=false)
 Returns the weighted centroid for a LineString. More...
 
auto SFCGAL::algorithm::weightedCentroid (const Polygon &g, bool enable3DComputation=false)
 Returns the weighted centroid for a Polygon. More...
 
auto SFCGAL::algorithm::weightedCentroid (const GeometryCollection &g, bool enable3DComputation=false)
 Returns the weighted centroid for a GeometryCollection. More...
 
auto SFCGAL::algorithm::weightedCentroid (const TriangulatedSurface &g, bool enable3DComputation=false)
 Returns the weighted centroid for a TriangulatedSurface. More...
 
auto SFCGAL::algorithm::weightedCentroid (const PolyhedralSurface &g, bool enable3DComputation=false)
 Returns the weighted centroid for a PolyhedralSurface. More...
 
auto SFCGAL::algorithm::weightedCentroid (const Solid &g, bool enable3DComputation=false)
 Returns the weighted centroid for a Solid. More...
 
template<typename GeometryIterator >
std::unique_ptr< Geometry > SFCGAL::algorithm::collect (GeometryIterator begin, GeometryIterator end)
 Returns an aggregate of a list of geometries. More...
 
auto SFCGAL::algorithm::isConnected (const SurfaceGraph &graph)
 test if a surface is connected, the graph should be build beforehand More...
 
auto SFCGAL::algorithm::isClosed (const SurfaceGraph &graph)
 test if a surface is closed, the graph should be build beforehand More...
 
template<int Dim>
bool SFCGAL::algorithm::covers (const detail::GeometrySet< Dim > &a, const detail::GeometrySet< Dim > &b)
 
template<int Dim>
bool SFCGAL::algorithm::covers (const detail::PrimitiveHandle< Dim > &a, const detail::PrimitiveHandle< Dim > &b)
 
auto SFCGAL::algorithm::distancePointGeometry (const Point &gA, const Geometry &gB)
 dispatch distance from Point to Geometry More...
 
auto SFCGAL::algorithm::distancePointPoint (const Point &gA, const Point &gB)
 distance between two Points More...
 
auto SFCGAL::algorithm::distancePointLineString (const Point &gA, const LineString &gB)
 distance between a Point and a LineString More...
 
auto SFCGAL::algorithm::distancePointPolygon (const Point &gA, const Polygon &gB)
 distance between a Point and a Polygon More...
 
auto SFCGAL::algorithm::distancePointTriangle (const Point &gA, const Triangle &gB)
 distance between a Point and a Triangle More...
 
auto SFCGAL::algorithm::distanceLineStringGeometry (const LineString &gA, const Geometry &gB)
 dispatch distance from LineString to Geometry More...
 
auto SFCGAL::algorithm::distanceLineStringLineString (const LineString &gA, const LineString &gB)
 distance between two LineStrings More...
 
auto SFCGAL::algorithm::distanceLineStringPolygon (const LineString &gA, const Polygon &gB)
 distance between a LineString and a Polygon More...
 
auto SFCGAL::algorithm::distanceLineStringTriangle (const LineString &gA, const Triangle &gB)
 distance between a LineString and a Triangle More...
 
auto SFCGAL::algorithm::distancePolygonGeometry (const Polygon &gA, const Geometry &gB)
 dispatch distance from Polygon to Geometry More...
 
auto SFCGAL::algorithm::distancePolygonPolygon (const Polygon &gA, const Polygon &gB)
 distance between two Polygons More...
 
auto SFCGAL::algorithm::distancePolygonTriangle (const Polygon &gA, const Triangle &gB)
 distance between a Polygon and a Triangle More...
 
auto SFCGAL::algorithm::distanceTriangleGeometry (const Triangle &gA, const Geometry &gB)
 dispatch distance from a Triangle to a Geometry More...
 
auto SFCGAL::algorithm::distanceGeometryCollectionToGeometry (const Geometry &gA, const Geometry &gB)
 dispatch distance from a collection of geometry (gA) to a Geometry (gB) More...
 
auto SFCGAL::algorithm::distancePointSegment (const Point &p, const Point &a, const Point &b)
 
auto SFCGAL::algorithm::distanceSegmentSegment (const Point &a, const Point &b, const Point &c, const Point &d)
 
auto SFCGAL::algorithm::distancePointGeometry3D (const Point &gA, const Geometry &gB)
 dispatch distance from Point to Geometry More...
 
auto SFCGAL::algorithm::distancePointPoint3D (const Point &gA, const Point &gB)
 distance between two Points More...
 
auto SFCGAL::algorithm::distancePointLineString3D (const Point &gA, const LineString &gB)
 distance between a Point and a LineString More...
 
auto SFCGAL::algorithm::distancePointTriangle3D (const Point &gA, const Triangle &gB)
 distance between a Point and a Triangle More...
 
auto SFCGAL::algorithm::distancePointPolygon3D (const Point &gA, const Polygon &gB)
 distance between a Point and a Triangle More...
 
auto SFCGAL::algorithm::distancePointPolyhedralSurface3D (const Point &pointA, const PolyhedralSurface &polySurfaceB) -> double
 distance between a Point and a PolyhedralSurface More...
 
auto SFCGAL::algorithm::distancePointTriangulatedSurface3D (const Point &pointA, const TriangulatedSurface &triangulatedSurfaceB) -> double
 distance between a Point and a TriangulatedSurface More...
 
auto SFCGAL::algorithm::distancePointSolid3D (const Point &gA, const Solid &gB)
 distance between a Point and a Solid More...
 
auto SFCGAL::algorithm::distanceLineStringGeometry3D (const LineString &gA, const Geometry &gB)
 dispatch distance between a LineString and a Geometry More...
 
auto SFCGAL::algorithm::distanceLineStringLineString3D (const LineString &gA, const LineString &gB)
 distance between two LineStrings More...
 
auto SFCGAL::algorithm::distanceLineStringTriangle3D (const LineString &gA, const Triangle &gB)
 distance between a LineString and a Triangle More...
 
auto SFCGAL::algorithm::distanceLineStringPolygon3D (const LineString &gA, const Polygon &gB)
 distance between a LineString and a Polygon More...
 
auto SFCGAL::algorithm::distanceLineStringPolyhedralSurface3D (const LineString &lineA, const PolyhedralSurface &polySurfaceB) -> double
 distance between a LineString and a PolyhedralSurface More...
 
auto SFCGAL::algorithm::distanceLineStringTriangulatedSurface3D (const LineString &lineA, const TriangulatedSurface &triangulatedSurfaceB) -> double
 distance between a LineString and a TriangulatedSurface More...
 
auto SFCGAL::algorithm::distanceLineStringSolid3D (const LineString &gA, const Solid &gB)
 distance between a LineString and a Solid More...
 
auto SFCGAL::algorithm::distanceTriangleGeometry3D (const Triangle &gA, const Geometry &gB)
 dispatch distance between a Triangle and a Geometry More...
 
auto SFCGAL::algorithm::distanceTrianglePolyhedralSurface3D (const Triangle &triangleA, const PolyhedralSurface &polySurfaceB)
 distance between a Triangle and a PolyhedralSurface More...
 
auto SFCGAL::algorithm::distanceTriangleSolid3D (const Triangle &gA, const Solid &gB)
 distance between a Triangle and a Solid More...
 
auto SFCGAL::algorithm::distancePolygonGeometry3D (const Polygon &gA, const Geometry &gB)
 dispatch distance between a Polygon and a Geometry More...
 
auto SFCGAL::algorithm::distancePolyhedralSurfaceGeometry3D (const PolyhedralSurface &polySurfaceA, const Geometry &geomB) -> double
 dispatch distance between a PolyhedralSurface and a Geometry More...
 
auto SFCGAL::algorithm::distanceTriangulatedSurfaceGeometry3D (const TriangulatedSurface &triangulatedSurfaceA, const Geometry &geomB) -> double
 dispatch distance between a TriangulatedSurface and a Geometry More...
 
auto SFCGAL::algorithm::distanceSolidGeometry3D (const Solid &gA, const Geometry &gB)
 dispatch distance between a Solid and a Geometry More...
 
auto SFCGAL::algorithm::distanceSolidSolid3D (const Solid &gA, const Solid &gB)
 distance between two Solids More...
 
auto SFCGAL::algorithm::distanceGeometryCollectionToGeometry3D (const Geometry &gA, const Geometry &gB)
 dispatch distance from a collection of geometry (gA) to a Geometry (gB) More...
 
auto SFCGAL::algorithm::distancePointSegment3D (const Point &p, const Point &a, const Point &b)
 
auto SFCGAL::algorithm::distancePointTriangle3D (const Point &p, const Point &a, const Point &b, const Point &c)
 
auto SFCGAL::algorithm::distanceSegmentSegment3D (const Point &a, const Point &b, const Point &c, const Point &d)
 
auto SFCGAL::algorithm::distanceSegmentTriangle3D (const Point &sA, const Point &sB, const Point &tA, const Point &tB, const Point &tC)
 
auto SFCGAL::algorithm::distanceTriangleTriangle3D (const Triangle &gA, const Triangle &gB)
 distance between two Triangles More...
 
SFCGAL_API auto SFCGAL::algorithm::extrude (const Geometry &g, const double &dx, const double &dy, const double &dz)
 Returns a Geometry equal to the specified Geometry, extruded by the specified displacement. More...
 
auto SFCGAL::algorithm::extrude (const Geometry &g, const Kernel::Vector_3 &v)
 Returns a Geometry equal to the specified Geometry, extruded by the specified displacement vector. More...
 
template<int Dim>
void SFCGAL::algorithm::intersection (const detail::GeometrySet< Dim > &a, const detail::GeometrySet< Dim > &b, detail::GeometrySet< Dim > &)
 
auto SFCGAL::algorithm::intersects (const Geometry &ga, const Geometry &gb, NoValidityCheck)
 Intersection test on 2D geometries. More...
 
auto SFCGAL::algorithm::intersects3D (const Geometry &ga, const Geometry &gb, NoValidityCheck)
 Intersection test on 3D geometries. More...
 
template<int Dim>
bool SFCGAL::algorithm::intersects (const detail::GeometrySet< Dim > &a, const detail::GeometrySet< Dim > &b)
 Intersection test on GeometrySet. More...
 
template<int Dim>
bool SFCGAL::algorithm::intersects (const detail::PrimitiveHandle< Dim > &a, const detail::PrimitiveHandle< Dim > &b)
 Intersection test on a PrimitiveHandle. More...
 
auto SFCGAL::algorithm::selfIntersects (const LineString &l)
 Self intersection test for 2D LineString (false if only endpoint touch) More...
 
auto SFCGAL::algorithm::selfIntersects3D (const LineString &l)
 Self intersection test for 3D LineString (false if only endpoints touch) More...
 
auto SFCGAL::algorithm::selfIntersects (const PolyhedralSurface &s, const SurfaceGraph &g)
 Self intersection test for 2D PolyhedralSurface (false if only point touch) More...
 
auto SFCGAL::algorithm::selfIntersects3D (const PolyhedralSurface &s, const SurfaceGraph &g)
 Self intersection test for 3D PolyhedralSurface (false if only point touch) More...
 
auto SFCGAL::algorithm::selfIntersects (const TriangulatedSurface &s, const SurfaceGraph &g)
 Self intersection test for 2D TriangulatedSurface (false if only point touch) More...
 
auto SFCGAL::algorithm::selfIntersects3D (const TriangulatedSurface &s, const SurfaceGraph &g)
 Self intersection test for 3D TriangulatedSurface (false if only point touch) More...
 
template<typename Kernel >
bool SFCGAL::algorithm::hasPlane3D (const Polygon &polygon, CGAL::Point_3< Kernel > &a, CGAL::Point_3< Kernel > &b, CGAL::Point_3< Kernel > &c)
 Test if a 3D plane can be extracted from a Polygon. More...
 
template<typename Kernel >
CGAL::Plane_3< Kernel > SFCGAL::algorithm::plane3D (const Polygon &polygon)
 Returns the oriented 3D plane of a polygon (supposed to be planar). More...
 
template<typename Kernel >
CGAL::Plane_3< Kernel > SFCGAL::algorithm::plane3D (const Polygon &polygon, const Plane3DInexactUnsafe &)
 Returns the oriented 3D plane of a polygon (supposed to be planar) - inexact version. More...
 
template<typename Kernel >
bool SFCGAL::algorithm::isPlane3D (const Geometry &geom, const double &toleranceAbs)
 Test if all points of a geometry lie in the same plane. More...
 
auto SFCGAL::algorithm::straightSkeleton (const Polygon &geom, bool autoOrientation=true, bool innerOnly=false, bool outputDistanceInM=false, const double &toleranceAbs=EPSILON) -> std::unique_ptr< MultiLineString >
 build a 2D straight skeleton for a Polygon More...
 
auto SFCGAL::algorithm::straightSkeleton (const MultiPolygon &geom, bool autoOrientation=true, bool innerOnly=false, bool outputDistanceInM=false, const double &toleranceAbs=EPSILON) -> std::unique_ptr< MultiLineString >
 build a 2D straight skeleton for a Polygon More...
 
SFCGAL_API auto SFCGAL::algorithm::extrudedStraightSkeleton (const Polygon &geom, double height) -> std::unique_ptr< PolyhedralSurface >
 build a 3D straight skeleton extruded for a Polygon More...
 
auto SFCGAL::algorithm::straightSkeletonPartition (const Polygon &geom, bool autoOrientation=true) -> std::unique_ptr< PolyhedralSurface >
 Build a 2D straight skeleton partition for a Polygon. More...
 
auto SFCGAL::algorithm::straightSkeletonPartition (const MultiPolygon &geom, bool autoOrientation=true) -> std::unique_ptr< PolyhedralSurface >
 Build a 2D straight skeleton partition for a MultiPolygon. More...
 
template<int Dim>
void SFCGAL::algorithm::union_ (const detail::GeometrySet< Dim > &a, const detail::GeometrySet< Dim > &b, detail::GeometrySet< Dim > &)
 
template<int Dim>
void SFCGAL::algorithm::union_ (const detail::PrimitiveHandle< Dim > &a, const detail::PrimitiveHandle< Dim > &b, detail::GeometrySet< Dim > &)
 
auto SFCGAL::detail::algorithm::coversPoints (const Geometry &ga, const Geometry &gb)
 Pseudo cover test on 2D geometries. More...
 
auto SFCGAL::detail::algorithm::coversPoints3D (const Geometry &ga, const Geometry &gb)
 Pseudo cover test on 3D geometries. More...
 
void SFCGAL::triangulate::triangulatePolygon3D (const Polygon &g, TriangulatedSurface &triangulatedSurface)
 Triangulate a 3D Polygon. More...
 
void SFCGAL::triangulate::triangulatePolygon3D (const Triangle &g, TriangulatedSurface &triangulatedSurface)
 Triangulate a 3D Triangle (copy triangle) More...
 
void SFCGAL::triangulate::triangulatePolygon3D (const TriangulatedSurface &g, TriangulatedSurface &triangulatedSurface)
 Triangulate a 3D TriangulatedSurface (copy triangles) More...
 
SFCGAL_API void SFCGAL::triangulate::opentriangulatePolygon3D (const GeometryCollection &g, TriangulatedSurface &triangulatedSurface)
 Triangulate a 3D MultiPolygon. More...
 
void SFCGAL::triangulate::triangulatePolygon3D (const PolyhedralSurface &polyhedralSurface, TriangulatedSurface &triangulatedSurface)
 Triangulate 3D polygons in a PolyhedralSurface. More...
 
void SFCGAL::triangulate::triangulatePolygon3D (const Solid &g, TriangulatedSurface &triangulatedSurface)
 Triangulate a Solid. More...
 

Detailed Description

Function Documentation

SFCGAL_API double SFCGAL::algorithm::area ( const Triangle g) -> double

Returns Compute the 2D area for a Triangle.

SFCGAL_API double SFCGAL::algorithm::area ( const Polygon g) -> double

Returns Compute the 2D area for a Polygon.

SFCGAL_API double SFCGAL::algorithm::area ( const GeometryCollection g) -> double

Returns the 2D area for a GeometryCollection.

SFCGAL_API double SFCGAL::algorithm::area ( const TriangulatedSurface g) -> double

Returns the 2D area for a TriangulatedSurface.

SFCGAL_API double SFCGAL::algorithm::area ( const PolyhedralSurface g) -> double

Returns the 2D area for a TriangulatedSurface.

SFCGAL_API double SFCGAL::algorithm::area3D ( const Geometry &  g,
NoValidityCheck   
)

Returns 3D area for a Geometry.

Warning
Solid area is set to 0 (might be defined as the area of the surface)
Precondition
g is a valid geometry
Warning
No actual validity check is done
SFCGAL_API double SFCGAL::algorithm::area3D ( const Polygon g) -> double

Returns 3D area for a Polygon.

SFCGAL_API double SFCGAL::algorithm::area3D ( const Triangle g) -> double

Returns the 3D area for a Triangle.

SFCGAL_API double SFCGAL::algorithm::area3D ( const GeometryCollection g) -> double

Returns the 3D area for a MultiPolygon.

SFCGAL_API double SFCGAL::algorithm::area3D ( const PolyhedralSurface g) -> double

Returns the 3D area for a PolyhedralSurface.

SFCGAL_API double SFCGAL::algorithm::area3D ( const TriangulatedSurface g) -> double

Returns the 3D area for a TriangulatedSurface.

template<typename GeometryIterator >
std::unique_ptr<Geometry> SFCGAL::algorithm::collect ( GeometryIterator  begin,
GeometryIterator  end 
)

Returns an aggregate of a list of geometries.

template<int Dim>
bool SFCGAL::algorithm::covers ( const detail::GeometrySet< Dim > &  a,
const detail::GeometrySet< Dim > &  b 
)
template<int Dim>
bool SFCGAL::algorithm::covers ( const detail::PrimitiveHandle< Dim > &  a,
const detail::PrimitiveHandle< Dim > &  b 
)
SFCGAL_API bool SFCGAL::detail::algorithm::coversPoints ( const Geometry &  ga,
const Geometry &  gb 
)

Pseudo cover test on 2D geometries.

Collect points of gb and tests if no points of gb is outside ga

SFCGAL_API bool SFCGAL::detail::algorithm::coversPoints3D ( const Geometry &  ga,
const Geometry &  gb 
)

Pseudo cover test on 3D geometries.

Collect points of gb and tests if no points of gb is outside ga

SFCGAL_API double SFCGAL::algorithm::distanceGeometryCollectionToGeometry ( const Geometry &  gA,
const Geometry &  gB 
) -> double

dispatch distance from a collection of geometry (gA) to a Geometry (gB)

SFCGAL_API double SFCGAL::algorithm::distanceGeometryCollectionToGeometry3D ( const Geometry &  gA,
const Geometry &  gB 
) -> double

dispatch distance from a collection of geometry (gA) to a Geometry (gB)

SFCGAL_API double SFCGAL::algorithm::distanceLineStringGeometry ( const LineString gA,
const Geometry &  gB 
) -> double

dispatch distance from LineString to Geometry

SFCGAL_API double SFCGAL::algorithm::distanceLineStringGeometry3D ( const LineString gA,
const Geometry &  gB 
) -> double

dispatch distance between a LineString and a Geometry

SFCGAL_API double SFCGAL::algorithm::distanceLineStringLineString ( const LineString gA,
const LineString gB 
) -> double

distance between two LineStrings

SFCGAL_API double SFCGAL::algorithm::distanceLineStringLineString3D ( const LineString gA,
const LineString gB 
) -> double

distance between two LineStrings

SFCGAL_API double SFCGAL::algorithm::distanceLineStringPolygon ( const LineString gA,
const Polygon gB 
) -> double

distance between a LineString and a Polygon

SFCGAL_API double SFCGAL::algorithm::distanceLineStringPolygon3D ( const LineString gA,
const Polygon gB 
)

distance between a LineString and a Polygon

Todo:
same method than distancePointPolygon3D (unify if triangulate is available)
SFCGAL_API auto SFCGAL::algorithm::distanceLineStringPolyhedralSurface3D ( const LineString lineA,
const PolyhedralSurface polySurfaceB 
) -> double

distance between a LineString and a PolyhedralSurface

SFCGAL_API double SFCGAL::algorithm::distanceLineStringSolid3D ( const LineString gA,
const Solid gB 
) -> double

distance between a LineString and a Solid

SFCGAL_API double SFCGAL::algorithm::distanceLineStringTriangle ( const LineString gA,
const Triangle gB 
) -> double

distance between a LineString and a Triangle

SFCGAL_API double SFCGAL::algorithm::distanceLineStringTriangle3D ( const LineString gA,
const Triangle gB 
) -> double

distance between a LineString and a Triangle

SFCGAL_API auto SFCGAL::algorithm::distanceLineStringTriangulatedSurface3D ( const LineString lineA,
const TriangulatedSurface triangulatedSurfaceB 
) -> double

distance between a LineString and a TriangulatedSurface

SFCGAL_API double SFCGAL::algorithm::distancePointGeometry ( const Point gA,
const Geometry &  gB 
) -> double

dispatch distance from Point to Geometry

SFCGAL_API double SFCGAL::algorithm::distancePointGeometry3D ( const Point gA,
const Geometry &  gB 
) -> double

dispatch distance from Point to Geometry

SFCGAL_API double SFCGAL::algorithm::distancePointLineString ( const Point gA,
const LineString gB 
) -> double

distance between a Point and a LineString

SFCGAL_API double SFCGAL::algorithm::distancePointLineString3D ( const Point gA,
const LineString gB 
) -> double

distance between a Point and a LineString

SFCGAL_API double SFCGAL::algorithm::distancePointPoint ( const Point gA,
const Point gB 
) -> double

distance between two Points

SFCGAL_API double SFCGAL::algorithm::distancePointPoint3D ( const Point gA,
const Point gB 
) -> double

distance between two Points

SFCGAL_API double SFCGAL::algorithm::distancePointPolygon ( const Point gA,
const Polygon gB 
) -> double

distance between a Point and a Polygon

SFCGAL_API double SFCGAL::algorithm::distancePointPolygon3D ( const Point gA,
const Polygon gB 
) -> double

distance between a Point and a Triangle

SFCGAL_API auto SFCGAL::algorithm::distancePointPolyhedralSurface3D ( const Point pointA,
const PolyhedralSurface polySurfaceB 
) -> double

distance between a Point and a PolyhedralSurface

SFCGAL_API double SFCGAL::algorithm::distancePointSegment ( const Point p,
const Point a,
const Point b 
) -> double
SFCGAL_API double SFCGAL::algorithm::distancePointSegment3D ( const Point p,
const Point a,
const Point b 
) -> double
SFCGAL_API double SFCGAL::algorithm::distancePointSolid3D ( const Point gA,
const Solid gB 
) -> double

distance between a Point and a Solid

SFCGAL_API double SFCGAL::algorithm::distancePointTriangle ( const Point gA,
const Triangle gB 
) -> double

distance between a Point and a Triangle

SFCGAL_API double SFCGAL::algorithm::distancePointTriangle3D ( const Point gA,
const Triangle gB 
) -> double

distance between a Point and a Triangle

SFCGAL_API double SFCGAL::algorithm::distancePointTriangle3D ( const Point p_,
const Point a_,
const Point b_,
const Point c_ 
) -> double
SFCGAL_API auto SFCGAL::algorithm::distancePointTriangulatedSurface3D ( const Point pointA,
const TriangulatedSurface triangulatedSurfaceB 
) -> double

distance between a Point and a TriangulatedSurface

SFCGAL_API double SFCGAL::algorithm::distancePolygonGeometry ( const Polygon gA,
const Geometry &  gB 
) -> double

dispatch distance from Polygon to Geometry

SFCGAL_API double SFCGAL::algorithm::distancePolygonGeometry3D ( const Polygon gA,
const Geometry &  gB 
) -> double

dispatch distance between a Polygon and a Geometry

SFCGAL_API double SFCGAL::algorithm::distancePolygonPolygon ( const Polygon gA,
const Polygon gB 
) -> double

distance between two Polygons

SFCGAL_API double SFCGAL::algorithm::distancePolygonTriangle ( const Polygon gA,
const Triangle gB 
) -> double

distance between a Polygon and a Triangle

SFCGAL_API auto SFCGAL::algorithm::distancePolyhedralSurfaceGeometry3D ( const PolyhedralSurface polySurfaceA,
const Geometry &  geomB 
) -> double

dispatch distance between a PolyhedralSurface and a Geometry

SFCGAL_API double SFCGAL::algorithm::distanceSegmentSegment ( const Point a,
const Point b,
const Point c,
const Point d 
) -> double
SFCGAL_API double SFCGAL::algorithm::distanceSegmentSegment3D ( const Point a,
const Point b,
const Point c,
const Point d 
) -> double
SFCGAL_API double SFCGAL::algorithm::distanceSegmentTriangle3D ( const Point sA_,
const Point sB_,
const Point tA_,
const Point tB_,
const Point tC_ 
) -> double
SFCGAL_API double SFCGAL::algorithm::distanceSolidGeometry3D ( const Solid gA,
const Geometry &  gB 
) -> double

dispatch distance between a Solid and a Geometry

SFCGAL_API double SFCGAL::algorithm::distanceSolidSolid3D ( const Solid gA,
const Solid gB 
) -> double

distance between two Solids

SFCGAL_API double SFCGAL::algorithm::distanceTriangleGeometry ( const Triangle gA,
const Geometry &  gB 
) -> double

dispatch distance from a Triangle to a Geometry

SFCGAL_API double SFCGAL::algorithm::distanceTriangleGeometry3D ( const Triangle gA,
const Geometry &  gB 
) -> double

dispatch distance between a Triangle and a Geometry

SFCGAL_API double SFCGAL::algorithm::distanceTrianglePolyhedralSurface3D ( const Triangle triangleA,
const PolyhedralSurface polySurfaceB 
) -> double

distance between a Triangle and a PolyhedralSurface

SFCGAL_API double SFCGAL::algorithm::distanceTriangleSolid3D ( const Triangle gA,
const Solid gB 
) -> double

distance between a Triangle and a Solid

SFCGAL_API double SFCGAL::algorithm::distanceTriangleTriangle3D ( const Triangle gA,
const Triangle gB 
) -> double

distance between two Triangles

SFCGAL_API auto SFCGAL::algorithm::distanceTriangulatedSurfaceGeometry3D ( const TriangulatedSurface triangulatedSurfaceA,
const Geometry &  geomB 
) -> double

dispatch distance between a TriangulatedSurface and a Geometry

SFCGAL_API std::unique_ptr< Geometry > SFCGAL::algorithm::extrude ( const Geometry &  g,
const Kernel::Vector_3 &  v 
)

Returns a Geometry equal to the specified Geometry, extruded by the specified displacement vector.

Parameters
gThe specified Geometry.
vThe specified displacement vector.
Returns
A Geometry equal to g extruded by the displacement vector v.
Precondition
g must be a valid geometry.
Note
If g is such that g.isMeasured() is true, then, since there is no common expectation of the values of the measures on the returned Geometry, all measures from the result are removed.
Todo:
Improve extrude for 3D surfaces - Extrude only faces whose scalar_product(v,normal) > 0 and use Polyhedron union to get output geometries with a clean topology.
SFCGAL_API std::unique_ptr< Geometry > SFCGAL::algorithm::extrude ( const Geometry &  g,
const double &  dx,
const double &  dy,
const double &  dz 
)

Returns a Geometry equal to the specified Geometry, extruded by the specified displacement.

Parameters
gThe specified Geometry.
dxThe component of the specified displacement in the x-direction.
dyThe component of the specified displacement in the y-direction.
dzThe component of the specified displacement in the z-direction.
Returns
A Geometry equal to g extruded by the displacement vector {dx, dy, dz}.
Precondition
g must be a valid geometry.
dx, dy and dz must all be finite.
Note
If g is such that g.isMeasured() is true, then, since there is no common expectation of the values of the measures on the returned Geometry, all measures from the result are removed.
Warning
No actual validity check is conducted.
SFCGAL_API auto SFCGAL::algorithm::extrudedStraightSkeleton ( const Polygon geom,
double  height 
) -> std::unique_ptr< PolyhedralSurface >

build a 3D straight skeleton extruded for a Polygon

Exceptions
NotImplementedExceptionIf geom is a Polygon with point touching rings.
template<typename Kernel >
bool SFCGAL::algorithm::hasPlane3D ( const Polygon polygon,
CGAL::Point_3< Kernel > &  a,
CGAL::Point_3< Kernel > &  b,
CGAL::Point_3< Kernel > &  c 
)

Test if a 3D plane can be extracted from a Polygon.

template<int Dim>
void SFCGAL::algorithm::intersection ( const GeometrySet< Dim > &  a,
const GeometrySet< Dim > &  b,
GeometrySet< Dim > &  output 
)
template<int Dim>
bool SFCGAL::algorithm::intersects ( const detail::GeometrySet< Dim > &  a,
const detail::GeometrySet< Dim > &  b 
)

Intersection test on GeometrySet.

template<int Dim>
bool SFCGAL::algorithm::intersects ( const detail::PrimitiveHandle< Dim > &  a,
const detail::PrimitiveHandle< Dim > &  b 
)

Intersection test on a PrimitiveHandle.

SFCGAL_API bool SFCGAL::algorithm::intersects ( const Geometry &  ga,
const Geometry &  gb,
NoValidityCheck   
)

Intersection test on 2D geometries.

Force projection to z=0 if needed

Precondition
ga and gb are valid geometries
Warning
the validity is assumed, no actual check is done
SFCGAL_API bool SFCGAL::algorithm::intersects3D ( const Geometry &  ga,
const Geometry &  gb,
NoValidityCheck   
)

Intersection test on 3D geometries.

Assume z = 0 if needed

Precondition
ga and gb are valid geometries
Warning
the validity is assumed, no actual check is done
SFCGAL_API bool SFCGAL::algorithm::isClosed ( const SurfaceGraph graph)

test if a surface is closed, the graph should be build beforehand

Note
the surface may not be connected, eg. two spheres will yield a true result
SFCGAL_API bool SFCGAL::algorithm::isConnected ( const SurfaceGraph graph) -> bool

test if a surface is connected, the graph should be build beforehand

template<typename Kernel >
bool SFCGAL::algorithm::isPlane3D ( const Geometry &  geom,
const double &  toleranceAbs 
)

Test if all points of a geometry lie in the same plane.

SFCGAL_API void SFCGAL::triangulate::opentriangulatePolygon3D ( const GeometryCollection g,
TriangulatedSurface triangulatedSurface 
)

Triangulate a 3D MultiPolygon.

Todo:
unittest
template<typename Kernel >
CGAL::Plane_3<Kernel> SFCGAL::algorithm::plane3D ( const Polygon polygon)

Returns the oriented 3D plane of a polygon (supposed to be planar).

May return degenerate plane.

template<typename Kernel >
CGAL::Plane_3<Kernel> SFCGAL::algorithm::plane3D ( const Polygon polygon,
const Plane3DInexactUnsafe  
)

Returns the oriented 3D plane of a polygon (supposed to be planar) - inexact version.

Warning
Will divide by zero if polygon is degenerate.
result is rounded to double (avoid huge expression tree).
bool SFCGAL::algorithm::selfIntersects ( const LineString l) -> bool

Self intersection test for 2D LineString (false if only endpoint touch)

bool SFCGAL::algorithm::selfIntersects ( const PolyhedralSurface s,
const SurfaceGraph g 
) -> bool

Self intersection test for 2D PolyhedralSurface (false if only point touch)

bool SFCGAL::algorithm::selfIntersects ( const TriangulatedSurface tin,
const SurfaceGraph g 
) -> bool

Self intersection test for 2D TriangulatedSurface (false if only point touch)

bool SFCGAL::algorithm::selfIntersects3D ( const LineString l) -> bool

Self intersection test for 3D LineString (false if only endpoints touch)

bool SFCGAL::algorithm::selfIntersects3D ( const PolyhedralSurface s,
const SurfaceGraph g 
) -> bool

Self intersection test for 3D PolyhedralSurface (false if only point touch)

bool SFCGAL::algorithm::selfIntersects3D ( const TriangulatedSurface tin,
const SurfaceGraph g 
) -> bool

Self intersection test for 3D TriangulatedSurface (false if only point touch)

SFCGAL_API Kernel::FT SFCGAL::algorithm::signedArea ( const Triangle g) -> Kernel::FT

Compute the 2D signed area for a Triangle.

SFCGAL_API Kernel::FT SFCGAL::algorithm::signedArea ( const LineString g) -> Kernel::FT

Compute the 2D signed area for a closed LineString.

SFCGAL_API auto SFCGAL::algorithm::straightSkeleton ( const Polygon geom,
bool  autoOrientation = true,
bool  innerOnly = false,
bool  outputDistanceInM = false,
const double &  toleranceAbs = EPSILON 
) -> std::unique_ptr< MultiLineString >

build a 2D straight skeleton for a Polygon

Exceptions
NotImplementedExceptionIf geom is a Polygon with point touching rings.
SFCGAL_API auto SFCGAL::algorithm::straightSkeleton ( const MultiPolygon geom,
bool  autoOrientation = true,
bool  innerOnly = false,
bool  outputDistanceInM = false,
const double &  toleranceAbs = EPSILON 
) -> std::unique_ptr< MultiLineString >

build a 2D straight skeleton for a Polygon

Exceptions
NotImplementedExceptionIf geom is a Polygon with point touching rings.
SFCGAL_API auto SFCGAL::algorithm::straightSkeletonPartition ( const MultiPolygon geom,
bool  autoOrientation = true 
) -> std::unique_ptr< PolyhedralSurface >

Build a 2D straight skeleton partition for a MultiPolygon.

Parameters
[in]geomThe input multi-polygon
[in]autoOrientationCheck and fix polygon orientation
Returns
A unique pointer to a MultiPolygon representing the partitioned multi-polygon

This function applies the straight skeleton partition to each polygon in the input multi-polygon and combines the results into a single MultiPolygon.

SFCGAL_API auto SFCGAL::algorithm::straightSkeletonPartition ( const Polygon geom,
bool  autoOrientation = true 
) -> std::unique_ptr< PolyhedralSurface >

Build a 2D straight skeleton partition for a Polygon.

Parameters
[in]geomThe input polygon
[in]autoOrientationCheck and fix polygon orientation (not used in this implementation)
Returns
A unique pointer to a MultiPolygon representing the partitioned polygon
Exceptions
ExceptionIf CGAL fails to create the straight skeleton

This function creates a partition of the input polygon based on its straight skeleton. It uses CGAL's Arrangement_2 to handle the intersection of skeleton and polygon edges.

SFCGAL_API void SFCGAL::triangulate::triangulatePolygon3D ( const Triangle g,
TriangulatedSurface triangulatedSurface 
)

Triangulate a 3D Triangle (copy triangle)

Todo:
unittest
SFCGAL_API void SFCGAL::triangulate::triangulatePolygon3D ( const TriangulatedSurface g,
TriangulatedSurface triangulatedSurface 
)

Triangulate a 3D TriangulatedSurface (copy triangles)

Todo:
unittest
SFCGAL_API void SFCGAL::triangulate::triangulatePolygon3D ( const Polygon g,
TriangulatedSurface triangulatedSurface 
)

Triangulate a 3D Polygon.

Todo:
unittest
SFCGAL_API void SFCGAL::triangulate::triangulatePolygon3D ( const PolyhedralSurface polyhedralSurface,
TriangulatedSurface triangulatedSurface 
)

Triangulate 3D polygons in a PolyhedralSurface.

SFCGAL_API void SFCGAL::triangulate::triangulatePolygon3D ( const Solid g,
TriangulatedSurface triangulatedSurface 
)

Triangulate a Solid.

Todo:
unittest
template<int Dim>
void SFCGAL::algorithm::union_ ( const detail::GeometrySet< Dim > &  a,
const detail::GeometrySet< Dim > &  b,
detail::GeometrySet< Dim > &   
)
template<int Dim>
void SFCGAL::algorithm::union_ ( const detail::PrimitiveHandle< Dim > &  a,
const detail::PrimitiveHandle< Dim > &  b,
detail::GeometrySet< Dim > &   
)
SFCGAL_API WeightedCentroid SFCGAL::algorithm::weightedCentroid ( const Geometry &  g,
bool  enable3DComputation 
) -> WeightedCentroid

Returns the weighted centroid for a Geometry.

SFCGAL_API WeightedCentroid SFCGAL::algorithm::weightedCentroid ( const Triangle g,
bool  enable3DComputation 
) -> WeightedCentroid

Returns the weighted centroid for a Triangle.

SFCGAL_API WeightedCentroid SFCGAL::algorithm::weightedCentroid ( const Point a,
const Point b,
const Point c,
bool  enable3DComputation 
) -> WeightedCentroid

Returns the weighted centroid for a Triangle.

SFCGAL_API WeightedCentroid SFCGAL::algorithm::weightedCentroid ( const LineString g,
bool  enable3DComputation 
) -> WeightedCentroid

Returns the weighted centroid for a LineString.

SFCGAL_API WeightedCentroid SFCGAL::algorithm::weightedCentroid ( const Polygon g,
bool  enable3DComputation 
) -> WeightedCentroid

Returns the weighted centroid for a Polygon.

SFCGAL_API WeightedCentroid SFCGAL::algorithm::weightedCentroid ( const GeometryCollection g,
bool  enable3DComputation 
) -> WeightedCentroid

Returns the weighted centroid for a GeometryCollection.

SFCGAL_API WeightedCentroid SFCGAL::algorithm::weightedCentroid ( const TriangulatedSurface g,
bool  enable3DComputation 
) -> WeightedCentroid

Returns the weighted centroid for a TriangulatedSurface.

SFCGAL_API WeightedCentroid SFCGAL::algorithm::weightedCentroid ( const PolyhedralSurface g,
bool  enable3DComputation 
) -> WeightedCentroid

Returns the weighted centroid for a PolyhedralSurface.

SFCGAL_API WeightedCentroid SFCGAL::algorithm::weightedCentroid ( const Solid g,
bool  enable3DComputation 
) -> WeightedCentroid

Returns the weighted centroid for a Solid.