Skip to content

Namespace SFCGAL::algorithm

Namespace List > SFCGAL > algorithm

Classes

Type Name
class BoundaryVisitor
class Buffer3D
Computes a 3D buffer around a Point orLineString .
struct Circle
struct CollisionMapper <Dim>
class ConsistentOrientationBuilder
struct EmptyPrimitive
struct FaceBbox
struct FaceSegmentCollide
class Handle <Dim>
struct HandledBox <Dim>
struct Is_not_marked
struct LoopDetector
struct Nearer <typename PointType>
struct NoValidityCheck
struct Plane3DInexactUnsafe
struct Segment_d <Dim>
struct Sphere
class SurfaceGraph
struct Surface_d <Dim>
struct Surface_d< 2 > <>
struct Surface_d< 3 > <>
struct UnionOnBoxCollision <Dim>
struct found_an_intersection
struct intersection_cb <Dim>
struct intersects_cb <Dim>
struct intersects_volume_x

Public Types

Type Name
typedef CGAL::Alpha_shape_2< Triangulation_2 > Alpha_shape_2
typedef Alpha_shape_2::Alpha_shape_edges_iterator Alpha_shape_edges_iterator
typedef CGAL::Arrangement_2< Traits_2 > Arrangement
typedef CGAL::Arrangement_2< CGAL::Arr_segment_traits_2< Kernel > > Arrangement_2
typedef CGAL::Box_intersection_d::Box_with_handle_d< double, 3, MarkedPolyhedron::Halfedge_around_facet_const_circulator > FaceBboxBase
typedef Arrangement_2::Face_const_handle Face_const_handle
typedef Arrangement_2::Face_handle Face_handle
typedef CGAL::Alpha_shape_face_base_2< Kernel > Fb
typedef Arrangement_2::Halfedge_const_handle Halfedge_const_handle
typedef detail::MarkedPolyhedron MarkedPolyhedron
typedef CGAL::Surface_mesh< Point_3 > Mesh
typedef CGAL::Nef_polyhedron_3< Kernel > Nef_polyhedron_3
typedef detail::NoVolume NoVolume
enum PartitionAlgorithm
typedef CGAL::Plane_3< SFCGAL::Kernel > Plane_3
typedef CGAL::Point_2< Kernel > Point_2
typedef CGAL::Point_3< SFCGAL::Kernel > Point_3
typedef CGAL::Polygon_with_holes_2< Kernel > PolygonWH_2
typedef CGAL::Polygon_with_holes_2< Kernel > PolygonWithHoles
typedef CGAL::Polygon_2< SFCGAL::Kernel > Polygon_2
typedef CGAL::Polygon_with_holes_2< Kernel > Polygon_with_holes_2
typedef CGAL::Polyhedron_3< Kernel > Polyhedron_3
typedef std::vector< Kernel::Point_3 > Polyline_3
enum PrimitiveType
typedef boost::shared_ptr< T > SHARED_PTR
typedef CGAL::Segment_2< Kernel > Segment_2
typedef CGAL::Segment_3< Kernel > Segment_3
typedef CGAL::Straight_skeleton_2< Kernel > Straight_skeleton_2
typedef CGAL::Triangular_expansion_visibility_2< Arrangement_2, CGAL::Tag_true > TEV
typedef Traits::Point_2 TPoint_2
typedef Traits::Polygon_2 TPolygon_2
typedef CGAL::Triangulation_data_structure_2< Vb, Fb > Tds
typedef CGAL::Partition_traits_2< Kernel > Traits
typedef CGAL::Arr_non_caching_segment_basic_traits_2< Kernel > Traits_2
typedef CGAL::Triangle_2< SFCGAL::Kernel > Triangle_2
typedef CGAL::Triangle_3< SFCGAL::Kernel > Triangle_3
typedef CGAL::Delaunay_triangulation_2< Kernel, Tds > Triangulation_2
typedef CGAL::Alpha_shape_vertex_base_2< Kernel > Vb
typedef CGAL::Vector_2< Kernel > Vector_2
typedef CGAL::Vector_3< Kernel > Vector_3

Public Functions

Type Name
void _intersection_solid_segment (const PrimitiveHandle< 3 > & pa, const PrimitiveHandle< 3 > & pb, GeometrySet< 3 > & output)
void _intersection_solid_solid (const MarkedPolyhedron & pa, const MarkedPolyhedron & pb, GeometrySet< 3 > & output)
void _intersection_solid_triangle (const MarkedPolyhedron & pa, const Triangle_3 & tri, detail::GeometrySet< 3 > & output)
void _intersection_solid_triangle (const MarkedPolyhedron & pa, const CGAL::Triangle_3< Kernel > & tri, GeometrySet< 3 > & output)
auto _intersects (const PrimitiveHandle< 2 > & pa, const PrimitiveHandle< 2 > & pb)
auto _intersects (const PrimitiveHandle< 3 > & pa, const PrimitiveHandle< 3 > & pb)
auto alphaShapes (const Geometry & g, double alpha=1, bool allow_holes=false)
void alpha_edges (const Alpha_shape_2 & A, OutputIterator out)
void appendDifference (const PrimitiveHandle< 2 > & pa, CollisionMapper< 2 >::PrimitiveHandleSet::const_iterator begin, CollisionMapper< 2 >::PrimitiveHandleSet::const_iterator end, GeometrySet< 2 > & output)
void appendDifference (const PrimitiveHandle< 3 > & pa, CollisionMapper< 3 >::PrimitiveHandleSet::const_iterator begin, CollisionMapper< 3 >::PrimitiveHandleSet::const_iterator end, GeometrySet< 3 > & output)
auto approximate (const Offset_polygon_2 & polygon, const int & n=0)
approximate an Offset_polygon_2 (filter null segments)
auto approximate (const Offset_polygon_with_holes_2 & polygon, const int & n=0)
approximate an Offset
auto approximateMedialAxis (const Geometry & g)
build an approximate medial axis for a Polygon __
auto area (const Geometry & g, NoValidityCheck)
Compute the 2D area for a Geometry .
auto area (const Geometry & g)
Compute the 2D area for a Geometry .
auto area (const Triangle & g)
auto area (const Polygon & g)
auto area (const GeometryCollection & g)
auto area (const TriangulatedSurface & g)
auto area (const PolyhedralSurface & g)
auto area3D (const Geometry & g, NoValidityCheck)
auto area3D (const Geometry & g)
auto area3D (const Polygon & g)
auto area3D (const Triangle & g)
auto area3D (const GeometryCollection & g)
auto area3D (const PolyhedralSurface & g)
auto area3D (const TriangulatedSurface & g)
auto boundingCircle (const Geometry & geom)
auto boundingSphere (const Geometry & geom)
auto circleToPolygon (const Kernel::Circle_2 & circle)
helper to create a polygon from a circle
auto collect (const Geometry & ga, const Geometry & gb)
std::unique_ptr< Geometry > collect (GeometryIterator begin, GeometryIterator end)
void collectPrimitives (const typename HandledBox< Dim >::Vector & boxes, detail::GeometrySet< Dim > & output)
auto collectionExtractPolygons (std::unique_ptr< Geometry > g)
auto collectionHomogenize (std::unique_ptr< Geometry > coll)
auto collectionToMulti (std::unique_ptr< Geometry > coll)
TriangleOutputIteratorType collidingTriangles (const FaceSegmentCollide::CollisionVector & collisions, TriangleOutputIteratorType out)
auto compute_bboxes (const detail::GeometrySet< Dim > & gs, OutputIterator out)
auto convexHull (const Geometry & g)
auto convexHull3D (const Geometry & g)
auto covers (const PrimitiveHandle< 3 > &, const PrimitiveHandle< 3 > &)
auto covers (const detail::GeometrySet< Dim > & a, const detail::GeometrySet< Dim > & b)
auto covers (const Geometry & ga, const Geometry & gb)
bool covers (const detail::GeometrySet< Dim > & a, const detail::GeometrySet< Dim > & b)
bool covers (const detail::PrimitiveHandle< Dim > & a, const detail::PrimitiveHandle< Dim > & b)
auto covers3D (const Geometry & ga, const Geometry & gb)
template bool covers< 2 > (const GeometrySet< 2 > & a, const GeometrySet< 2 > & b)
template bool covers< 3 > (const GeometrySet< 3 > & a, const GeometrySet< 3 > & b)
auto difference (const Point_2 & primitive, const PrimitiveHandle< 2 > & pb, OutputIteratorType out)
auto difference (const Segment_2 & primitive, const PrimitiveHandle< 2 > & pb, OutputIteratorType out)
auto difference (const PolygonWH_2 & primitive, const PrimitiveHandle< 2 > & pb, OutputIteratorType out)
auto difference (const Point_3 & primitive, const PrimitiveHandle< 3 > & pb, OutputIteratorType out)
auto difference (const Segment_3 & primitive, const PrimitiveHandle< 3 > & pb, OutputIteratorType out)
auto difference (const Triangle_3 & primitive, const PrimitiveHandle< 3 > & pb, OutputIteratorType out)
auto difference (const MarkedPolyhedron & primitive, const PrimitiveHandle< 3 > & pb, OutputIteratorType out)
auto difference (const Primitive & primitive, PrimitiveHandleConstIterator begin, PrimitiveHandleConstIterator end)
void difference (const GeometrySet< Dim > & a, const GeometrySet< Dim > & b, GeometrySet< Dim > & output)
auto difference (const Geometry & ga, const Geometry & gb, NoValidityCheck)
auto difference (const Geometry & ga, const Geometry & gb)
PointOutputIteratorType difference (const Point_2 & a, const Point_2 & b, PointOutputIteratorType out)
PointOutputIteratorType difference (const Point_2 & a, const Segment_2 & b, PointOutputIteratorType out)
PointOutputIteratorType difference (const Point_2 & a, const PolygonWH_2 & b, PointOutputIteratorType out)
PointOutputIteratorType difference (const Point_2 &, const NoVolume &, PointOutputIteratorType out)
SegmentOutputIteratorType difference (const Segment_2 &, const NoVolume &, SegmentOutputIteratorType out)
SurfaceOutputIteratorType difference (const PolygonWH_2 &, const NoVolume &, SurfaceOutputIteratorType out)
PointOutputIteratorType difference (const Point_3 & a, const Point_3 & b, PointOutputIteratorType out)
PointOutputIteratorType difference (const Point_3 & a, const Segment_3 & b, PointOutputIteratorType out)
PointOutputIteratorType difference (const Point_3 & a, const Triangle_3 & b, PointOutputIteratorType out)
PointOutputIteratorType difference (const Point_3 & a, const MarkedPolyhedron & b, PointOutputIteratorType out)
SegmentOutputIteratorType difference (const SegmentType & a, const SegmentOrSurfaceType & b, SegmentOutputIteratorType out)
SegmentOutputIteratorType difference (const Segment_2 & segment, const PolygonWH_2 & polygon, SegmentOutputIteratorType out)
OutputIteratorType difference (const Triangle_3 & p, const Triangle_3 & q, OutputIteratorType out)
VolumeOutputIteratorType difference (const MarkedPolyhedron & a, const MarkedPolyhedron & b, VolumeOutputIteratorType out)
SegmentOutputIteratorType difference (const Segment_3 & segment, const MarkedPolyhedron & polyhedron, SegmentOutputIteratorType out)
TriangleOutputIteratorType difference (const Triangle_3 & triangle, const MarkedPolyhedron & polyhedron, TriangleOutputIteratorType out)
PolygonOutputIteratorType difference (const PolygonWH_2 & a, const PolygonWH_2 & b, PolygonOutputIteratorType out)
auto difference3D (const Geometry & ga, const Geometry & gb, NoValidityCheck)
auto difference3D (const Geometry & ga, const Geometry & gb)
template void difference< 2 > (const GeometrySet< 2 > & a, const GeometrySet< 2 > & b, GeometrySet< 2 > &)
template void difference< 3 > (const GeometrySet< 3 > & a, const GeometrySet< 3 > & b, GeometrySet< 3 > &)
void dispatch_intersection_sym (const PrimitiveHandle< Dim > & pa, const PrimitiveHandle< Dim > & pb, GeometrySet< Dim > & output)
auto dispatch_intersects_sym (const PrimitiveHandle< Dim > & pa, const PrimitiveHandle< Dim > & pb)
auto distance (const Geometry & gA, const Geometry & gB, NoValidityCheck)
auto distance (const Geometry & gA, const Geometry & gB)
auto distance3D (const Geometry & gA, const Geometry & gB, NoValidityCheck)
auto distance3D (const Geometry & gA, const Geometry & gB)
auto distanceGeometryCollectionToGeometry (const Geometry & gA, const Geometry & gB)
auto distanceGeometryCollectionToGeometry3D (const Geometry & gA, const Geometry & gB)
auto distanceLineStringGeometry (const LineString & gA, const Geometry & gB)
auto distanceLineStringGeometry3D (const LineString & gA, const Geometry & gB)
auto distanceLineStringLineString (const LineString & gA, const LineString & gB)
auto distanceLineStringLineString3D (const LineString & gA, const LineString & gB)
auto distanceLineStringPolygon (const LineString & gA, const Polygon & gB)
auto distanceLineStringPolygon3D (const LineString & gA, const Polygon & gB)
auto distanceLineStringSolid3D (const LineString & gA, const Solid & gB)
auto distanceLineStringTriangle (const LineString & gA, const Triangle & gB)
auto distanceLineStringTriangle3D (const LineString & gA, const Triangle & gB)
auto distancePointGeometry (const Point & gA, const Geometry & gB)
auto distancePointGeometry3D (const Point & gA, const Geometry & gB)
auto distancePointLineString (const Point & gA, const LineString & gB)
auto distancePointLineString3D (const Point & gA, const LineString & gB)
auto distancePointPoint (const Point & gA, const Point & gB)
auto distancePointPoint3D (const Point & gA, const Point & gB)
auto distancePointPolygon (const Point & gA, const Polygon & gB)
auto distancePointPolygon3D (const Point & gA, const Polygon & gB)
auto distancePointSegment (const Point & p, const Point & a, const Point & b)
auto distancePointSegment3D (const Point & p, const Point & a, const Point & b)
auto distancePointSolid3D (const Point & gA, const Solid & gB)
auto distancePointTriangle (const Point & gA, const Triangle & gB)
auto distancePointTriangle3D (const Point & gA, const Triangle & gB)
auto distancePointTriangle3D (const Point & p_, const Point & a_, const Point & b_, const Point & c_)
auto distancePolygonGeometry (const Polygon & gA, const Geometry & gB)
auto distancePolygonGeometry3D (const Polygon & gA, const Geometry & gB)
auto distancePolygonPolygon (const Polygon & gA, const Polygon & gB)
auto distancePolygonTriangle (const Polygon & gA, const Triangle & gB)
auto distanceSegmentSegment (const Point & a, const Point & b, const Point & c, const Point & d)
auto distanceSegmentSegment3D (const Point & a, const Point & b, const Point & c, const Point & d)
auto distanceSegmentTriangle3D (const Point & sA_, const Point & sB_, const Point & tA_, const Point & tB_, const Point & tC_)
auto distanceSolidGeometry3D (const Solid & gA, const Geometry & gB)
auto distanceSolidSolid3D (const Solid & gA, const Solid & gB)
auto distanceTriangleGeometry (const Triangle & gA, const Geometry & gB)
auto distanceTriangleGeometry3D (const Triangle & gA, const Geometry & gB)
auto distanceTriangleSolid3D (const Triangle & gA, const Solid & gB)
auto distanceTriangleTriangle3D (const Triangle & gA, const Triangle & gB)
bool do_intersect (const Point_2 & point, const PolygonWH_2 & polygon)
auto equalLength (const GeometrySet< Dim > & a, const GeometrySet< Dim > & b, int dim)
auto extrude (const Point & g, const Kernel::Vector_3 & v)
auto extrude (const LineString & g, const Kernel::Vector_3 & v)
auto extrude (const Polygon & g, const Kernel::Vector_3 & v, bool addTop=true)
auto extrude (const Triangle & g, const Kernel::Vector_3 & v)
auto extrude (const MultiPoint & g, const Kernel::Vector_3 & v)
auto extrude (const MultiLineString & g, const Kernel::Vector_3 & v)
auto extrude (const MultiPolygon & g, const Kernel::Vector_3 & v)
auto extrude (const TriangulatedSurface & g, const Kernel::Vector_3 & v)
auto extrude (const PolyhedralSurface & g, const Kernel::Vector_3 & v)
auto extrude (const GeometryCollection & g, const Kernel::Vector_3 & v)
auto extrude (const Geometry & g, const Kernel::Vector_3 & v)
Returns a Geometry equal to the specifiedGeometry , extruded by the specified displacement vector.
auto extrude (const Geometry & g, const Kernel::FT & dx, const Kernel::FT & dy, const Kernel::FT & dz, NoValidityCheck)
auto extrude (const Geometry & g, const Kernel::FT & dx, const Kernel::FT & dy, const Kernel::FT & dz)
Returns a Geometry equal to the specifiedGeometry , extruded by the specified displacement.
SFCGAL_API auto extrude (const Geometry & g, const double & dx, const double & dy, const double & dz)
Returns a Geometry equal to the specifiedGeometry , extruded by the specified displacement.
SFCGAL_API auto extrude (const Polygon & g, const double & height)
SFCGAL_API std::unique_ptr< Geometry > extrude (const Geometry & g, const Kernel::FT & dx, const Kernel::FT & dy, const Kernel::FT & dz, NoValidityCheck & nvc)
Returns a Geometry equal to the specifiedGeometry , extruded by the specified displacement.
auto extrudeStraightSkeleton (const Polygon & g, double height)
auto extrudeStraightSkeleton (const Geometry & g, double height)
auto extrudeStraightSkeleton (const Geometry & g, double building_height, double roof_height)
SFCGAL_API auto extrudedStraightSkeleton (const Polygon & g, double height)
build a 3D straight skeleton extruded for a Polygon __
PolygonOutputIteratorType fix_cgal_valid_polygon (const PolygonWH_2 & p, PolygonOutputIteratorType out)
PolygonWH_2 fix_sfs_valid_polygon (const PolygonWH_2 & p)
void force2D (Geometry & g)
force a geometry to be 2D (project on O,x,y)
void force3D (Geometry & g, const Kernel::FT & defaultZ=0)
force a 2D geometry to be 3D (replace undefined Z by defaultZ, existing Z values remains unchanged)
auto geometryToNef (const Geometry & g)
void handleLeakTest ()
auto hasConsistentOrientation3D (const TriangulatedSurface & g)
auto hasConsistentOrientation3D (const PolyhedralSurface & g)
bool 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 .
bool hasPlane3D (const Polygon & polygon)
auto intersection (const CGAL::Triangle_3< Kernel > & a, const CGAL::Triangle_3< Kernel > & b)
void intersection (const PrimitiveHandle< 3 > & pa, const PrimitiveHandle< 3 > & pb, GeometrySet< 3 > & output, dim_t< 3 >)
void intersection (const PrimitiveHandle< 2 > & pa, const PrimitiveHandle< 2 > & pb, GeometrySet< 2 > & output, dim_t< 2 >)
void intersection (const PrimitiveHandle< Dim > & pa, const PrimitiveHandle< Dim > & pb, GeometrySet< Dim > & output)
void intersection (const GeometrySet< Dim > & a, const GeometrySet< Dim > & b, GeometrySet< Dim > & output)
auto intersection (const Geometry & ga, const Geometry & gb, NoValidityCheck)
auto intersection (const Geometry & ga, const Geometry & gb)
auto intersection3D (const Geometry & ga, const Geometry & gb, NoValidityCheck)
auto intersection3D (const Geometry & ga, const Geometry & gb)
template void intersection< 2 > (const PrimitiveHandle< 2 > & a, const PrimitiveHandle< 2 > & b, GeometrySet< 2 > &)
template void intersection< 2 > (const GeometrySet< 2 > & a, const GeometrySet< 2 > & b, GeometrySet< 2 > &)
template void intersection< 3 > (const PrimitiveHandle< 3 > & a, const PrimitiveHandle< 3 > & b, GeometrySet< 3 > &)
template void intersection< 3 > (const GeometrySet< 3 > & a, const GeometrySet< 3 > & b, GeometrySet< 3 > &)
auto intersects (const detail::PrimitiveHandle< Dim > & a, const detail::PrimitiveHandle< Dim > & b)
auto intersects (const detail::GeometrySet< Dim > & a, const detail::GeometrySet< Dim > & b)
auto intersects (const Geometry & ga, const Geometry & gb)
auto intersects (const Geometry & ga, const Geometry & gb, NoValidityCheck)
bool intersects (const detail::GeometrySet< Dim > & a, const detail::GeometrySet< Dim > & b)
bool intersects (const detail::PrimitiveHandle< Dim > & a, const detail::PrimitiveHandle< Dim > & b)
auto intersects3D (const Geometry & ga, const Geometry & gb)
auto intersects3D (const Geometry & ga, const Geometry & gb, NoValidityCheck)
template bool intersects< 2 > (const GeometrySet< 2 > & a, const GeometrySet< 2 > & b)
template bool intersects< 2 > (const PrimitiveHandle< 2 > & a, const PrimitiveHandle< 2 > & b)
template bool intersects< 3 > (const GeometrySet< 3 > & a, const GeometrySet< 3 > & b)
template bool intersects< 3 > (const PrimitiveHandle< 3 > & a, const PrimitiveHandle< 3 > & b)
auto isClosed (const SurfaceGraph & graph)
auto isConnected (const SurfaceGraph & graph)
auto isCounterClockWiseOriented (const LineString & ls)
auto isCounterClockWiseOriented (const Triangle & tri)
auto isCounterClockWiseOriented (const Polygon & poly)
bool isHoleOf (const Polygon_2 & hole, const Polygon_2 & poly)
bool isPlane3D (const Geometry & geom, const double & toleranceAbs)
auto isValid (const Point & p)
auto isValid (const LineString & l, const double & toleranceAbs)
auto isValid (const Polygon & p, const double & toleranceAbs)
auto isValid (const Triangle & t, const double & toleranceAbs)
auto isValid (const MultiLineString & ml, const double & toleranceAbs)
auto isValid (const MultiPolygon & mp, const double & toleranceAbs)
auto isValid (const GeometryCollection & gc, const double & toleranceAbs)
auto isValid (const TriangulatedSurface & tin, const SurfaceGraph & graph, const double & toleranceAbs)
auto isValid (const TriangulatedSurface & tin, const double & toleranceAbs)
auto isValid (const PolyhedralSurface & s, const SurfaceGraph & graph, const double & toleranceAbs)
auto isValid (const PolyhedralSurface & s, const double & toleranceAbs)
auto isValid (const Solid & solid, const double & toleranceAbs)
auto isValid (const MultiSolid & ms, const double & toleranceAbs)
auto isValid (const Geometry & g, const double & toleranceAbs)
Check validity of a geometry.
auto length (const LineString & g)
Compute the 2D length for a LineString .
auto length (const GeometryCollection & g)
Compute the 2D length for a GeometryCollection .
auto length (const Geometry & g)
Compute the 2D length for a Geometry (0 for incompatible types)
auto length3D (const LineString & g)
Compute the 3D length for a LineString .
auto length3D (const GeometryCollection & g)
Compute the 3D length for a GeometryCollection .
auto length3D (const Geometry & g)
Compute the 2D length for a geometry.
auto lineSubstring (const LineString & ls, double start, double end)
Retrieve a substring of a specified LineString , between the specified fractional distances from the start of the specifiedLineString .
void makeConsistentOrientation3D (TriangulatedSurface & g)
void makeValidOrientation (CGAL::Polygon_2< Kernel > & polygon)
void makeValidOrientation (CGAL::Polygon_with_holes_2< Kernel > & polygon)
void makeValidOrientation (Polygon & polygon)
void minkowskiSum (const Geometry & gA, const Polygon_2 & gB, CGAL::Polygon_set_2< Kernel > & polygonSet)
void minkowskiSum (const Point & gA, const Polygon_2 & gB, Polygon_set_2 & polygonSet)
void minkowskiSum (const LineString & gA, const Polygon_2 & gB, Polygon_set_2 & polygonSet)
void minkowskiSum (const Polygon & gA, const Polygon_2 & gB, Polygon_set_2 & polygonSet)
void minkowskiSum (const Solid & gA, const Polygon_2 & gB, Polygon_set_2 & polygonSet)
auto minkowskiSum (const Geometry & gA, const Polygon & gB, NoValidityCheck)
2D minkowski sum (p+q)
auto minkowskiSum (const Geometry & gA, const Polygon & gB)
2D minkowski sum (p+q)
auto minkowskiSum3D (const Geometry & gA, const Geometry & gB, NoValidityCheck)
3D Minkowski sum (p+q)
auto minkowskiSum3D (const Geometry & gA, const Geometry & gB)
3D Minkowski sum (p+q)
void minkowskiSumCollection (const Geometry & gA, const Polygon_2 & gB, Polygon_set_2 & polygonSet)
auto nefToGeometry (const Nef_polyhedron_3 & nef)
CGAL::Vector_3< Kernel > normal3D (const CGAL::Point_3< Kernel > & a, const CGAL::Point_3< Kernel > & b, const CGAL::Point_3< Kernel > & c)
CGAL::Vector_3< Kernel > normal3D (const LineString & ls, bool exact=true)
CGAL::Vector_3< Kernel > normal3D (const Polygon & polygon, bool exact=true)
auto numIntersectionPoints (const CGAL::Polygon_with_holes_2< Kernel > & poly)
void offset (const Geometry & g, const double & radius, Offset_polygon_set_2 & polygonSet)
dispatch a geometry
void offset (const Point & g, const double & radius, Offset_polygon_set_2 & polygonSet)
offset for a Point __
void offset (const LineString & g, const double & radius, Offset_polygon_set_2 & polygonSet)
offset for a LineString __
void offset (const Polygon & g, const double & radius, Offset_polygon_set_2 & polygonSet)
offset for a Polygon __
auto offset (const Geometry & g, const double & r, NoValidityCheck)
[experimental]compute polygon offset
auto offset (const Geometry & g, const double & r)
[experimental]compute polygon offset
void offsetCollection (const Geometry & g, const double & radius, Offset_polygon_set_2 & polygonSet)
offset for MultiPoint ,MultiLineString ,MultiPolygon ,TriangulatedSurface ,PolyhedralSurface __
auto operator<< (std::ostream & out, std::set< T * > & obs)
auto optimal_alpha_shapes (const Geometry & g, bool allow_holes=false, size_t nb_components=1)
auto partition_2 (const Geometry & g, PartitionAlgorithm alg=y_monotone)
auto perpendicular_vector (const Kernel::Vector_3 & v)
void plane3D (const Polygon & polygon, CGAL::Point_3< Kernel > & a, CGAL::Point_3< Kernel > & b, CGAL::Point_3< Kernel > & c)
CGAL::Plane_3< Kernel > plane3D (const Polygon & polygon)
CGAL::Plane_3< Kernel > plane3D (const Polygon & polygon, const Plane3DInexactUnsafe &)
CGAL::Plane_3< Kernel > plane3D (const Polygon & polygon, bool exact)
auto polygonSetToMultiPolygon (const Offset_polygon_set_2 & polygonSet, const int & n)
convert Offset_polygon_set_2 to MultiPolygon __
void post_difference (const GeometrySet< 2 > & input, GeometrySet< 2 > & output)
void post_difference (const GeometrySet< 3 > & input, GeometrySet< 3 > & output)
void post_intersection (const GeometrySet< 2 > & input, GeometrySet< 2 > & output)
void post_intersection (const GeometrySet< 3 > & input, GeometrySet< 3 > & output)
void propagateValidityFlag (Geometry & g, bool valid)
void rotate (Geometry & g, const Kernel::FT & angle)
Rotate a geometry in 2D around the origin (0,0)
void rotate (Geometry & g, const Kernel::FT & angle, const Point & origin)
Rotate a geometry in 2D around a specified point.
void rotate (Geometry & g, const Kernel::FT & angle, const Kernel::Vector_3 & axis, const Point & origin=Point(0, 0, 0))
Rotate a geometry in 3D around a specified axis and origin.
void rotateX (Geometry & g, const Kernel::FT & angle)
Rotate a geometry around the X axis.
void rotateY (Geometry & g, const Kernel::FT & angle)
Rotate a geometry around the Y axis.
void rotateZ (Geometry & g, const Kernel::FT & angle)
Rotate a geometry around the Z axis.
void scale (Geometry & g, double s)
void scale (Geometry & g, double sx, double sy, double sz=0.0)
void scale (Geometry & g, double sx, double sy, double sz, double cx, double cy, double cz)
auto segmentsLength (const GeometrySet< Dim > & gs)
auto selfIntersects (const LineString & l)
auto selfIntersects (const PolyhedralSurface & s, const SurfaceGraph & g)
auto selfIntersects (const TriangulatedSurface & s, const SurfaceGraph & g)
auto selfIntersects3D (const LineString & l)
auto selfIntersects3D (const PolyhedralSurface & s, const SurfaceGraph & g)
auto selfIntersects3D (const TriangulatedSurface & s, const SurfaceGraph & g)
auto selfIntersectsImpl (const LineString & line)
auto selfIntersectsImpl (const PolyhedralSurface & s, const SurfaceGraph & graph)
auto selfIntersectsImpl (const TriangulatedSurface & tin, const SurfaceGraph & graph)
auto signedArea (const Triangle & g)
Compute the 2D signed area for a Triangle .
auto signedArea (const LineString & g)
Compute the 2D signed area for a closed LineString .
auto solidsVolume (const GeometrySet< 3 > & gs, bool planarSurface=false)
auto solidsVolume (const GeometrySet< 2 > &)
auto squaredDistancePointTriangle3D (const Point_3 & p, const Triangle_3 & abc)
auto squaredDistanceSegmentTriangle3D (const Segment_3 & sAB, const Triangle_3 & tABC)
auto squaredDistanceTriangleTriangle3D (const Triangle_3 & triangleA, const Triangle_3 & triangleB)
auto straightSkeleton (const Geometry & g, bool autoOrientation, NoValidityCheck, bool innerOnly=false, bool outputDistanceInM=false, const double & toleranceAbs=1e-8)
build a 2D straight skeleton for a Polygon __
auto straightSkeleton (const Geometry & g, bool autoOrientation=true, bool innerOnly=false, bool outputDistanceInM=false, const double & toleranceAbs=1e-8)
build a 2D straight skeleton for a Polygon __
auto straightSkeleton (const Polygon & g, bool autoOrientation=true, bool innerOnly=false, bool outputDistanceInM=false, const double & toleranceAbs=1e-8)
build a 2D straight skeleton for a Polygon __
auto straightSkeleton (const MultiPolygon & g, bool autoOrientation=true, bool innerOnly=false, bool outputDistanceInM=false, const double & toleranceAbs=1e-8)
build a 2D straight skeleton for a Polygon __
auto straightSkeletonPartition (const Geometry & g, bool autoOrientation=true)
Build a 2D straight skeleton partition for a Geometry .
auto straightSkeletonPartition (const MultiPolygon & g, bool autoOrientation=true)
Build a 2D straight skeleton partition for a MultiPolygon .
auto straightSkeletonPartition (const Polygon & g, bool autoOrientation=true)
Build a 2D straight skeleton partition for a Polygon .
auto surfacesArea (const GeometrySet< 2 > & gs)
auto surfacesArea (const GeometrySet< 3 > & gs)
auto tesselate (const Geometry & g, NoValidityCheck)
auto tesselate (const Geometry & g)
void translate (Geometry & g, const Kernel::Vector_3 & v)
translate a geometry from a given vector
void translate (Geometry & g, const Kernel::Vector_2 & v)
translate a geometry from a given vector
void translate (Geometry & g, const Kernel::FT & dx, const Kernel::FT & dy, const Kernel::FT & dz)
translate a geometry from a given vector
void translate (Geometry & g, const double & dx, const double & dy, const double & dz)
translate a geometry from double-coordinates
auto union3D (const Geometry & ga, const Geometry & gb, NoValidityCheck)
auto union3D (const Geometry & ga, const Geometry & gb)
auto union_ (const Geometry & ga, const Geometry & gb, NoValidityCheck)
auto union_ (const Geometry & ga, const Geometry & gb)
void union_ (const detail::GeometrySet< Dim > & a, const detail::GeometrySet< Dim > & b, detail::GeometrySet< Dim > &)
void union_ (const detail::PrimitiveHandle< Dim > & a, const detail::PrimitiveHandle< Dim > & b, detail::GeometrySet< Dim > &)
void union_point_point (Handle a, Handle b)
void union_point_segment (Handle a, Handle b)
void union_point_surface (Handle< 2 > a, Handle< 2 > b)
void union_point_surface (Handle< 3 > a, Handle< 3 > b)
void union_point_volume (const Handle< 2 > &, const Handle< 2 > &)
void union_point_volume (Handle< 3 > a, Handle< 3 > b)
void union_segment_segment (Handle< Dim > a, Handle< Dim > b)
void union_segment_segment (const Handle< 2 > & a, const Handle< 2 > & b)
void union_segment_segment (const Handle< 3 > & a, const Handle< 3 > & b)
void union_segment_surface (Handle< 2 > a, Handle< 2 > b)
void union_segment_surface (Handle< 3 > a, Handle< 3 > b)
void union_segment_volume (const Handle< 2 > &, const Handle< 2 > &)
void union_segment_volume (Handle< 3 > a, Handle< 3 > b)
void union_surface_surface (Handle< 2 > a, Handle< 2 > b)
void union_surface_surface (Handle< 3 > a, Handle< 3 > b)
void union_surface_volume (const Handle< 2 > &, const Handle< 2 > &)
void union_surface_volume (Handle< 3 > a, Handle< 3 > b)
void union_volume_volume (const Handle< 2 > &, const Handle< 2 > &)
void union_volume_volume (Handle< 3 > a, Handle< 3 > b)
auto visibility (const Geometry & polygon, const Geometry & point)
build the visibility polygon of a Point inside aPolygon __
auto visibility (const Geometry & polygon, const Geometry & point, NoValidityCheck)
build the visibility polygon of a Point inside aPolygon __
auto visibility (const Geometry & polygon, const Geometry & pointA, const Geometry & pointB)
build the visibility polygon of the segment [pointA ; pointB] on a Polygon __
auto visibility (const Geometry & polygon, const Geometry & pointA, const Geometry & pointB, NoValidityCheck)
build the visibility polygon of a Point inside aPolygon __
auto volume (const Solid & g, NoValidityCheck)
auto volume (const Geometry & g)

Public Static Functions

Type Name
auto alpha_to_geometry (const Alpha_shape_2 & A, bool allow_holes)
auto computeAlpha (const Geometry & g, Alpha_shape_2 & alphaShape, double alpha=0, size_t nb_components=1)
auto polygons_to_geometry (const std::list< TPolygon_2 > & polys)
auto query_visibility (Face_handle fh, Halfedge_const_handle he)
auto toTPolygon_2 (const Polygon & poly)

Public Types Documentation

typedef Alpha_shape_2

using SFCGAL::algorithm::Alpha_shape_2 = typedef CGAL::Alpha_shape_2<Triangulation_2>;

typedef Alpha_shape_edges_iterator

using SFCGAL::algorithm::Alpha_shape_edges_iterator = typedef Alpha_shape_2::Alpha_shape_edges_iterator;

typedef Arrangement

using SFCGAL::algorithm::Arrangement = typedef CGAL::Arrangement_2<Traits_2>;

typedef Arrangement_2

typedef CGAL::Arrangement_2< Traits_2 > SFCGAL::algorithm::Arrangement_2;

typedef FaceBboxBase

typedef CGAL::Box_intersection_d::Box_with_handle_d< double, 3, MarkedPolyhedron::Halfedge_around_facet_const_circulator> SFCGAL::algorithm::FaceBboxBase;

typedef Face_const_handle

using SFCGAL::algorithm::Face_const_handle = typedef Arrangement_2::Face_const_handle;

typedef Face_handle

using SFCGAL::algorithm::Face_handle = typedef Arrangement_2::Face_handle;

typedef Fb

using SFCGAL::algorithm::Fb = typedef CGAL::Alpha_shape_face_base_2<Kernel>;

typedef Halfedge_const_handle

using SFCGAL::algorithm::Halfedge_const_handle = typedef Arrangement_2::Halfedge_const_handle;

typedef MarkedPolyhedron

typedef detail::MarkedPolyhedron SFCGAL::algorithm::MarkedPolyhedron;

typedef Mesh

using SFCGAL::algorithm::Mesh = typedef CGAL::Surface_mesh<Point_3>;

typedef Nef_polyhedron_3

using SFCGAL::algorithm::Nef_polyhedron_3 = typedef CGAL::Nef_polyhedron_3<Kernel>;

typedef NoVolume

typedef detail::NoVolume SFCGAL::algorithm::NoVolume;

enum PartitionAlgorithm

enum SFCGAL::algorithm::PartitionAlgorithm {
    y_monotone,
    approx_convex,
    greene_approx_convex,
    optimal_convex
};

Partition algorithm available

Since:

1.4.2


typedef Plane_3

typedef CGAL::Plane_3< Kernel > SFCGAL::algorithm::Plane_3;

typedef Point_2

typedef Kernel::Point_2 SFCGAL::algorithm::Point_2;

typedef Point_3

typedef Kernel::Point_3 SFCGAL::algorithm::Point_3;

typedef PolygonWH_2

typedef CGAL::Polygon_with_holes_2<Kernel> SFCGAL::algorithm::PolygonWH_2;

typedef PolygonWithHoles

using SFCGAL::algorithm::PolygonWithHoles = typedef CGAL::Polygon_with_holes_2<Kernel>;

typedef Polygon_2

typedef CGAL::Polygon_2< Kernel > SFCGAL::algorithm::Polygon_2;

typedef Polygon_with_holes_2

using SFCGAL::algorithm::Polygon_with_holes_2 = typedef CGAL::Polygon_with_holes_2<Kernel>;

typedef Polyhedron_3

typedef CGAL::Polyhedron_3< Kernel > SFCGAL::algorithm::Polyhedron_3;

typedef Polyline_3

using SFCGAL::algorithm::Polyline_3 = typedef std::vector<Kernel::Point_3>;

enum PrimitiveType

enum SFCGAL::algorithm::PrimitiveType {
    PrimitivePoint = 0,
    PrimitiveSegment = 1,
    PrimitiveSurface = 2,
    PrimitiveVolume = 3,
    PrimitiveEmpty = 4
};

typedef SHARED_PTR

using SFCGAL::algorithm::SHARED_PTR = typedef boost::shared_ptr<T>;

typedef Segment_2

typedef Kernel::Segment_2 SFCGAL::algorithm::Segment_2;

typedef Segment_3

typedef CGAL::Segment_3< Kernel > SFCGAL::algorithm::Segment_3;

typedef Straight_skeleton_2

using SFCGAL::algorithm::Straight_skeleton_2 = typedef CGAL::Straight_skeleton_2<Kernel>;

typedef TEV

using SFCGAL::algorithm::TEV = typedef CGAL::Triangular_expansion_visibility_2<Arrangement_2, CGAL::Tag_true>;

typedef TPoint_2

using SFCGAL::algorithm::TPoint_2 = typedef Traits::Point_2;

typedef TPolygon_2

using SFCGAL::algorithm::TPolygon_2 = typedef Traits::Polygon_2;

typedef Tds

using SFCGAL::algorithm::Tds = typedef CGAL::Triangulation_data_structure_2<Vb, Fb>;

typedef Traits

using SFCGAL::algorithm::Traits = typedef CGAL::Partition_traits_2<Kernel>;

typedef Traits_2

typedef CGAL::Arr_segment_traits_2< Kernel > SFCGAL::algorithm::Traits_2;

typedef Triangle_2

typedef CGAL::Triangle_2< Kernel > SFCGAL::algorithm::Triangle_2;

typedef Triangle_3

typedef CGAL::Triangle_3< Kernel > SFCGAL::algorithm::Triangle_3;

typedef Triangulation_2

using SFCGAL::algorithm::Triangulation_2 = typedef CGAL::Delaunay_triangulation_2<Kernel, Tds>;

typedef Vb

using SFCGAL::algorithm::Vb = typedef CGAL::Alpha_shape_vertex_base_2<Kernel>;

typedef Vector_2

typedef CGAL::Vector_2<Kernel> SFCGAL::algorithm::Vector_2;

typedef Vector_3

typedef CGAL::Vector_3<Kernel> SFCGAL::algorithm::Vector_3;

Public Functions Documentation

function _intersection_solid_segment

void SFCGAL::algorithm::_intersection_solid_segment (
    const PrimitiveHandle < 3 > & pa,
    const PrimitiveHandle < 3 > & pb,
    GeometrySet < 3 > & output
) 

function _intersection_solid_solid

void SFCGAL::algorithm::_intersection_solid_solid (
    const MarkedPolyhedron & pa,
    const MarkedPolyhedron & pb,
    GeometrySet < 3 > & output
) 

function _intersection_solid_triangle

void SFCGAL::algorithm::_intersection_solid_triangle (
    const MarkedPolyhedron & pa,
    const Triangle_3 & tri,
    detail::GeometrySet < 3 > & output
) 

function _intersection_solid_triangle

void SFCGAL::algorithm::_intersection_solid_triangle (
    const MarkedPolyhedron & pa,
    const CGAL::Triangle_3< Kernel > & tri,
    GeometrySet < 3 > & output
) 

function _intersects

auto SFCGAL::algorithm::_intersects (
    const PrimitiveHandle < 2 > & pa,
    const PrimitiveHandle < 2 > & pb
) 

function _intersects

auto SFCGAL::algorithm::_intersects (
    const PrimitiveHandle < 3 > & pa,
    const PrimitiveHandle < 3 > & pb
) 

function alphaShapes

auto SFCGAL::algorithm::alphaShapes (
    const Geometry & g,
    double alpha=1,
    bool allow_holes=false
) 

Compute the 2D alpha shapes for a geometry https://doc.cgal.org/latest/Alpha_shapes_2/index.html#Chapter_2D_Alpha_Shapes

Since:

1.4.1


function alpha_edges

template<class OutputIterator>
void SFCGAL::algorithm::alpha_edges (
    const Alpha_shape_2 & A,
    OutputIterator out
) 

function appendDifference

void SFCGAL::algorithm::appendDifference (
    const PrimitiveHandle < 2 > & pa,
    CollisionMapper < 2 >::PrimitiveHandleSet::const_iterator begin,
    CollisionMapper < 2 >::PrimitiveHandleSet::const_iterator end,
    GeometrySet < 2 > & output
) 

function appendDifference

void SFCGAL::algorithm::appendDifference (
    const PrimitiveHandle < 3 > & pa,
    CollisionMapper < 3 >::PrimitiveHandleSet::const_iterator begin,
    CollisionMapper < 3 >::PrimitiveHandleSet::const_iterator end,
    GeometrySet < 3 > & output
) 

function approximate

auto SFCGAL::algorithm::approximate (
    const Offset_polygon_2 & polygon,
    const int & n=0
) 

function approximate

auto SFCGAL::algorithm::approximate (
    const Offset_polygon_with_holes_2 & polygon,
    const int & n=0
) 

function approximateMedialAxis

build an approximate medial axis for a Polygon __

auto SFCGAL::algorithm::approximateMedialAxis (
    const Geometry & g
) 

Parameters:

  • g input geometry

Precondition:

g is a valid geometry

Exception:


function area

Compute the 2D area for a Geometry .

auto SFCGAL::algorithm::area (
    const Geometry & g,
    NoValidityCheck
) 

Warning:

Z component is ignored, there is no 2D projection for 3D geometries

Precondition:

g is a valid geometry

Warning:

No actual validity check is done


function area

Compute the 2D area for a Geometry .

auto SFCGAL::algorithm::area (
    const Geometry & g
) 

Warning:

Z component is ignored, there is no 2D projection for 3D geometries

Precondition:

g is a valid geometry


function area

auto SFCGAL::algorithm::area (
    const Triangle & g
) 

Returns Compute the 2D area for a Triangle


function area

auto SFCGAL::algorithm::area (
    const Polygon & g
) 

Returns Compute the 2D area for a Polygon


function area

auto SFCGAL::algorithm::area (
    const GeometryCollection & g
) 

Returns the 2D area for a GeometryCollection


function area

auto SFCGAL::algorithm::area (
    const TriangulatedSurface & g
) 

Returns the 2D area for a TriangulatedSurface


function area

auto SFCGAL::algorithm::area (
    const PolyhedralSurface & g
) 

Returns the 2D area for a TriangulatedSurface


function area3D

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

– area3D

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


function area3D

auto SFCGAL::algorithm::area3D (
    const Geometry & g
) 

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


function area3D

auto SFCGAL::algorithm::area3D (
    const Polygon & g
) 

Returns 3D area for a Polygon


function area3D

auto SFCGAL::algorithm::area3D (
    const Triangle & g
) 

Returns the 3D area for a Triangle


function area3D

auto SFCGAL::algorithm::area3D (
    const GeometryCollection & g
) 

Returns the 3D area for a MultiPolygon


function area3D

auto SFCGAL::algorithm::area3D (
    const PolyhedralSurface & g
) 

Returns the 3D area for a PolyhedralSurface


function area3D

auto SFCGAL::algorithm::area3D (
    const TriangulatedSurface & g
) 

Returns the 3D area for a TriangulatedSurface


function boundingCircle

auto SFCGAL::algorithm::boundingCircle (
    const Geometry & geom
) 

function boundingSphere

auto SFCGAL::algorithm::boundingSphere (
    const Geometry & geom
) 

function circleToPolygon

auto SFCGAL::algorithm::circleToPolygon (
    const Kernel::Circle_2 & circle
) 

function collect

auto SFCGAL::algorithm::collect (
    const Geometry & ga,
    const Geometry & gb
) 

Returns an aggregate of ga and gb


function collect

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

Returns an aggregate of a list of geometries


function collectPrimitives

template<int Dim>
void SFCGAL::algorithm::collectPrimitives (
    const typename HandledBox < Dim >::Vector & boxes,
    detail::GeometrySet < Dim > & output
) 

function collectionExtractPolygons

auto SFCGAL::algorithm::collectionExtractPolygons (
    std::unique_ptr< Geometry > g
) 

function collectionHomogenize

auto SFCGAL::algorithm::collectionHomogenize (
    std::unique_ptr< Geometry > coll
) 

Given a geometry collection, returns the "simplest" representation of the contents. Singletons will be returned as singletons. Collections that are homogeneous will be returned as the appropriate multi-type.

Warning:

Ownership is taken from the parameter


function collectionToMulti

auto SFCGAL::algorithm::collectionToMulti (
    std::unique_ptr< Geometry > coll
) 

Given a geometry collection of triangles, TINs and polygons returns a MultiPolygon

Warning:

Ownership is taken from the parameter


function collidingTriangles

template<typename TriangleOutputIteratorType>
TriangleOutputIteratorType SFCGAL::algorithm::collidingTriangles (
    const FaceSegmentCollide::CollisionVector & collisions,
    TriangleOutputIteratorType out
) 

function compute_bboxes

template<int Dim, class OutputIterator>
auto SFCGAL::algorithm::compute_bboxes (
    const detail::GeometrySet < Dim > & gs,
    OutputIterator out
) 

function convexHull

auto SFCGAL::algorithm::convexHull (
    const Geometry & g
) 

Compute the 2D convex hull for a geometry


function convexHull3D

auto SFCGAL::algorithm::convexHull3D (
    const Geometry & g
) 

Compute the 3D convex hull for a geometry

Todo

improve to handle collinear points and coplanar points


function covers

auto SFCGAL::algorithm::covers (
    const PrimitiveHandle < 3 > &,
    const PrimitiveHandle < 3 > &
) 

function covers

template<int Dim>
auto SFCGAL::algorithm::covers (
    const detail::GeometrySet < Dim > & a,
    const detail::GeometrySet < Dim > & b
) 

@


function covers

auto SFCGAL::algorithm::covers (
    const Geometry & ga,
    const Geometry & gb
) 

Cover test on 2D geometries. Checks if gA covers gB. Force projection to z=0 if needed @


function covers

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

@


function covers

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

@


function covers3D

auto SFCGAL::algorithm::covers3D (
    const Geometry & ga,
    const Geometry & gb
) 

Cover test on 3D geometries. Checks if gA covers gB. Assume z = 0 if needed


function covers< 2 >

template bool SFCGAL::algorithm::covers< 2 > (
    const GeometrySet < 2 > & a,
    const GeometrySet < 2 > & b
) 

function covers< 3 >

template bool SFCGAL::algorithm::covers< 3 > (
    const GeometrySet < 3 > & a,
    const GeometrySet < 3 > & b
) 

function difference

template<typename OutputIteratorType>
auto SFCGAL::algorithm::difference (
    const Point_2 & primitive,
    const PrimitiveHandle < 2 > & pb,
    OutputIteratorType out
) 

function difference

template<typename OutputIteratorType>
auto SFCGAL::algorithm::difference (
    const Segment_2 & primitive,
    const PrimitiveHandle < 2 > & pb,
    OutputIteratorType out
) 

function difference

template<typename OutputIteratorType>
auto SFCGAL::algorithm::difference (
    const PolygonWH_2 & primitive,
    const PrimitiveHandle < 2 > & pb,
    OutputIteratorType out
) 

function difference

template<typename OutputIteratorType>
auto SFCGAL::algorithm::difference (
    const Point_3 & primitive,
    const PrimitiveHandle < 3 > & pb,
    OutputIteratorType out
) 

function difference

template<typename OutputIteratorType>
auto SFCGAL::algorithm::difference (
    const Segment_3 & primitive,
    const PrimitiveHandle < 3 > & pb,
    OutputIteratorType out
) 

function difference

template<typename OutputIteratorType>
auto SFCGAL::algorithm::difference (
    const Triangle_3 & primitive,
    const PrimitiveHandle < 3 > & pb,
    OutputIteratorType out
) 

function difference

template<typename OutputIteratorType>
auto SFCGAL::algorithm::difference (
    const MarkedPolyhedron & primitive,
    const PrimitiveHandle < 3 > & pb,
    OutputIteratorType out
) 

function difference

template<typename Primitive, typename PrimitiveHandleConstIterator>
auto SFCGAL::algorithm::difference (
    const Primitive & primitive,
    PrimitiveHandleConstIterator begin,
    PrimitiveHandleConstIterator end
) 

function difference

template<int Dim>
void SFCGAL::algorithm::difference (
    const GeometrySet < Dim > & a,
    const GeometrySet < Dim > & b,
    GeometrySet < Dim > & output
) 

function difference

auto SFCGAL::algorithm::difference (
    const Geometry & ga,
    const Geometry & gb,
    NoValidityCheck
) 

Diffrence on 2D geometries. No validity check variant

Precondition:

ga and gb are valid geometries

Warning:

No actual validity check is done.


function difference

auto SFCGAL::algorithm::difference (
    const Geometry & ga,
    const Geometry & gb
) 

Difference on 2D geometries.

Precondition:

ga and gb are valid geometries


function difference

template<typename PointOutputIteratorType>
PointOutputIteratorType SFCGAL::algorithm::difference (
    const Point_2 & a,
    const Point_2 & b,
    PointOutputIteratorType out
) 

function difference

template<typename PointOutputIteratorType>
PointOutputIteratorType SFCGAL::algorithm::difference (
    const Point_2 & a,
    const Segment_2 & b,
    PointOutputIteratorType out
) 

function difference

template<typename PointOutputIteratorType>
PointOutputIteratorType SFCGAL::algorithm::difference (
    const Point_2 & a,
    const PolygonWH_2 & b,
    PointOutputIteratorType out
) 

function difference

template<typename PointOutputIteratorType>
PointOutputIteratorType SFCGAL::algorithm::difference (
    const Point_2 &,
    const NoVolume &,
    PointOutputIteratorType out
) 

function difference

template<typename SegmentOutputIteratorType>
SegmentOutputIteratorType SFCGAL::algorithm::difference (
    const Segment_2 &,
    const NoVolume &,
    SegmentOutputIteratorType out
) 

function difference

template<typename SurfaceOutputIteratorType>
SurfaceOutputIteratorType SFCGAL::algorithm::difference (
    const PolygonWH_2 &,
    const NoVolume &,
    SurfaceOutputIteratorType out
) 

function difference

template<typename PointOutputIteratorType>
PointOutputIteratorType SFCGAL::algorithm::difference (
    const Point_3 & a,
    const Point_3 & b,
    PointOutputIteratorType out
) 

function difference

template<typename PointOutputIteratorType>
PointOutputIteratorType SFCGAL::algorithm::difference (
    const Point_3 & a,
    const Segment_3 & b,
    PointOutputIteratorType out
) 

function difference

template<typename PointOutputIteratorType>
PointOutputIteratorType SFCGAL::algorithm::difference (
    const Point_3 & a,
    const Triangle_3 & b,
    PointOutputIteratorType out
) 

function difference

template<typename PointOutputIteratorType>
PointOutputIteratorType SFCGAL::algorithm::difference (
    const Point_3 & a,
    const MarkedPolyhedron & b,
    PointOutputIteratorType out
) 

function difference

template<typename SegmentType, typename SegmentOrSurfaceType, typename SegmentOutputIteratorType>
SegmentOutputIteratorType SFCGAL::algorithm::difference (
    const SegmentType & a,
    const SegmentOrSurfaceType & b,
    SegmentOutputIteratorType out
) 

function difference

template<typename SegmentOutputIteratorType>
SegmentOutputIteratorType SFCGAL::algorithm::difference (
    const Segment_2 & segment,
    const PolygonWH_2 & polygon,
    SegmentOutputIteratorType out
) 

function difference

template<typename OutputIteratorType>
OutputIteratorType SFCGAL::algorithm::difference (
    const Triangle_3 & p,
    const Triangle_3 & q,
    OutputIteratorType out
) 

function difference

template<typename VolumeOutputIteratorType>
VolumeOutputIteratorType SFCGAL::algorithm::difference (
    const MarkedPolyhedron & a,
    const MarkedPolyhedron & b,
    VolumeOutputIteratorType out
) 

function difference

template<typename SegmentOutputIteratorType>
SegmentOutputIteratorType SFCGAL::algorithm::difference (
    const Segment_3 & segment,
    const MarkedPolyhedron & polyhedron,
    SegmentOutputIteratorType out
) 

function difference

template<typename TriangleOutputIteratorType>
TriangleOutputIteratorType SFCGAL::algorithm::difference (
    const Triangle_3 & triangle,
    const MarkedPolyhedron & polyhedron,
    TriangleOutputIteratorType out
) 

function difference

template<typename PolygonOutputIteratorType>
PolygonOutputIteratorType SFCGAL::algorithm::difference (
    const PolygonWH_2 & a,
    const PolygonWH_2 & b,
    PolygonOutputIteratorType out
) 

function difference3D

auto SFCGAL::algorithm::difference3D (
    const Geometry & ga,
    const Geometry & gb,
    NoValidityCheck
) 

Difference on 3D geometries. Assume z = 0 if needed

Precondition:

ga and gb are valid geometries

Warning:

@ No actual validity check is done


function difference3D

auto SFCGAL::algorithm::difference3D (
    const Geometry & ga,
    const Geometry & gb
) 

Difference on 3D geometries. Assume z = 0 if needed

Precondition:

ga and gb are valid geometries


function difference< 2 >

template void SFCGAL::algorithm::difference< 2 > (
    const GeometrySet < 2 > & a,
    const GeometrySet < 2 > & b,
    GeometrySet < 2 > &
) 

function difference< 3 >

template void SFCGAL::algorithm::difference< 3 > (
    const GeometrySet < 3 > & a,
    const GeometrySet < 3 > & b,
    GeometrySet < 3 > &
) 

function dispatch_intersection_sym

template<int Dim>
void SFCGAL::algorithm::dispatch_intersection_sym (
    const PrimitiveHandle < Dim > & pa,
    const PrimitiveHandle < Dim > & pb,
    GeometrySet < Dim > & output
) 

function dispatch_intersects_sym

template<int Dim>
auto SFCGAL::algorithm::dispatch_intersects_sym (
    const PrimitiveHandle < Dim > & pa,
    const PrimitiveHandle < Dim > & pb
) 

function distance

auto SFCGAL::algorithm::distance (
    const Geometry & gA,
    const Geometry & gB,
    NoValidityCheck
) 

Compute the distance between two Geometries

Precondition:

gA is a valid geometry

Precondition:

gB is a valid geometry

Warning:

No actual validity check is done


function distance

auto SFCGAL::algorithm::distance (
    const Geometry & gA,
    const Geometry & gB
) 

Compute the distance between two Geometries

Precondition:

gA is a valid geometry

Precondition:

gB is a valid geometry


function distance3D

auto SFCGAL::algorithm::distance3D (
    const Geometry & gA,
    const Geometry & gB,
    NoValidityCheck
) 

Compute distance between two 3D Geometries

Precondition:

gA is a valid geometry

Precondition:

gB is a valid geometry

Warning:

No actual validity check is done


function distance3D

auto SFCGAL::algorithm::distance3D (
    const Geometry & gA,
    const Geometry & gB
) 

dispatch distance between two Geometries

Todo

complete with solid Compute distance between two 3D Geometries

Precondition:

gA is a valid geometry

Precondition:

gB is a valid geometry


function distanceGeometryCollectionToGeometry

auto SFCGAL::algorithm::distanceGeometryCollectionToGeometry (
    const Geometry & gA,
    const Geometry & gB
) 

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


function distanceGeometryCollectionToGeometry3D

auto SFCGAL::algorithm::distanceGeometryCollectionToGeometry3D (
    const Geometry & gA,
    const Geometry & gB
) 

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


function distanceLineStringGeometry

auto SFCGAL::algorithm::distanceLineStringGeometry (
    const LineString & gA,
    const Geometry & gB
) 

dispatch distance from LineString to Geometry


function distanceLineStringGeometry3D

auto SFCGAL::algorithm::distanceLineStringGeometry3D (
    const LineString & gA,
    const Geometry & gB
) 

dispatch distance between a LineString and a Geometry


function distanceLineStringLineString

auto SFCGAL::algorithm::distanceLineStringLineString (
    const LineString & gA,
    const LineString & gB
) 

distance between two LineStrings


function distanceLineStringLineString3D

auto SFCGAL::algorithm::distanceLineStringLineString3D (
    const LineString & gA,
    const LineString & gB
) 

distance between two LineStrings


function distanceLineStringPolygon

auto SFCGAL::algorithm::distanceLineStringPolygon (
    const LineString & gA,
    const Polygon & gB
) 

distance between a LineString and a Polygon


function distanceLineStringPolygon3D

auto 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)


function distanceLineStringSolid3D

auto SFCGAL::algorithm::distanceLineStringSolid3D (
    const LineString & gA,
    const Solid & gB
) 

distance between a LineString and a Solid


function distanceLineStringTriangle

auto SFCGAL::algorithm::distanceLineStringTriangle (
    const LineString & gA,
    const Triangle & gB
) 

distance between a LineString and a Triangle


function distanceLineStringTriangle3D

auto SFCGAL::algorithm::distanceLineStringTriangle3D (
    const LineString & gA,
    const Triangle & gB
) 

distance between a LineString and a Triangle


function distancePointGeometry

auto SFCGAL::algorithm::distancePointGeometry (
    const Point & gA,
    const Geometry & gB
) 

dispatch distance from Point to Geometry


function distancePointGeometry3D

auto SFCGAL::algorithm::distancePointGeometry3D (
    const Point & gA,
    const Geometry & gB
) 

dispatch distance from Point to Geometry


function distancePointLineString

auto SFCGAL::algorithm::distancePointLineString (
    const Point & gA,
    const LineString & gB
) 

distance between a Point and a LineString


function distancePointLineString3D

auto SFCGAL::algorithm::distancePointLineString3D (
    const Point & gA,
    const LineString & gB
) 

distance between a Point and a LineString


function distancePointPoint

auto SFCGAL::algorithm::distancePointPoint (
    const Point & gA,
    const Point & gB
) 

distance between two Points


function distancePointPoint3D

auto SFCGAL::algorithm::distancePointPoint3D (
    const Point & gA,
    const Point & gB
) 

distance between two Points


function distancePointPolygon

auto SFCGAL::algorithm::distancePointPolygon (
    const Point & gA,
    const Polygon & gB
) 

distance between a Point and a Polygon


function distancePointPolygon3D

auto SFCGAL::algorithm::distancePointPolygon3D (
    const Point & gA,
    const Polygon & gB
) 

distance between a Point and a Triangle


function distancePointSegment

auto SFCGAL::algorithm::distancePointSegment (
    const Point & p,
    const Point & a,
    const Point & b
) 

function distancePointSegment3D

auto SFCGAL::algorithm::distancePointSegment3D (
    const Point & p,
    const Point & a,
    const Point & b
) 

function distancePointSolid3D

auto SFCGAL::algorithm::distancePointSolid3D (
    const Point & gA,
    const Solid & gB
) 

distance between a Point and a Solid


function distancePointTriangle

auto SFCGAL::algorithm::distancePointTriangle (
    const Point & gA,
    const Triangle & gB
) 

distance between a Point and a Triangle


function distancePointTriangle3D

auto SFCGAL::algorithm::distancePointTriangle3D (
    const Point & gA,
    const Triangle & gB
) 

distance between a Point and a Triangle


function distancePointTriangle3D

auto SFCGAL::algorithm::distancePointTriangle3D (
    const Point & p_,
    const Point & a_,
    const Point & b_,
    const Point & c_
) 

function distancePolygonGeometry

auto SFCGAL::algorithm::distancePolygonGeometry (
    const Polygon & gA,
    const Geometry & gB
) 

dispatch distance from Polygon to Geometry


function distancePolygonGeometry3D

auto SFCGAL::algorithm::distancePolygonGeometry3D (
    const Polygon & gA,
    const Geometry & gB
) 

dispatch distance between a Polygon and a Geometry


function distancePolygonPolygon

auto SFCGAL::algorithm::distancePolygonPolygon (
    const Polygon & gA,
    const Polygon & gB
) 

distance between two Polygons


function distancePolygonTriangle

auto SFCGAL::algorithm::distancePolygonTriangle (
    const Polygon & gA,
    const Triangle & gB
) 

distance between a Polygon and a Triangle


function distanceSegmentSegment

auto SFCGAL::algorithm::distanceSegmentSegment (
    const Point & a,
    const Point & b,
    const Point & c,
    const Point & d
) 

function distanceSegmentSegment3D

auto SFCGAL::algorithm::distanceSegmentSegment3D (
    const Point & a,
    const Point & b,
    const Point & c,
    const Point & d
) 

function distanceSegmentTriangle3D

auto SFCGAL::algorithm::distanceSegmentTriangle3D (
    const Point & sA_,
    const Point & sB_,
    const Point & tA_,
    const Point & tB_,
    const Point & tC_
) 

function distanceSolidGeometry3D

auto SFCGAL::algorithm::distanceSolidGeometry3D (
    const Solid & gA,
    const Geometry & gB
) 

dispatch distance between a Solid and a Geometry


function distanceSolidSolid3D

auto SFCGAL::algorithm::distanceSolidSolid3D (
    const Solid & gA,
    const Solid & gB
) 

distance between two Solids


function distanceTriangleGeometry

auto SFCGAL::algorithm::distanceTriangleGeometry (
    const Triangle & gA,
    const Geometry & gB
) 

dispatch distance from a Triangle to a Geometry


function distanceTriangleGeometry3D

auto SFCGAL::algorithm::distanceTriangleGeometry3D (
    const Triangle & gA,
    const Geometry & gB
) 

dispatch distance between a Triangle and a Geometry


function distanceTriangleSolid3D

auto SFCGAL::algorithm::distanceTriangleSolid3D (
    const Triangle & gA,
    const Solid & gB
) 

distance between a Triangle and a Solid


function distanceTriangleTriangle3D

auto SFCGAL::algorithm::distanceTriangleTriangle3D (
    const Triangle & gA,
    const Triangle & gB
) 

distance between two Triangles


function do_intersect

inline bool SFCGAL::algorithm::do_intersect (
    const Point_2 & point,
    const PolygonWH_2 & polygon
) 

function equalLength

template<int Dim>
auto SFCGAL::algorithm::equalLength (
    const GeometrySet < Dim > & a,
    const GeometrySet < Dim > & b,
    int dim
) 

function extrude

auto SFCGAL::algorithm::extrude (
    const Point & g,
    const Kernel::Vector_3 & v
) 

function extrude

auto SFCGAL::algorithm::extrude (
    const LineString & g,
    const Kernel::Vector_3 & v
) 

function extrude

auto SFCGAL::algorithm::extrude (
    const Polygon & g,
    const Kernel::Vector_3 & v,
    bool addTop=true
) 

function extrude

auto SFCGAL::algorithm::extrude (
    const Triangle & g,
    const Kernel::Vector_3 & v
) 

function extrude

auto SFCGAL::algorithm::extrude (
    const MultiPoint & g,
    const Kernel::Vector_3 & v
) 

function extrude

auto SFCGAL::algorithm::extrude (
    const MultiLineString & g,
    const Kernel::Vector_3 & v
) 

function extrude

auto SFCGAL::algorithm::extrude (
    const MultiPolygon & g,
    const Kernel::Vector_3 & v
) 

function extrude

auto SFCGAL::algorithm::extrude (
    const TriangulatedSurface & g,
    const Kernel::Vector_3 & v
) 

Warning:

suppose that the TriangulatedSurface is connected

Todo

take orientation in account


function extrude

auto SFCGAL::algorithm::extrude (
    const PolyhedralSurface & g,
    const Kernel::Vector_3 & v
) 

Warning:

doesn't take orientation in account

Todo

take orientation in account


function extrude

auto SFCGAL::algorithm::extrude (
    const GeometryCollection & g,
    const Kernel::Vector_3 & v
) 

extrude each geometry in a GeometryCollection


function extrude

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

auto SFCGAL::algorithm::extrude (
    const Geometry & g,
    const Kernel::Vector_3 & v
) 

Parameters:

  • g The specified Geometry.
  • v The 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.


function extrude

auto SFCGAL::algorithm::extrude (
    const Geometry & g,
    const Kernel::FT & dx,
    const Kernel::FT & dy,
    const Kernel::FT & dz,
    NoValidityCheck
) 

function extrude

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

auto SFCGAL::algorithm::extrude (
    const Geometry & g,
    const Kernel::FT & dx,
    const Kernel::FT & dy,
    const Kernel::FT & dz
) 

Parameters:

  • g The specified Geometry.
  • dx The component of the specified displacement in the x-direction.
  • dy The component of the specified displacement in the y-direction.
  • dz The 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.

Precondition:

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.


function extrude

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

SFCGAL_API auto SFCGAL::algorithm::extrude (
    const Geometry & g,
    const double & dx,
    const double & dy,
    const double & dz
) 

Parameters:

  • g The specified Geometry.
  • dx The component of the specified displacement in the x-direction.
  • dy The component of the specified displacement in the y-direction.
  • dz The 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.

Precondition:

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.


function extrude

SFCGAL_API auto SFCGAL::algorithm::extrude (
    const Polygon & g,
    const double & height
) 

function extrude

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

SFCGAL_API std::unique_ptr< Geometry > SFCGAL::algorithm::extrude (
    const Geometry & g,
    const Kernel::FT & dx,
    const Kernel::FT & dy,
    const Kernel::FT & dz,
    NoValidityCheck & nvc
) 

Parameters:

  • g The specified Geometry.
  • dx The component of the specified displacement in the x-direction.
  • dy The component of the specified displacement in the y-direction.
  • dz The component of the specified displacement in the z-direction.
  • nvc A NoValidityCheck object.

Returns:

A Geometry equal to g extruded by the displacement vector {dx, dy, dz}.

Precondition:

g must be a valid geometry.

Precondition:

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.


function extrudeStraightSkeleton

auto SFCGAL::algorithm::extrudeStraightSkeleton (
    const Polygon & g,
    double height
) 

function extrudeStraightSkeleton

auto SFCGAL::algorithm::extrudeStraightSkeleton (
    const Geometry & g,
    double height
) 

function extrudeStraightSkeleton

auto SFCGAL::algorithm::extrudeStraightSkeleton (
    const Geometry & g,
    double building_height,
    double roof_height
) 

function extrudedStraightSkeleton

build a 3D straight skeleton extruded for a Polygon __

SFCGAL_API auto SFCGAL::algorithm::extrudedStraightSkeleton (
    const Polygon & g,
    double height
) 

Exception:


function fix_cgal_valid_polygon

template<typename PolygonOutputIteratorType>
PolygonOutputIteratorType SFCGAL::algorithm::fix_cgal_valid_polygon (
    const PolygonWH_2 & p,
    PolygonOutputIteratorType out
) 

function fix_sfs_valid_polygon

inline PolygonWH_2 SFCGAL::algorithm::fix_sfs_valid_polygon (
    const PolygonWH_2 & p
) 

function force2D

force a geometry to be 2D (project on O,x,y)

void SFCGAL::algorithm::force2D (
    Geometry & g
) 

Warning:

ignore empty geometries


function force3D

force a 2D geometry to be 3D (replace undefined Z by defaultZ, existing Z values remains unchanged)

void SFCGAL::algorithm::force3D (
    Geometry & g,
    const Kernel::FT & defaultZ=0
) 

Warning:

ignore empty geometries


function geometryToNef

auto SFCGAL::algorithm::geometryToNef (
    const Geometry & g
) 

function handleLeakTest

void SFCGAL::algorithm::handleLeakTest () 

function hasConsistentOrientation3D

auto SFCGAL::algorithm::hasConsistentOrientation3D (
    const TriangulatedSurface & g
) 

Test if a Geometry has a consistent orientation


function hasConsistentOrientation3D

auto SFCGAL::algorithm::hasConsistentOrientation3D (
    const PolyhedralSurface & g
) 

Test if a PolyhedralSurface has a consistent orientation


function hasPlane3D

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
) 

function hasPlane3D

template<typename Kernel>
bool SFCGAL::algorithm::hasPlane3D (
    const Polygon & polygon
) 

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


function intersection

auto SFCGAL::algorithm::intersection (
    const CGAL::Triangle_3< Kernel > & a,
    const CGAL::Triangle_3< Kernel > & b
) 

function intersection

void SFCGAL::algorithm::intersection (
    const PrimitiveHandle < 3 > & pa,
    const PrimitiveHandle < 3 > & pb,
    GeometrySet < 3 > & output,
    dim_t < 3 >
) 

function intersection

void SFCGAL::algorithm::intersection (
    const PrimitiveHandle < 2 > & pa,
    const PrimitiveHandle < 2 > & pb,
    GeometrySet < 2 > & output,
    dim_t < 2 >
) 

function intersection

template<int Dim>
void SFCGAL::algorithm::intersection (
    const PrimitiveHandle < Dim > & pa,
    const PrimitiveHandle < Dim > & pb,
    GeometrySet < Dim > & output
) 

function intersection

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

function intersection

auto SFCGAL::algorithm::intersection (
    const Geometry & ga,
    const Geometry & gb,
    NoValidityCheck
) 

Intersection on 2D geometries. No validity check variant

Precondition:

ga and gb are valid geometries

Warning:

No actual validity check is done.


function intersection

auto SFCGAL::algorithm::intersection (
    const Geometry & ga,
    const Geometry & gb
) 

Intersection on 2D geometries.

Precondition:

ga and gb are valid geometries


function intersection3D

auto SFCGAL::algorithm::intersection3D (
    const Geometry & ga,
    const Geometry & gb,
    NoValidityCheck
) 

Intersection on 3D geometries. Assume z = 0 if needed

Precondition:

ga and gb are valid geometries

Warning:

@ No actual validity check is done


function intersection3D

auto SFCGAL::algorithm::intersection3D (
    const Geometry & ga,
    const Geometry & gb
) 

Intersection on 3D geometries. Assume z = 0 if needed

Precondition:

ga and gb are valid geometries


function intersection< 2 >

template void SFCGAL::algorithm::intersection< 2 > (
    const PrimitiveHandle < 2 > & a,
    const PrimitiveHandle < 2 > & b,
    GeometrySet < 2 > &
) 

function intersection< 2 >

template void SFCGAL::algorithm::intersection< 2 > (
    const GeometrySet < 2 > & a,
    const GeometrySet < 2 > & b,
    GeometrySet < 2 > &
) 

function intersection< 3 >

template void SFCGAL::algorithm::intersection< 3 > (
    const PrimitiveHandle < 3 > & a,
    const PrimitiveHandle < 3 > & b,
    GeometrySet < 3 > &
) 

function intersection< 3 >

template void SFCGAL::algorithm::intersection< 3 > (
    const GeometrySet < 3 > & a,
    const GeometrySet < 3 > & b,
    GeometrySet < 3 > &
) 

function intersects

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

Intersection test on a PrimitiveHandle


function intersects

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

Intersection test on GeometrySet


function intersects

auto SFCGAL::algorithm::intersects (
    const Geometry & ga,
    const Geometry & gb
) 

Robust intersection test on 2D geometries. Force projection to z=0 if needed

Precondition:

ga and gb are valid geometries


function intersects

auto 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


function intersects

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

Intersection test on GeometrySet


function intersects

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

Intersection test on a PrimitiveHandle


function intersects3D

auto SFCGAL::algorithm::intersects3D (
    const Geometry & ga,
    const Geometry & gb
) 

Robust intersection test on 3D geometries. Assume z = 0 if needed

Precondition:

ga and gb are valid geometries


function intersects3D

auto 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


function intersects< 2 >

template bool SFCGAL::algorithm::intersects< 2 > (
    const GeometrySet < 2 > & a,
    const GeometrySet < 2 > & b
) 

function intersects< 2 >

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

function intersects< 3 >

template bool SFCGAL::algorithm::intersects< 3 > (
    const GeometrySet < 3 > & a,
    const GeometrySet < 3 > & b
) 

function intersects< 3 >

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

function isClosed

auto 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


function isConnected

auto SFCGAL::algorithm::isConnected (
    const SurfaceGraph & graph
) 

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


function isCounterClockWiseOriented

auto SFCGAL::algorithm::isCounterClockWiseOriented (
    const LineString & ls
) 

Test if a 2D surface is oriented counter clockwise


function isCounterClockWiseOriented

auto SFCGAL::algorithm::isCounterClockWiseOriented (
    const Triangle & tri
) 

Test if a 2D surface is oriented counter clockwise


function isCounterClockWiseOriented

auto SFCGAL::algorithm::isCounterClockWiseOriented (
    const Polygon & poly
) 

Test if a 2D surface is oriented counter clockwise


function isHoleOf

inline bool SFCGAL::algorithm::isHoleOf (
    const Polygon_2 & hole,
    const Polygon_2 & poly
) 

function isPlane3D

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


function isValid

auto SFCGAL::algorithm::isValid (
    const Point & p
) 

Note:

empty geometries are valid, but the test is only performed in the interface function in individual functions for implementation, an assertion !empty is present for this reason


function isValid

auto SFCGAL::algorithm::isValid (
    const LineString & l,
    const double & toleranceAbs
) 

function isValid

auto SFCGAL::algorithm::isValid (
    const Polygon & p,
    const double & toleranceAbs
) 

function isValid

auto SFCGAL::algorithm::isValid (
    const Triangle & t,
    const double & toleranceAbs
) 

function isValid

auto SFCGAL::algorithm::isValid (
    const MultiLineString & ml,
    const double & toleranceAbs
) 

function isValid

auto SFCGAL::algorithm::isValid (
    const MultiPolygon & mp,
    const double & toleranceAbs
) 

function isValid

auto SFCGAL::algorithm::isValid (
    const GeometryCollection & gc,
    const double & toleranceAbs
) 

function isValid

auto SFCGAL::algorithm::isValid (
    const TriangulatedSurface & tin,
    const SurfaceGraph & graph,
    const double & toleranceAbs
) 

function isValid

auto SFCGAL::algorithm::isValid (
    const TriangulatedSurface & tin,
    const double & toleranceAbs
) 

function isValid

auto SFCGAL::algorithm::isValid (
    const PolyhedralSurface & s,
    const SurfaceGraph & graph,
    const double & toleranceAbs
) 

function isValid

auto SFCGAL::algorithm::isValid (
    const PolyhedralSurface & s,
    const double & toleranceAbs
) 

function isValid

auto SFCGAL::algorithm::isValid (
    const Solid & solid,
    const double & toleranceAbs
) 

function isValid

auto SFCGAL::algorithm::isValid (
    const MultiSolid & ms,
    const double & toleranceAbs
) 

function isValid

auto SFCGAL::algorithm::isValid (
    const Geometry & g,
    const double & toleranceAbs
) 

function length

auto SFCGAL::algorithm::length (
    const LineString & g
) 

function length

auto SFCGAL::algorithm::length (
    const GeometryCollection & g
) 

function length

auto SFCGAL::algorithm::length (
    const Geometry & g
) 

function length3D

auto SFCGAL::algorithm::length3D (
    const LineString & g
) 

function length3D

auto SFCGAL::algorithm::length3D (
    const GeometryCollection & g
) 

function length3D

Compute the 2D length for a geometry.

auto SFCGAL::algorithm::length3D (
    const Geometry & g
) 

Returns:

the length of the Geometry, 0 for incompatible types


function lineSubstring

Retrieve a substring of a specified LineString , between the specified fractional distances from the start of the specifiedLineString .

auto SFCGAL::algorithm::lineSubstring (
    const LineString & ls,
    double start,
    double end
) 

Parameters:

  • ls The specified LineString.
  • start The fraction along the specified LineString defining the start of the desired substring.
  • end The fraction along the specified LineString defining the end of the desired substring.

Note:

Negative values of and/or will be interpreted as a fractional distance taken from the end of the specified LineString. +/-0 will always be interpreted as the start of .

Note:

For open lines, a negative length range will result in a line substring terminating at the specified points, but with an orientation reversed relative to . For closed lines the a negative range corresponds to the complentary section of with an orientation equal to that of it.

Returns:

The specified line substring.

Exception:

  • If either or have an absolute value greater than 1.

function makeConsistentOrientation3D

void SFCGAL::algorithm::makeConsistentOrientation3D (
    TriangulatedSurface & g
) 

Try to make consistent orientation in a TriangulatedSurface


function makeValidOrientation

void SFCGAL::algorithm::makeValidOrientation (
    CGAL::Polygon_2< Kernel > & polygon
) 

Make valid 2D orientation


function makeValidOrientation

void SFCGAL::algorithm::makeValidOrientation (
    CGAL::Polygon_with_holes_2< Kernel > & polygon
) 

Make valid 2D orientation


function makeValidOrientation

void SFCGAL::algorithm::makeValidOrientation (
    Polygon & polygon
) 

Make valid 2D orientation


function minkowskiSum

void SFCGAL::algorithm::minkowskiSum (
    const Geometry & gA,
    const Polygon_2 & gB,
    CGAL::Polygon_set_2< Kernel > & polygonSet
) 

dispatch gA+gB sum


function minkowskiSum

void SFCGAL::algorithm::minkowskiSum (
    const Point & gA,
    const Polygon_2 & gB,
    Polygon_set_2 & polygonSet
) 

function minkowskiSum

void SFCGAL::algorithm::minkowskiSum (
    const LineString & gA,
    const Polygon_2 & gB,
    Polygon_set_2 & polygonSet
) 

function minkowskiSum

void SFCGAL::algorithm::minkowskiSum (
    const Polygon & gA,
    const Polygon_2 & gB,
    Polygon_set_2 & polygonSet
) 

function minkowskiSum

void SFCGAL::algorithm::minkowskiSum (
    const Solid & gA,
    const Polygon_2 & gB,
    Polygon_set_2 & polygonSet
) 

function minkowskiSum

2D minkowski sum (p+q)

auto SFCGAL::algorithm::minkowskiSum (
    const Geometry & gA,
    const Polygon & gB,
    NoValidityCheck
) 

Warning:

If gA is a polygon, its orientation is taken into account. A "reversed" polygon (with a clockwise-oriented exterior ring) will involve a minkowski difference rather than a sum.

Todo

missing cases (union)

Precondition:

gA and gB are valid geometries

Warning:

@ No actual validity check is done.


function minkowskiSum

2D minkowski sum (p+q)

auto SFCGAL::algorithm::minkowskiSum (
    const Geometry & gA,
    const Polygon & gB
) 

Warning:

If gA is a polygon, its orientation is taken into account. A "reversed" polygon (with a clockwise-oriented exterior ring) will involve a minkowski difference rather than a sum.

Todo

missing cases (union)

Precondition:

gA and gB are valid geometries


function minkowskiSum3D

3D Minkowski sum (p+q)

auto SFCGAL::algorithm::minkowskiSum3D (
    const Geometry & gA,
    const Geometry & gB,
    NoValidityCheck
) 

Precondition:

gA and gB are valid 3D geometries

Warning:

No actual validity check is done.


function minkowskiSum3D

3D Minkowski sum (p+q)

auto SFCGAL::algorithm::minkowskiSum3D (
    const Geometry & gA,
    const Geometry & gB
) 

Precondition:

gA and gB are valid 3D geometries


function minkowskiSumCollection

void SFCGAL::algorithm::minkowskiSumCollection (
    const Geometry & gA,
    const Polygon_2 & gB,
    Polygon_set_2 & polygonSet
) 

function nefToGeometry

auto SFCGAL::algorithm::nefToGeometry (
    const Nef_polyhedron_3 & nef
) 

function normal3D

template<typename Kernel>
CGAL::Vector_3< Kernel > SFCGAL::algorithm::normal3D (
    const CGAL::Point_3< Kernel > & a,
    const CGAL::Point_3< Kernel > & b,
    const CGAL::Point_3< Kernel > & c
) 

Returns the 3D normal to 3 consecutive points.


function normal3D

template<typename Kernel>
CGAL::Vector_3< Kernel > SFCGAL::algorithm::normal3D (
    const LineString & ls,
    bool exact=true
) 

Returns the 3D normal to a ring (supposed to be planar and closed).

Warning:

exact allows to avoid double rounding at the end of the computation


function normal3D

template<typename Kernel>
CGAL::Vector_3< Kernel > SFCGAL::algorithm::normal3D (
    const Polygon & polygon,
    bool exact=true
) 

Returns the 3D normal to a polygon (supposed to be planar).

Warning:

exact allows to avoid double rounding at the end of the computation


function numIntersectionPoints

auto SFCGAL::algorithm::numIntersectionPoints (
    const CGAL::Polygon_with_holes_2< Kernel > & poly
) 

function offset

void SFCGAL::algorithm::offset (
    const Geometry & g,
    const double & radius,
    Offset_polygon_set_2 & polygonSet
) 

function offset

offset for a Point __

void SFCGAL::algorithm::offset (
    const Point & g,
    const double & radius,
    Offset_polygon_set_2 & polygonSet
) 

build Point offset


function offset

offset for a LineString __

void SFCGAL::algorithm::offset (
    const LineString & g,
    const double & radius,
    Offset_polygon_set_2 & polygonSet
) 

build LineString offset


function offset

void SFCGAL::algorithm::offset (
    const Polygon & g,
    const double & radius,
    Offset_polygon_set_2 & polygonSet
) 

function offset

[experimental]compute polygon offset

auto SFCGAL::algorithm::offset (
    const Geometry & g,
    const double & r,
    NoValidityCheck
) 

Warning:

test in order to compare with minkowski sum

Precondition:

g is a valid Geometry

Warning:

No actual validity check is done.


function offset

[experimental]compute polygon offset

auto SFCGAL::algorithm::offset (
    const Geometry & g,
    const double & r
) 

Warning:

test in order to compare with minkowski sum

Precondition:

g is a valid Geometry


function offsetCollection

void SFCGAL::algorithm::offsetCollection (
    const Geometry & g,
    const double & radius,
    Offset_polygon_set_2 & polygonSet
) 

function operator<<

template<typename T>
auto SFCGAL::algorithm::operator<< (
    std::ostream & out,
    std::set< T * > & obs
) 

function optimal_alpha_shapes

auto SFCGAL::algorithm::optimal_alpha_shapes (
    const Geometry & g,
    bool allow_holes=false,
    size_t nb_components=1
) 

Compute the optimal 2D alpha shapes for a geometry https://doc.cgal.org/latest/Alpha_shapes_2/index.html#Chapter_2D_Alpha_Shapes

Since:

1.4.1


function partition_2

auto SFCGAL::algorithm::partition_2 (
    const Geometry & g,
    PartitionAlgorithm alg=y_monotone
) 

Compute the partition of a 2D polygon https://doc.cgal.org/latest/Partition_2/index.html#Chapter_2D_Polygon_Partitioning

Since:

1.4.2


function perpendicular_vector

auto SFCGAL::algorithm::perpendicular_vector (
    const Kernel::Vector_3 & v
) 

function plane3D

template<typename Kernel>
void SFCGAL::algorithm::plane3D (
    const Polygon & polygon,
    CGAL::Point_3< Kernel > & a,
    CGAL::Point_3< Kernel > & b,
    CGAL::Point_3< Kernel > & c
) 

Get 3 non collinear points from a Polygon


function plane3D

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.


function plane3D

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.

Warning:

result is rounded to double (avoid huge expression tree).


function plane3D

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

Returns the oriented 3D plane of a polygon (supposed to be planar). This is legacy code for SFCGAL users and should be deprecated.

Warning:

result is rounded to double if exact is false (avoid huge expression tree).

Warning:

Will divide by zero if polygon is degenerate. This maintains the previous behaviour.


function polygonSetToMultiPolygon

auto SFCGAL::algorithm::polygonSetToMultiPolygon (
    const Offset_polygon_set_2 & polygonSet,
    const int & n
) 

function post_difference

void SFCGAL::algorithm::post_difference (
    const GeometrySet < 2 > & input,
    GeometrySet < 2 > & output
) 

difference post processing


function post_difference

void SFCGAL::algorithm::post_difference (
    const GeometrySet < 3 > & input,
    GeometrySet < 3 > & output
) 

function post_intersection

void SFCGAL::algorithm::post_intersection (
    const GeometrySet < 2 > & input,
    GeometrySet < 2 > & output
) 

intersection post processing


function post_intersection

void SFCGAL::algorithm::post_intersection (
    const GeometrySet < 3 > & input,
    GeometrySet < 3 > & output
) 

function propagateValidityFlag

void SFCGAL::algorithm::propagateValidityFlag (
    Geometry & g,
    bool valid
) 

Sets the geometry flag on a geometry and propagate to every internal geometries


function rotate

Rotate a geometry in 2D around the origin (0,0)

void SFCGAL::algorithm::rotate (
    Geometry & g,
    const Kernel::FT & angle
) 

Parameters:

  • g The geometry to rotate
  • angle Rotation angle in radians

function rotate

Rotate a geometry in 2D around a specified point.

void SFCGAL::algorithm::rotate (
    Geometry & g,
    const Kernel::FT & angle,
    const Point & origin
) 

Parameters:

  • g The geometry to rotate
  • angle Rotation angle in radians
  • origin Point of origin for the rotation

function rotate

Rotate a geometry in 3D around a specified axis and origin.

void SFCGAL::algorithm::rotate (
    Geometry & g,
    const Kernel::FT & angle,
    const Kernel::Vector_3 & axis,
    const Point & origin=Point (0, 0, 0)
) 

Parameters:

  • g The geometry to rotate
  • angle Rotation angle in radians
  • axis The axis of rotation
  • origin Point of origin for the rotation

function rotateX

Rotate a geometry around the X axis.

void SFCGAL::algorithm::rotateX (
    Geometry & g,
    const Kernel::FT & angle
) 

Parameters:

  • g The geometry to rotate
  • angle Rotation angle in radians

function rotateY

Rotate a geometry around the Y axis.

void SFCGAL::algorithm::rotateY (
    Geometry & g,
    const Kernel::FT & angle
) 

Parameters:

  • g The geometry to rotate
  • angle Rotation angle in radians

function rotateZ

Rotate a geometry around the Z axis.

void SFCGAL::algorithm::rotateZ (
    Geometry & g,
    const Kernel::FT & angle
) 

Parameters:

  • g The geometry to rotate
  • angle Rotation angle in radians

function scale

void SFCGAL::algorithm::scale (
    Geometry & g,
    double s
) 

Scale a geometry by a given factor

Parameters:

  • g input geometry
  • s scale factor

function scale

void SFCGAL::algorithm::scale (
    Geometry & g,
    double sx,
    double sy,
    double sz=0.0
) 

Scale a geometry by different factors for each dimension

Parameters:

  • g input geometry
  • sx scale factor for x dimension
  • sy scale factor for y dimension
  • sz scale factor for z dimension

function scale

void SFCGAL::algorithm::scale (
    Geometry & g,
    double sx,
    double sy,
    double sz,
    double cx,
    double cy,
    double cz
) 

Scale a geometry by different factors for each dimension around a center point

Parameters:

  • g input geometry
  • sx scale factor for x dimension
  • sy scale factor for y dimension
  • sz scale factor for z dimension
  • cx x-coordinate of the center point
  • cy y-coordinate of the center point
  • cz z-coordinate of the center point

function segmentsLength

template<int Dim>
auto SFCGAL::algorithm::segmentsLength (
    const GeometrySet < Dim > & gs
) 

function selfIntersects

auto SFCGAL::algorithm::selfIntersects (
    const LineString & l
) 

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


function selfIntersects

auto SFCGAL::algorithm::selfIntersects (
    const PolyhedralSurface & s,
    const SurfaceGraph & g
) 

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


function selfIntersects

auto SFCGAL::algorithm::selfIntersects (
    const TriangulatedSurface & s,
    const SurfaceGraph & g
) 

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


function selfIntersects3D

auto SFCGAL::algorithm::selfIntersects3D (
    const LineString & l
) 

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


function selfIntersects3D

auto SFCGAL::algorithm::selfIntersects3D (
    const PolyhedralSurface & s,
    const SurfaceGraph & g
) 

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


function selfIntersects3D

auto SFCGAL::algorithm::selfIntersects3D (
    const TriangulatedSurface & s,
    const SurfaceGraph & g
) 

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


function selfIntersectsImpl

template<int Dim>
auto SFCGAL::algorithm::selfIntersectsImpl (
    const LineString & line
) 

function selfIntersectsImpl

template<int Dim>
auto SFCGAL::algorithm::selfIntersectsImpl (
    const PolyhedralSurface & s,
    const SurfaceGraph & graph
) 

function selfIntersectsImpl

template<int Dim>
auto SFCGAL::algorithm::selfIntersectsImpl (
    const TriangulatedSurface & tin,
    const SurfaceGraph & graph
) 

function signedArea

auto SFCGAL::algorithm::signedArea (
    const Triangle & g
) 

function signedArea

auto SFCGAL::algorithm::signedArea (
    const LineString & g
) 

function solidsVolume

auto SFCGAL::algorithm::solidsVolume (
    const GeometrySet < 3 > & gs,
    bool planarSurface=false
) 

function solidsVolume

auto SFCGAL::algorithm::solidsVolume (
    const GeometrySet < 2 > &
) 

function squaredDistancePointTriangle3D

auto SFCGAL::algorithm::squaredDistancePointTriangle3D (
    const Point_3 & p,
    const Triangle_3 & abc
) 

function squaredDistanceSegmentTriangle3D

auto SFCGAL::algorithm::squaredDistanceSegmentTriangle3D (
    const Segment_3 & sAB,
    const Triangle_3 & tABC
) 

function squaredDistanceTriangleTriangle3D

auto SFCGAL::algorithm::squaredDistanceTriangleTriangle3D (
    const Triangle_3 & triangleA,
    const Triangle_3 & triangleB
) 

function straightSkeleton

build a 2D straight skeleton for a Polygon __

auto SFCGAL::algorithm::straightSkeleton (
    const Geometry & g,
    bool autoOrientation,
    NoValidityCheck,
    bool innerOnly=false,
    bool outputDistanceInM=false,
    const double & toleranceAbs=1e-8
) 

Parameters:

  • g input geometry
  • autoOrientation check and fix polygon orientation
  • outputM whether to output the distance to border as M
  • toleranceAbs Distance tolerance between returned points. A line must have a maximum distance of toleranceAbs.

Precondition:

g is a valid geometry

Warning:

No actual validity check is done

Exception:


function straightSkeleton

build a 2D straight skeleton for a Polygon __

auto SFCGAL::algorithm::straightSkeleton (
    const Geometry & g,
    bool autoOrientation=true,
    bool innerOnly=false,
    bool outputDistanceInM=false,
    const double & toleranceAbs=1e-8
) 

Todo

add supports for TriangulatedSurface and PolyhedralSurface

Parameters:

  • g input geometry
  • autoOrientation check and fix polygon orientation
  • outputM whether to output the distance to border as M
  • toleranceAbs Distance tolerance between returned points. A line must have a maximum distance of toleranceAbs.

Precondition:

g is a valid geometry

Exception:


function straightSkeleton

build a 2D straight skeleton for a Polygon __

auto SFCGAL::algorithm::straightSkeleton (
    const Polygon & g,
    bool autoOrientation=true,
    bool innerOnly=false,
    bool outputDistanceInM=false,
    const double & toleranceAbs=1e-8
) 

Exception:


function straightSkeleton

build a 2D straight skeleton for a Polygon __

auto SFCGAL::algorithm::straightSkeleton (
    const MultiPolygon & g,
    bool autoOrientation=true,
    bool innerOnly=false,
    bool outputDistanceInM=false,
    const double & toleranceAbs=1e-8
) 

Exception:


function straightSkeletonPartition

Build a 2D straight skeleton partition for a Geometry .

auto SFCGAL::algorithm::straightSkeletonPartition (
    const Geometry & g,
    bool autoOrientation=true
) 

Parameters:

  • g The input geometry
  • autoOrientation Check and fix polygon orientation

Returns:

A unique pointer to a MultiPolygon representing the partitioned geometry

Exception:

  • Exception If CGAL fails to create the straight skeleton

Note:

Only Triangle, Polygon, and MultiPolygon geometries are supported

This function creates a partition of the input geometry based on its straight skeleton. For unsupported geometry types, an empty MultiPolygon is returned.


function straightSkeletonPartition

Build a 2D straight skeleton partition for a MultiPolygon .

auto SFCGAL::algorithm::straightSkeletonPartition (
    const MultiPolygon & g,
    bool autoOrientation=true
) 

Parameters:

  • g The input multi-polygon
  • autoOrientation Check 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.


function straightSkeletonPartition

Build a 2D straight skeleton partition for a Polygon .

auto SFCGAL::algorithm::straightSkeletonPartition (
    const Polygon & g,
    bool autoOrientation=true
) 

Parameters:

  • g The input polygon
  • autoOrientation Check and fix polygon orientation (not used in this implementation)

Returns:

A unique pointer to a MultiPolygon representing the partitioned polygon

Exception:

  • Exception If 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.


function surfacesArea

auto SFCGAL::algorithm::surfacesArea (
    const GeometrySet < 2 > & gs
) 

function surfacesArea

auto SFCGAL::algorithm::surfacesArea (
    const GeometrySet < 3 > & gs
) 

function tesselate

auto SFCGAL::algorithm::tesselate (
    const Geometry & g,
    NoValidityCheck
) 

Tesselate a geometry: this will triangulate surfaces (including polyhedral and solid's surfaces) and keep untouched points, lines, etc.

Precondition:

g is a valid geometry

Warning:

No actual validity check is done.


function tesselate

auto SFCGAL::algorithm::tesselate (
    const Geometry & g
) 

Tesselate a geometry: this will triangulate surfaces (including polyhedral and solid's surfaces) and keep untouched points, lines, etc.

Precondition:

g is a valid geometry


function translate

void SFCGAL::algorithm::translate (
    Geometry & g,
    const Kernel::Vector_3 & v
) 

function translate

void SFCGAL::algorithm::translate (
    Geometry & g,
    const Kernel::Vector_2 & v
) 

function translate

void SFCGAL::algorithm::translate (
    Geometry & g,
    const Kernel::FT & dx,
    const Kernel::FT & dy,
    const Kernel::FT & dz
) 

function translate

void SFCGAL::algorithm::translate (
    Geometry & g,
    const double & dx,
    const double & dy,
    const double & dz
) 

function union3D

auto SFCGAL::algorithm::union3D (
    const Geometry & ga,
    const Geometry & gb,
    NoValidityCheck
) 

Union on 3D geometries. Assume z = 0 if needed

Precondition:

ga and gb are valid geometries

Warning:

@ No actual validity check is done


function union3D

auto SFCGAL::algorithm::union3D (
    const Geometry & ga,
    const Geometry & gb
) 

Union on 3D geometries. Assume z = 0 if needed

Precondition:

ga and gb are valid geometries


function union_

auto SFCGAL::algorithm::union_ (
    const Geometry & ga,
    const Geometry & gb,
    NoValidityCheck
) 

Union on 2D geometries. No validity check variant

Precondition:

ga and gb are valid geometries

Warning:

No actual validity check is done.


function union_

auto SFCGAL::algorithm::union_ (
    const Geometry & ga,
    const Geometry & gb
) 

Union on 2D geometries.

Precondition:

ga and gb are valid geometries


function union_

template<int Dim>
void SFCGAL::algorithm::union_ (
    const detail::GeometrySet < Dim > & a,
    const detail::GeometrySet < Dim > & b,
    detail::GeometrySet < Dim > &
) 

function union_

template<int Dim>
void SFCGAL::algorithm::union_ (
    const detail::PrimitiveHandle < Dim > & a,
    const detail::PrimitiveHandle < Dim > & b,
    detail::GeometrySet < Dim > &
) 

function union_point_point

template<class Handle>
void SFCGAL::algorithm::union_point_point (
    Handle a,
    Handle b
) 

function union_point_segment

template<class Handle>
void SFCGAL::algorithm::union_point_segment (
    Handle a,
    Handle b
) 

function union_point_surface

void SFCGAL::algorithm::union_point_surface (
    Handle < 2 > a,
    Handle < 2 > b
) 

function union_point_surface

void SFCGAL::algorithm::union_point_surface (
    Handle < 3 > a,
    Handle < 3 > b
) 

function union_point_volume

void SFCGAL::algorithm::union_point_volume (
    const Handle < 2 > &,
    const Handle < 2 > &
) 

function union_point_volume

void SFCGAL::algorithm::union_point_volume (
    Handle < 3 > a,
    Handle < 3 > b
) 

function union_segment_segment

template<int Dim>
void SFCGAL::algorithm::union_segment_segment (
    Handle < Dim > a,
    Handle < Dim > b
) 

function union_segment_segment

void SFCGAL::algorithm::union_segment_segment (
    const Handle < 2 > & a,
    const Handle < 2 > & b
) 

function union_segment_segment

void SFCGAL::algorithm::union_segment_segment (
    const Handle < 3 > & a,
    const Handle < 3 > & b
) 

function union_segment_surface

void SFCGAL::algorithm::union_segment_surface (
    Handle < 2 > a,
    Handle < 2 > b
) 

function union_segment_surface

void SFCGAL::algorithm::union_segment_surface (
    Handle < 3 > a,
    Handle < 3 > b
) 

function union_segment_volume

void SFCGAL::algorithm::union_segment_volume (
    const Handle < 2 > &,
    const Handle < 2 > &
) 

function union_segment_volume

void SFCGAL::algorithm::union_segment_volume (
    Handle < 3 > a,
    Handle < 3 > b
) 

function union_surface_surface

void SFCGAL::algorithm::union_surface_surface (
    Handle < 2 > a,
    Handle < 2 > b
) 

function union_surface_surface

void SFCGAL::algorithm::union_surface_surface (
    Handle < 3 > a,
    Handle < 3 > b
) 

function union_surface_volume

void SFCGAL::algorithm::union_surface_volume (
    const Handle < 2 > &,
    const Handle < 2 > &
) 

function union_surface_volume

void SFCGAL::algorithm::union_surface_volume (
    Handle < 3 > a,
    Handle < 3 > b
) 

function union_volume_volume

void SFCGAL::algorithm::union_volume_volume (
    const Handle < 2 > &,
    const Handle < 2 > &
) 

function union_volume_volume

void SFCGAL::algorithm::union_volume_volume (
    Handle < 3 > a,
    Handle < 3 > b
) 

function visibility

build the visibility polygon of a Point inside aPolygon __

auto SFCGAL::algorithm::visibility (
    const Geometry & polygon,
    const Geometry & point
) 

Parameters:

  • polygon input geometry
  • point input geometry

Precondition:

polygon is a valid geometry

Precondition:

point must be inside polygon or on the boundary


function visibility

build the visibility polygon of a Point inside aPolygon __

auto SFCGAL::algorithm::visibility (
    const Geometry & polygon,
    const Geometry & point,
    NoValidityCheck
) 

Parameters:

  • polygon input geometry
  • point input geometry

Precondition:

polygon is a valid geometry

Precondition:

point must be inside polygon or on the boundary

Warning:

No actual validity check is done


function visibility

build the visibility polygon of the segment [pointA ; pointB] on a Polygon __

auto SFCGAL::algorithm::visibility (
    const Geometry & polygon,
    const Geometry & pointA,
    const Geometry & pointB
) 

Parameters:

  • polygon input geometry
  • pointA input geometry
  • pointB input geometry

Precondition:

polygon is a valid geometry

Precondition:

pointA and pointB must be vertices of poly, adjacents and respect the direction


function visibility

build the visibility polygon of a Point inside aPolygon __

auto SFCGAL::algorithm::visibility (
    const Geometry & polygon,
    const Geometry & pointA,
    const Geometry & pointB,
    NoValidityCheck
) 

Parameters:

  • polygon input geometry
  • pointA input geometry
  • pointB input geometry

Precondition:

polygon is a valid geometry

Warning:

No actual validity check is done

Precondition:

pointA and pointB must be vertices of poly, adjacents and respect the direction


function volume

auto SFCGAL::algorithm::volume (
    const Solid & g,
    NoValidityCheck
) 

Computes the volume of a Solid

Precondition:

(not checked) volume is closed and consistently oriented


function volume

auto SFCGAL::algorithm::volume (
    const Geometry & g
) 

Computes the volume of a geometry

Precondition:

g is a valid Geometry


Public Static Functions Documentation

function alpha_to_geometry

static auto SFCGAL::algorithm::alpha_to_geometry (
    const Alpha_shape_2 & A,
    bool allow_holes
) 

function computeAlpha

static auto SFCGAL::algorithm::computeAlpha (
    const Geometry & g,
    Alpha_shape_2 & alphaShape,
    double alpha=0,
    size_t nb_components=1
) 

function polygons_to_geometry

static auto SFCGAL::algorithm::polygons_to_geometry (
    const std::list< TPolygon_2 > & polys
) 

function query_visibility

static auto SFCGAL::algorithm::query_visibility (
    Face_handle fh,
    Halfedge_const_handle he
) 

function toTPolygon_2

static auto SFCGAL::algorithm::toTPolygon_2 (
    const Polygon & poly
) 


The documentation for this class was generated from the following file /builds/sfcgal/SFCGAL/src/algorithm/alphaShapes.cpp