SFCGAL
Classes | Typedefs | Enumerations | Functions
SFCGAL::algorithm Namespace Reference

Classes

class  BoundaryVisitor
 Compute the boundary for a Geometry. More...
 
struct  Circle
 
struct  CollisionMapper
 
class  ConsistentOrientationBuilder
 Make orientation consistent in a triangle set. More...
 
struct  EmptyPrimitive
 
struct  FaceBbox
 
struct  FaceSegmentCollide
 
struct  found_an_intersection
 
class  Handle
 
struct  HandledBox
 
struct  intersection_cb
 
struct  intersects_cb
 
struct  intersects_volume_x
 
struct  Is_not_marked
 
struct  LoopDetector
 
struct  Nearer
 
struct  NoValidityCheck
 Tag used for variants of algorithm that do not do validity check. More...
 
struct  Plane3DInexactUnsafe
 
struct  Segment_d
 
struct  Sphere
 
struct  Surface_d
 
struct  Surface_d< 2 >
 
struct  Surface_d< 3 >
 
class  SurfaceGraph
 Represents a polyhedral surface as a graph where faces are nodes and egde are graph edges. More...
 
struct  UnionOnBoxCollision
 

Typedefs

using Vb = CGAL::Alpha_shape_vertex_base_2< Kernel >
 
using Fb = CGAL::Alpha_shape_face_base_2< Kernel >
 
using Tds = CGAL::Triangulation_data_structure_2< Vb, Fb >
 
using Triangulation_2 = CGAL::Delaunay_triangulation_2< Kernel, Tds >
 
using Point_2 = CGAL::Point_2< Kernel >
 
using Segment_2 = CGAL::Segment_2< Kernel >
 
using Alpha_shape_2 = CGAL::Alpha_shape_2< Triangulation_2 >
 
using Alpha_shape_edges_iterator = Alpha_shape_2::Alpha_shape_edges_iterator
 
using Traits_2 = CGAL::Arr_non_caching_segment_basic_traits_2< Kernel >
 
using Arrangement = CGAL::Arrangement_2< Traits_2 >
 
using Triangle_2 = CGAL::Triangle_2< SFCGAL::Kernel >
 
using Polygon_2 = CGAL::Polygon_2< SFCGAL::Kernel >
 
using Point_3 = CGAL::Point_3< SFCGAL::Kernel >
 
using Triangle_3 = CGAL::Triangle_3< SFCGAL::Kernel >
 
using Plane_3 = CGAL::Plane_3< SFCGAL::Kernel >
 
using Segment_3 = CGAL::Segment_3< Kernel >
 
using Polyhedron_3 = CGAL::Polyhedron_3< Kernel >
 
typedef CGAL::Vector_2< KernelVector_2
 
typedef CGAL::Polygon_with_holes_2< KernelPolygonWH_2
 
typedef detail::NoVolume NoVolume
 
typedef CGAL::Vector_3< KernelVector_3
 
typedef detail::MarkedPolyhedron MarkedPolyhedron
 
typedef CGAL::Box_intersection_d::Box_with_handle_d< double, 3, MarkedPolyhedron::Halfedge_around_facet_const_circulator > FaceBboxBase
 
using Polyline_3 = std::vector< Kernel::Point_3 >
 
using Polygon_with_holes_2 = CGAL::Polygon_with_holes_2< Kernel >
 
using Straight_skeleton_2 = CGAL::Straight_skeleton_2< Kernel >
 

Enumerations

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

Functions

template<class OutputIterator >
void alpha_edges (const Alpha_shape_2 &A, OutputIterator out)
 
static auto computeAlpha (const Geometry &g, Alpha_shape_2 &alphaShape, double alpha=0, size_t nb_components=1) -> double
 
static auto alpha_to_geometry (const Alpha_shape_2 &A, bool allow_holes) -> std::unique_ptr< Geometry >
 
auto optimal_alpha_shapes (const Geometry &g, bool allow_holes=false, size_t nb_components=1) -> std::unique_ptr< Geometry >
 Compute the optimal 2D alpha shapes for a geometry https://doc.cgal.org/latest/Alpha_shapes_2/index.html#Chapter_2D_Alpha_Shapes. More...
 
auto alphaShapes (const Geometry &g, double alpha=1, bool allow_holes=false) -> std::unique_ptr< Geometry >
 Compute the 2D alpha shapes for a geometry https://doc.cgal.org/latest/Alpha_shapes_2/index.html#Chapter_2D_Alpha_Shapes. More...
 
auto area (const Geometry &g, NoValidityCheck)
 Compute the 2D area for a Geometry. More...
 
auto area (const Geometry &g)
 Compute the 2D area for a Geometry. More...
 
auto signedArea (const Triangle &g)
 Compute the 2D signed area for a Triangle. More...
 
auto signedArea (const LineString &g)
 Compute the 2D signed area for a closed LineString. More...
 
auto area (const Triangle &g)
 Returns Compute the 2D area for a Triangle. More...
 
auto area (const Polygon &g)
 Returns Compute the 2D area for a Polygon. More...
 
auto area (const GeometryCollection &g)
 Returns the 2D area for a GeometryCollection. More...
 
auto area (const TriangulatedSurface &g)
 Returns the 2D area for a TriangulatedSurface. More...
 
auto area (const PolyhedralSurface &g)
 Returns the 2D area for a TriangulatedSurface. More...
 
auto area3D (const Geometry &g, NoValidityCheck)
 Returns 3D area for a Geometry. More...
 
auto area3D (const Geometry &g)
 Returns 3D area for a Geometry. More...
 
auto area3D (const Polygon &g)
 Returns 3D area for a Polygon. More...
 
auto area3D (const Triangle &g)
 Returns the 3D area for a Triangle. More...
 
auto area3D (const GeometryCollection &g)
 Returns the 3D area for a MultiPolygon. More...
 
auto area3D (const PolyhedralSurface &g)
 Returns the 3D area for a PolyhedralSurface. More...
 
auto area3D (const TriangulatedSurface &g)
 Returns the 3D area for a TriangulatedSurface. More...
 
auto collect (const Geometry &ga, const Geometry &gb)
 Returns an aggregate of ga and gb. More...
 
template<typename GeometryIterator >
std::unique_ptr< Geometrycollect (GeometryIterator begin, GeometryIterator end)
 Returns an aggregate of a list of geometries. More...
 
auto collectionExtractPolygons (std::unique_ptr< Geometry > g) -> std::unique_ptr< Geometry >
 
auto collectionHomogenize (std::unique_ptr< Geometry > coll)
 Given a geometry collection, returns the "simplest" representation of the contents. More...
 
auto collectionToMulti (std::unique_ptr< Geometry > coll)
 Given a geometry collection of triangles, TINs and polygons returns a MultiPolygon. More...
 
auto isConnected (const SurfaceGraph &graph)
 test if a surface is connected, the graph should be build beforehand More...
 
auto isClosed (const SurfaceGraph &graph)
 test if a surface is closed, the graph should be build beforehand More...
 
auto convexHull (const Geometry &g)
 Compute the 2D convex hull for a geometry. More...
 
auto convexHull3D (const Geometry &g)
 Compute the 3D convex hull for a geometry. More...
 
auto covers (const PrimitiveHandle< 3 > &, const PrimitiveHandle< 3 > &) -> bool
 
template<int Dim>
auto segmentsLength (const GeometrySet< Dim > &gs) -> double
 
auto solidsVolume (const GeometrySet< 3 > &gs, bool planarSurface=false) -> double
 
auto surfacesArea (const GeometrySet< 2 > &gs) -> double
 
auto surfacesArea (const GeometrySet< 3 > &gs) -> double
 
auto solidsVolume (const GeometrySet< 2 > &) -> double
 
template<int Dim>
auto equalLength (const GeometrySet< Dim > &a, const GeometrySet< Dim > &b, int dim) -> bool
 
template<int Dim>
auto covers (const GeometrySet< Dim > &a, const GeometrySet< Dim > &b) -> bool
 @ More...
 
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 covers (const Geometry &ga, const Geometry &gb)
 Cover test on 2D geometries. More...
 
auto covers3D (const Geometry &ga, const Geometry &gb)
 Cover test on 3D geometries. More...
 
template<int Dim>
bool covers (const detail::GeometrySet< Dim > &a, const detail::GeometrySet< Dim > &b)
 @ More...
 
template<int Dim>
bool covers (const detail::PrimitiveHandle< Dim > &a, const detail::PrimitiveHandle< Dim > &b)
 @ More...
 
template<typename OutputIteratorType >
auto difference (const Point_2 &primitive, const PrimitiveHandle< 2 > &pb, OutputIteratorType out) -> OutputIteratorType
 
template<typename OutputIteratorType >
auto difference (const Segment_2 &primitive, const PrimitiveHandle< 2 > &pb, OutputIteratorType out) -> OutputIteratorType
 
template<typename OutputIteratorType >
auto difference (const PolygonWH_2 &primitive, const PrimitiveHandle< 2 > &pb, OutputIteratorType out) -> OutputIteratorType
 
template<typename OutputIteratorType >
auto difference (const Point_3 &primitive, const PrimitiveHandle< 3 > &pb, OutputIteratorType out) -> OutputIteratorType
 
template<typename OutputIteratorType >
auto difference (const Segment_3 &primitive, const PrimitiveHandle< 3 > &pb, OutputIteratorType out) -> OutputIteratorType
 
template<typename OutputIteratorType >
auto difference (const Triangle_3 &primitive, const PrimitiveHandle< 3 > &pb, OutputIteratorType out) -> OutputIteratorType
 
template<typename OutputIteratorType >
auto difference (const MarkedPolyhedron &primitive, const PrimitiveHandle< 3 > &pb, OutputIteratorType out) -> OutputIteratorType
 
template<typename Primitive , typename PrimitiveHandleConstIterator >
auto difference (const Primitive &primitive, PrimitiveHandleConstIterator begin, PrimitiveHandleConstIterator end) -> std::vector< Primitive >
 
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)
 
void post_difference (const GeometrySet< 2 > &input, GeometrySet< 2 > &output)
 difference post processing More...
 
void post_difference (const GeometrySet< 3 > &input, GeometrySet< 3 > &output)
 
template<int Dim>
void difference (const detail::GeometrySet< Dim > &a, const detail::GeometrySet< Dim > &b, detail::GeometrySet< Dim > &)
 
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 > &)
 
auto difference (const Geometry &ga, const Geometry &gb, NoValidityCheck)
 Diffrence on 2D geometries. More...
 
auto difference (const Geometry &ga, const Geometry &gb)
 Difference on 2D geometries. More...
 
auto difference3D (const Geometry &ga, const Geometry &gb, NoValidityCheck)
 Difference on 3D geometries. More...
 
auto difference3D (const Geometry &ga, const Geometry &gb)
 Difference on 3D geometries. More...
 
auto intersection (const CGAL::Triangle_3< Kernel > &a, const CGAL::Triangle_3< Kernel > &b) -> CGAL::Object
 
bool do_intersect (const Point_2 &point, const PolygonWH_2 &polygon)
 
template<typename PointOutputIteratorType >
PointOutputIteratorType difference (const Point_2 &a, const Point_2 &b, PointOutputIteratorType out)
 
template<typename PointOutputIteratorType >
PointOutputIteratorType difference (const Point_2 &a, const Segment_2 &b, PointOutputIteratorType out)
 
template<typename PointOutputIteratorType >
PointOutputIteratorType difference (const Point_2 &a, const PolygonWH_2 &b, PointOutputIteratorType out)
 
template<typename PointOutputIteratorType >
PointOutputIteratorType difference (const Point_2 &, const NoVolume &, PointOutputIteratorType out)
 
template<typename SegmentOutputIteratorType >
SegmentOutputIteratorType difference (const Segment_2 &, const NoVolume &, SegmentOutputIteratorType out)
 
template<typename SurfaceOutputIteratorType >
SurfaceOutputIteratorType difference (const PolygonWH_2 &, const NoVolume &, SurfaceOutputIteratorType out)
 
template<typename PointOutputIteratorType >
PointOutputIteratorType difference (const Point_3 &a, const Point_3 &b, PointOutputIteratorType out)
 
template<typename PointOutputIteratorType >
PointOutputIteratorType difference (const Point_3 &a, const Segment_3 &b, PointOutputIteratorType out)
 
template<typename PointOutputIteratorType >
PointOutputIteratorType difference (const Point_3 &a, const Triangle_3 &b, PointOutputIteratorType out)
 
template<typename PointOutputIteratorType >
PointOutputIteratorType difference (const Point_3 &a, const MarkedPolyhedron &b, PointOutputIteratorType out)
 
template<typename SegmentType , typename SegmentOrSurfaceType , typename SegmentOutputIteratorType >
SegmentOutputIteratorType difference (const SegmentType &a, const SegmentOrSurfaceType &b, SegmentOutputIteratorType out)
 
template<typename SegmentOutputIteratorType >
SegmentOutputIteratorType difference (const Segment_2 &segment, const PolygonWH_2 &polygon, SegmentOutputIteratorType out)
 
bool isHoleOf (const Polygon_2 &hole, const Polygon_2 &poly)
 
template<typename PolygonOutputIteratorType >
PolygonOutputIteratorType fix_cgal_valid_polygon (const PolygonWH_2 &p, PolygonOutputIteratorType out)
 
PolygonWH_2 fix_sfs_valid_polygon (const PolygonWH_2 &p)
 
template<typename OutputIteratorType >
OutputIteratorType difference (const Triangle_3 &p, const Triangle_3 &q, OutputIteratorType out)
 
template<typename VolumeOutputIteratorType >
VolumeOutputIteratorType difference (const MarkedPolyhedron &a, const MarkedPolyhedron &b, VolumeOutputIteratorType out)
 
template<typename TriangleOutputIteratorType >
TriangleOutputIteratorType collidingTriangles (const FaceSegmentCollide::CollisionVector &collisions, TriangleOutputIteratorType out)
 
template<typename SegmentOutputIteratorType >
SegmentOutputIteratorType difference (const Segment_3 &segment, const MarkedPolyhedron &polyhedron, SegmentOutputIteratorType out)
 
void _intersection_solid_triangle (const MarkedPolyhedron &pa, const Triangle_3 &tri, detail::GeometrySet< 3 > &output)
 
template<typename TriangleOutputIteratorType >
TriangleOutputIteratorType difference (const Triangle_3 &triangle, const MarkedPolyhedron &polyhedron, TriangleOutputIteratorType out)
 
template<typename PolygonOutputIteratorType >
PolygonOutputIteratorType difference (const PolygonWH_2 &a, const PolygonWH_2 &b, PolygonOutputIteratorType out)
 
auto distance (const Geometry &gA, const Geometry &gB, NoValidityCheck)
 Compute the distance between two Geometries. More...
 
auto distance (const Geometry &gA, const Geometry &gB)
 Compute the distance between two Geometries. More...
 
auto distancePointGeometry (const Point &gA, const Geometry &gB)
 dispatch distance from Point to Geometry More...
 
auto distancePointPoint (const Point &gA, const Point &gB)
 distance between two Points More...
 
auto distancePointLineString (const Point &gA, const LineString &gB)
 distance between a Point and a LineString More...
 
auto distancePointPolygon (const Point &gA, const Polygon &gB)
 distance between a Point and a Polygon More...
 
auto distancePointTriangle (const Point &gA, const Triangle &gB)
 distance between a Point and a Triangle More...
 
auto distanceLineStringGeometry (const LineString &gA, const Geometry &gB)
 dispatch distance from LineString to Geometry More...
 
auto distanceLineStringLineString (const LineString &gA, const LineString &gB)
 distance between two LineStrings More...
 
auto distanceLineStringPolygon (const LineString &gA, const Polygon &gB)
 distance between a LineString and a Polygon More...
 
auto distanceLineStringTriangle (const LineString &gA, const Triangle &gB)
 distance between a LineString and a Triangle More...
 
auto distancePolygonGeometry (const Polygon &gA, const Geometry &gB)
 dispatch distance from Polygon to Geometry More...
 
auto distancePolygonPolygon (const Polygon &gA, const Polygon &gB)
 distance between two Polygons More...
 
auto distancePolygonTriangle (const Polygon &gA, const Triangle &gB)
 distance between a Polygon and a Triangle More...
 
auto distanceTriangleGeometry (const Triangle &gA, const Geometry &gB)
 dispatch distance from a Triangle to a Geometry More...
 
auto boundingCircle (const Geometry &geom) -> const Circle
 
auto distanceGeometryCollectionToGeometry (const Geometry &gA, const Geometry &gB)
 dispatch distance from a collection of geometry (gA) to a Geometry (gB) More...
 
auto distancePointSegment (const Point &p, const Point &a, const Point &b)
 
auto distanceSegmentSegment (const Point &a, const Point &b, const Point &c, const Point &d)
 
auto distance3D (const Geometry &gA, const Geometry &gB, NoValidityCheck)
 Compute distance between two 3D Geometries. More...
 
auto distance3D (const Geometry &gA, const Geometry &gB)
 dispatch distance between two Geometries More...
 
auto distancePointGeometry3D (const Point &gA, const Geometry &gB)
 dispatch distance from Point to Geometry More...
 
auto distancePointPoint3D (const Point &gA, const Point &gB)
 distance between two Points More...
 
auto distancePointLineString3D (const Point &gA, const LineString &gB)
 distance between a Point and a LineString More...
 
auto distancePointTriangle3D (const Point &gA, const Triangle &gB)
 distance between a Point and a Triangle More...
 
auto distancePointPolygon3D (const Point &gA, const Polygon &gB)
 distance between a Point and a Triangle More...
 
auto distancePointSolid3D (const Point &gA, const Solid &gB)
 distance between a Point and a Solid More...
 
auto distanceLineStringGeometry3D (const LineString &gA, const Geometry &gB)
 dispatch distance between a LineString and a Geometry More...
 
auto distanceLineStringLineString3D (const LineString &gA, const LineString &gB)
 distance between two LineStrings More...
 
auto distanceLineStringTriangle3D (const LineString &gA, const Triangle &gB)
 distance between a LineString and a Triangle More...
 
auto distanceLineStringPolygon3D (const LineString &gA, const Polygon &gB)
 distance between a LineString and a Polygon More...
 
auto distanceLineStringSolid3D (const LineString &gA, const Solid &gB)
 distance between a LineString and a Solid More...
 
auto distanceTriangleGeometry3D (const Triangle &gA, const Geometry &gB)
 dispatch distance between a Triangle and a Geometry More...
 
auto distanceTriangleSolid3D (const Triangle &gA, const Solid &gB)
 distance between a Triangle and a Solid More...
 
auto distancePolygonGeometry3D (const Polygon &gA, const Geometry &gB)
 dispatch distance between a Polygon and a Geometry More...
 
auto distanceSolidGeometry3D (const Solid &gA, const Geometry &gB)
 dispatch distance between a Solid and a Geometry More...
 
auto distanceSolidSolid3D (const Solid &gA, const Solid &gB)
 distance between two Solids More...
 
auto boundingSphere (const Geometry &geom) -> const Sphere
 
auto distanceGeometryCollectionToGeometry3D (const Geometry &gA, const Geometry &gB)
 dispatch distance from a collection of geometry (gA) to a Geometry (gB) More...
 
auto distancePointSegment3D (const Point &p, const Point &a, const Point &b)
 
auto squaredDistancePointTriangle3D (const Point_3 &p, const Triangle_3 &abc) -> squared_distance_t
 
auto distancePointTriangle3D (const Point &p, const Point &a, const Point &b, const Point &c)
 
auto distanceSegmentSegment3D (const Point &a, const Point &b, const Point &c, const Point &d)
 
auto squaredDistanceSegmentTriangle3D (const Segment_3 &sAB, const Triangle_3 &tABC) -> squared_distance_t
 
auto distanceSegmentTriangle3D (const Point &sA, const Point &sB, const Point &tA, const Point &tB, const Point &tC)
 
auto squaredDistanceTriangleTriangle3D (const Triangle_3 &triangleA, const Triangle_3 &triangleB) -> squared_distance_t
 
auto distanceTriangleTriangle3D (const Triangle &gA, const Triangle &gB)
 distance between two Triangles More...
 
auto extrude (const Point &g, const Kernel::Vector_3 &v) -> LineString *
 
auto extrude (const LineString &g, const Kernel::Vector_3 &v) -> PolyhedralSurface *
 
auto extrude (const Polygon &g, const Kernel::Vector_3 &v) -> Solid *
 
auto extrude (const Triangle &g, const Kernel::Vector_3 &v) -> Solid *
 
auto extrude (const MultiPoint &g, const Kernel::Vector_3 &v) -> MultiLineString *
 
auto extrude (const MultiLineString &g, const Kernel::Vector_3 &v) -> PolyhedralSurface *
 
auto extrude (const MultiPolygon &g, const Kernel::Vector_3 &v) -> MultiSolid *
 
auto extrude (const TriangulatedSurface &g, const Kernel::Vector_3 &v) -> Solid *
 
auto extrude (const PolyhedralSurface &g, const Kernel::Vector_3 &v) -> Solid *
 
auto extrude (const GeometryCollection &g, const Kernel::Vector_3 &v) -> GeometryCollection *
 extrude each geometry in a GeometryCollection More...
 
auto extrude (const Geometry &g, const Kernel::Vector_3 &v)
 Returns a Geometry equal to the specified Geometry, extruded by the specified displacement vector. More...
 
auto extrude (const Geometry &g, const Kernel::FT &dx, const Kernel::FT &dy, const Kernel::FT &dz, NoValidityCheck) -> std::unique_ptr< Geometry >
 
auto extrude (const Geometry &g, Kernel::FT dx, Kernel::FT dy, Kernel::FT dz)
 Returns a Geometry equal to the specified Geometry, extruded by the specified displacement. More...
 
SFCGAL_API auto extrude (const Geometry &g, const double &dx, const double &dy, const double &dz)
 Returns a Geometry equal to the specified Geometry, extruded by the specified displacement. More...
 
SFCGAL_API std::unique_ptr< Geometryextrude (const Geometry &g, Kernel::FT &dx, Kernel::FT &dy, Kernel::FT &dz, NoValidityCheck &nvc)
 Returns a Geometry equal to the specified Geometry, extruded by the specified displacement. More...
 
void force2D (Geometry &g)
 force a geometry to be 2D (project on O,x,y) More...
 
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) More...
 
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 >)
 
template<int Dim>
void dispatch_intersection_sym (const PrimitiveHandle< Dim > &pa, const PrimitiveHandle< Dim > &pb, GeometrySet< Dim > &output)
 
template<int Dim>
void intersection (const detail::PrimitiveHandle< Dim > &a, const detail::PrimitiveHandle< Dim > &b, detail::GeometrySet< Dim > &)
 
template void intersection< 2 > (const PrimitiveHandle< 2 > &a, const PrimitiveHandle< 2 > &b, GeometrySet< 2 > &)
 
template void intersection< 3 > (const PrimitiveHandle< 3 > &a, const PrimitiveHandle< 3 > &b, GeometrySet< 3 > &)
 
void post_intersection (const GeometrySet< 2 > &input, GeometrySet< 2 > &output)
 intersection post processing More...
 
void post_intersection (const GeometrySet< 3 > &input, GeometrySet< 3 > &output)
 
template<int Dim>
void intersection (const detail::GeometrySet< Dim > &a, const detail::GeometrySet< Dim > &b, detail::GeometrySet< Dim > &)
 
template void intersection< 2 > (const GeometrySet< 2 > &a, const GeometrySet< 2 > &b, GeometrySet< 2 > &)
 
template void intersection< 3 > (const GeometrySet< 3 > &a, const GeometrySet< 3 > &b, GeometrySet< 3 > &)
 
auto intersection (const Geometry &ga, const Geometry &gb, NoValidityCheck)
 Intersection on 2D geometries. More...
 
auto intersection (const Geometry &ga, const Geometry &gb)
 Intersection on 2D geometries. More...
 
auto intersection3D (const Geometry &ga, const Geometry &gb, NoValidityCheck)
 Intersection on 3D geometries. More...
 
auto intersection3D (const Geometry &ga, const Geometry &gb)
 Intersection on 3D geometries. More...
 
auto numIntersectionPoints (const CGAL::Polygon_with_holes_2< Kernel > &poly) -> int
 
void _intersection_solid_segment (const PrimitiveHandle< 3 > &pa, const PrimitiveHandle< 3 > &pb, GeometrySet< 3 > &output)
 
void _intersection_solid_triangle (const MarkedPolyhedron &pa, const CGAL::Triangle_3< Kernel > &tri, GeometrySet< 3 > &output)
 
void _intersection_solid_solid (const MarkedPolyhedron &pa, const MarkedPolyhedron &pb, GeometrySet< 3 > &output)
 
auto _intersects (const PrimitiveHandle< 2 > &pa, const PrimitiveHandle< 2 > &pb) -> bool
 
auto _intersects (const PrimitiveHandle< 3 > &pa, const PrimitiveHandle< 3 > &pb) -> bool
 
template<int Dim>
auto dispatch_intersects_sym (const PrimitiveHandle< Dim > &pa, const PrimitiveHandle< Dim > &pb) -> bool
 
template<int Dim>
auto intersects (const PrimitiveHandle< Dim > &pa, const PrimitiveHandle< Dim > &pb) -> bool
 Intersection test on a PrimitiveHandle. More...
 
template<int Dim>
auto intersects (const GeometrySet< Dim > &a, const GeometrySet< Dim > &b) -> bool
 Intersection test on GeometrySet. More...
 
template bool intersects< 2 > (const GeometrySet< 2 > &a, const GeometrySet< 2 > &b)
 
template bool intersects< 3 > (const GeometrySet< 3 > &a, const GeometrySet< 3 > &b)
 
template bool intersects< 2 > (const PrimitiveHandle< 2 > &a, const PrimitiveHandle< 2 > &b)
 
template bool intersects< 3 > (const PrimitiveHandle< 3 > &a, const PrimitiveHandle< 3 > &b)
 
auto intersects (const Geometry &ga, const Geometry &gb)
 Robust intersection test on 2D geometries. More...
 
auto intersects3D (const Geometry &ga, const Geometry &gb)
 Robust intersection test on 3D geometries. More...
 
auto intersects (const Geometry &ga, const Geometry &gb, NoValidityCheck)
 Intersection test on 2D geometries. More...
 
auto intersects3D (const Geometry &ga, const Geometry &gb, NoValidityCheck)
 Intersection test on 3D geometries. More...
 
template<int Dim>
auto selfIntersectsImpl (const LineString &line) -> bool
 
auto selfIntersects (const LineString &l)
 Self intersection test for 2D LineString (false if only endpoint touch) More...
 
auto selfIntersects3D (const LineString &l)
 Self intersection test for 3D LineString (false if only endpoints touch) More...
 
template<int Dim>
auto selfIntersectsImpl (const PolyhedralSurface &s, const SurfaceGraph &graph) -> bool
 
auto selfIntersects (const PolyhedralSurface &s, const SurfaceGraph &g)
 Self intersection test for 2D PolyhedralSurface (false if only point touch) More...
 
auto selfIntersects3D (const PolyhedralSurface &s, const SurfaceGraph &g)
 Self intersection test for 3D PolyhedralSurface (false if only point touch) More...
 
template<int Dim>
auto selfIntersectsImpl (const TriangulatedSurface &tin, const SurfaceGraph &graph) -> bool
 
auto selfIntersects (const TriangulatedSurface &s, const SurfaceGraph &g)
 Self intersection test for 2D TriangulatedSurface (false if only point touch) More...
 
auto selfIntersects3D (const TriangulatedSurface &s, const SurfaceGraph &g)
 Self intersection test for 3D TriangulatedSurface (false if only point touch) More...
 
template<int Dim>
bool intersects (const detail::GeometrySet< Dim > &a, const detail::GeometrySet< Dim > &b)
 Intersection test on GeometrySet. More...
 
template<int Dim>
bool intersects (const detail::PrimitiveHandle< Dim > &a, const detail::PrimitiveHandle< Dim > &b)
 Intersection test on a PrimitiveHandle. More...
 
auto isValid (const Point &p) -> const Validity
 
auto isValid (const LineString &l, const double &toleranceAbs) -> const Validity
 
auto isValid (const Polygon &p, const double &toleranceAbs) -> const Validity
 
auto isValid (const Triangle &t, const double &toleranceAbs) -> const Validity
 
auto isValid (const MultiLineString &ml, const double &toleranceAbs) -> const Validity
 
auto isValid (const MultiPolygon &mp, const double &toleranceAbs) -> const Validity
 
auto isValid (const GeometryCollection &gc, const double &toleranceAbs) -> const Validity
 
auto isValid (const TriangulatedSurface &tin, const SurfaceGraph &graph, const double &toleranceAbs) -> const Validity
 
auto isValid (const TriangulatedSurface &tin, const double &toleranceAbs) -> const Validity
 
auto isValid (const PolyhedralSurface &s, const SurfaceGraph &graph, const double &toleranceAbs) -> const Validity
 
auto isValid (const PolyhedralSurface &s, const double &toleranceAbs) -> const Validity
 
auto isValid (const Solid &solid, const double &toleranceAbs) -> const Validity
 
auto isValid (const MultiSolid &ms, const double &toleranceAbs) -> const Validity
 
auto isValid (const Geometry &g, const double &toleranceAbs=1e-9)
 Check validity of a geometry. More...
 
void propagateValidityFlag (Geometry &g, bool valid)
 Sets the geometry flag on a geometry and propagate to every internal geometries. More...
 
auto length (const LineString &g)
 Compute the 2D length for a LineString. More...
 
auto length (const GeometryCollection &g)
 Compute the 2D length for a GeometryCollection. More...
 
auto length (const Geometry &g)
 Compute the 2D length for a Geometry (0 for incompatible types) More...
 
auto length3D (const LineString &g)
 Compute the 3D length for a LineString. More...
 
auto length3D (const GeometryCollection &g)
 Compute the 3D length for a GeometryCollection. More...
 
auto length3D (const Geometry &g)
 Compute the 2D length for a geometry. More...
 
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 specified LineString. More...
 
void minkowskiSum (const Geometry &gA, const Polygon_2 &gB, CGAL::Polygon_set_2< Kernel > &polygonSet)
 dispatch gA+gB sum More...
 
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)
 
void minkowskiSumCollection (const Geometry &gA, const Polygon_2 &gB, Polygon_set_2 &polygonSet)
 
auto minkowskiSum (const Geometry &gA, const Polygon &gB, NoValidityCheck)
 2D minkowski sum (p+q) More...
 
auto minkowskiSum (const Geometry &gA, const Polygon &gB)
 2D minkowski sum (p+q) More...
 
template<typename Kernel >
CGAL::Vector_3< Kernelnormal3D (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. More...
 
template<typename Kernel >
CGAL::Vector_3< Kernelnormal3D (const LineString &ls, bool exact=true)
 Returns the 3D normal to a ring (supposed to be planar and closed). More...
 
template<typename Kernel >
CGAL::Vector_3< Kernelnormal3D (const Polygon &polygon, bool exact=true)
 Returns the 3D normal to a polygon (supposed to be planar). More...
 
void offset (const Geometry &g, const double &radius, Offset_polygon_set_2 &polygonSet)
 dispatch a geometry More...
 
void offset (const Point &g, const double &radius, Offset_polygon_set_2 &polygonSet)
 offset for a Point More...
 
void offset (const LineString &g, const double &radius, Offset_polygon_set_2 &polygonSet)
 offset for a LineString More...
 
void offset (const Polygon &g, const double &radius, Offset_polygon_set_2 &polygonSet)
 offset for a Polygon More...
 
void offsetCollection (const Geometry &g, const double &radius, Offset_polygon_set_2 &polygonSet)
 offset for MultiPoint, MultiLineString, MultiPolygon, TriangulatedSurface, PolyhedralSurface More...
 
auto approximate (const Offset_polygon_2 &polygon, const int &n=0) -> Polygon_2
 approximate an Offset_polygon_2 (filter null segments) More...
 
auto approximate (const Offset_polygon_with_holes_2 &polygon, const int &n=0) -> Polygon_with_holes_2
 approximate an Offset More...
 
auto polygonSetToMultiPolygon (const Offset_polygon_set_2 &polygonSet, const int &n) -> std::unique_ptr< MultiPolygon >
 convert Offset_polygon_set_2 to MultiPolygon More...
 
auto circleToPolygon (const Kernel::Circle_2 &circle) -> Offset_polygon_2
 helper to create a polygon from a circle More...
 
auto offset (const Geometry &g, const double &r, NoValidityCheck)
 [experimental]compute polygon offset More...
 
auto offset (const Geometry &g, const double &r)
 [experimental]compute polygon offset More...
 
void makeValidOrientation (CGAL::Polygon_2< Kernel > &polygon)
 Make valid 2D orientation. More...
 
void makeValidOrientation (CGAL::Polygon_with_holes_2< Kernel > &polygon)
 Make valid 2D orientation. More...
 
void makeValidOrientation (Polygon &polygon)
 Make valid 2D orientation. More...
 
auto hasConsistentOrientation3D (const TriangulatedSurface &g)
 Test if a Geometry has a consistent orientation. More...
 
auto hasConsistentOrientation3D (const PolyhedralSurface &g)
 Test if a PolyhedralSurface has a consistent orientation. More...
 
void makeConsistentOrientation3D (TriangulatedSurface &g)
 Try to make consistent orientation in a TriangulatedSurface. More...
 
auto isCounterClockWiseOriented (const LineString &)
 Test if a 2D surface is oriented counter clockwise. More...
 
auto isCounterClockWiseOriented (const Triangle &)
 Test if a 2D surface is oriented counter clockwise. More...
 
auto isCounterClockWiseOriented (const Polygon &)
 Test if a 2D surface is oriented counter clockwise. More...
 
template<typename Kernel >
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. More...
 
template<typename Kernel >
bool hasPlane3D (const Polygon &polygon)
 Test if a 3D plane can be extracted from a Polygon. More...
 
template<typename Kernel >
void 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. More...
 
template<typename Kernel >
CGAL::Plane_3< Kernelplane3D (const Polygon &polygon)
 Returns the oriented 3D plane of a polygon (supposed to be planar). More...
 
template<typename Kernel >
CGAL::Plane_3< Kernelplane3D (const Polygon &polygon, const Plane3DInexactUnsafe &)
 Returns the oriented 3D plane of a polygon (supposed to be planar) - inexact version. More...
 
template<typename Kernel >
CGAL::Plane_3< Kernelplane3D (const Polygon &polygon, bool exact)
 Returns the oriented 3D plane of a polygon (supposed to be planar). More...
 
template<typename Kernel >
bool isPlane3D (const Geometry &geom, const double &toleranceAbs)
 Test if all points of a geometry lie in the same plane. More...
 
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 More...
 
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 More...
 
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 More...
 
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 More...
 
auto approximateMedialAxis (const Geometry &g)
 build an approximate medial axis for a Polygon More...
 
auto tesselate (const Geometry &, NoValidityCheck)
 Tesselate a geometry: this will triangulate surfaces (including polyhedral and solid's surfaces) and keep untouched points, lines, etc. More...
 
auto tesselate (const Geometry &)
 Tesselate a geometry: this will triangulate surfaces (including polyhedral and solid's surfaces) and keep untouched points, lines, etc. More...
 
void translate (Geometry &g, const Kernel::Vector_3 &v)
 translate a geometry from a given vector More...
 
void translate (Geometry &g, const Kernel::Vector_2 &v)
 translate a geometry from a given vector More...
 
void translate (Geometry &g, const Kernel::FT dx, const Kernel::FT dy, const Kernel::FT dz)
 translate a geometry from a given vector More...
 
template<typename T >
auto operator<< (std::ostream &out, std::set< T * > &obs) -> std::ostream &
 
template<int Dim, class OutputIterator >
auto compute_bboxes (const detail::GeometrySet< Dim > &gs, OutputIterator out) -> OutputIterator
 
template<class Handle >
void union_point_point (Handle a, Handle b)
 
template<class Handle >
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)
 
template<int Dim>
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)
 
template<int Dim>
void collectPrimitives (const typename HandledBox< Dim >::Vector &boxes, detail::GeometrySet< Dim > &output)
 
auto union_ (const Geometry &ga, const Geometry &gb, NoValidityCheck)
 Union on 2D geometries. More...
 
auto union_ (const Geometry &ga, const Geometry &gb)
 Union on 2D geometries. More...
 
auto union3D (const Geometry &ga, const Geometry &gb, NoValidityCheck)
 Union on 3D geometries. More...
 
auto union3D (const Geometry &ga, const Geometry &gb)
 Union on 3D geometries. More...
 
void handleLeakTest ()
 
template<int Dim>
void union_ (const detail::GeometrySet< Dim > &a, const detail::GeometrySet< Dim > &b, detail::GeometrySet< Dim > &)
 
template<int Dim>
void union_ (const detail::PrimitiveHandle< Dim > &a, const detail::PrimitiveHandle< Dim > &b, detail::GeometrySet< Dim > &)
 
auto volume (const Solid &g, NoValidityCheck)
 Computes the volume of a Solid. More...
 
auto volume (const Geometry &g)
 Computes the volume of a geometry. More...
 

Typedef Documentation

◆ Alpha_shape_2

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

◆ Alpha_shape_edges_iterator

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

◆ Arrangement

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

◆ FaceBboxBase

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

◆ Fb

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

◆ MarkedPolyhedron

◆ NoVolume

◆ Plane_3

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

◆ Point_2

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

◆ Point_3

typedef CGAL::Point_3< Kernel > SFCGAL::algorithm::Point_3

◆ Polygon_2

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

◆ Polygon_with_holes_2

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

◆ PolygonWH_2

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

◆ Polyhedron_3

using SFCGAL::algorithm::Polyhedron_3 = typedef CGAL::Polyhedron_3<Kernel>

◆ Polyline_3

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

◆ Segment_2

typedef CGAL::Segment_2< Kernel > SFCGAL::algorithm::Segment_2

◆ Segment_3

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

◆ Straight_skeleton_2

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

◆ Tds

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

◆ Traits_2

using SFCGAL::algorithm::Traits_2 = typedef CGAL::Arr_non_caching_segment_basic_traits_2<Kernel>

◆ Triangle_2

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

◆ Triangle_3

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

◆ Triangulation_2

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

◆ Vb

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

◆ Vector_2

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

◆ Vector_3

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

Enumeration Type Documentation

◆ PrimitiveType

Enumerator
PrimitivePoint 
PrimitiveSegment 
PrimitiveSurface 
PrimitiveVolume 
PrimitiveEmpty 

Function Documentation

◆ _intersection_solid_segment()

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

◆ _intersection_solid_solid()

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

◆ _intersection_solid_triangle() [1/2]

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

◆ _intersection_solid_triangle() [2/2]

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

◆ _intersects() [1/2]

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

◆ _intersects() [2/2]

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

◆ alpha_edges()

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

◆ alpha_to_geometry()

static auto SFCGAL::algorithm::alpha_to_geometry ( const Alpha_shape_2 A,
bool  allow_holes 
) -> std::unique_ptr<Geometry>
static

◆ appendDifference() [1/2]

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

◆ appendDifference() [2/2]

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

◆ approximate() [1/2]

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

approximate an Offset_polygon_2 (filter null segments)

◆ approximate() [2/2]

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

approximate an Offset

◆ boundingCircle()

auto SFCGAL::algorithm::boundingCircle ( const Geometry geom) -> const Circle

◆ boundingSphere()

auto SFCGAL::algorithm::boundingSphere ( const Geometry geom) -> const Sphere

◆ circleToPolygon()

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

helper to create a polygon from a circle

◆ collectionExtractPolygons()

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

◆ collectionToMulti()

SFCGAL_API std::unique_ptr< Geometry > 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

◆ collectPrimitives()

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

◆ collidingTriangles()

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

◆ compute_bboxes()

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

◆ computeAlpha()

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

◆ covers()

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

◆ covers3D()

SFCGAL_API bool SFCGAL::algorithm::covers3D ( const Geometry ga,
const Geometry gb 
)

Cover test on 3D geometries.

Checks if gA covers gB. Assume z = 0 if needed

◆ covers< 2 >()

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

◆ covers< 3 >()

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

◆ difference() [1/25]

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

◆ difference() [2/25]

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

◆ difference() [3/25]

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

◆ difference() [4/25]

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

◆ difference() [5/25]

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

◆ difference() [6/25]

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

◆ difference() [7/25]

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

◆ difference() [8/25]

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

◆ difference() [9/25]

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

◆ difference() [10/25]

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

◆ difference() [11/25]

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

◆ difference() [12/25]

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

◆ difference() [13/25]

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

◆ difference() [14/25]

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

◆ difference() [15/25]

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

◆ difference() [16/25]

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

◆ difference() [17/25]

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

◆ difference() [18/25]

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

◆ difference() [19/25]

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

◆ difference() [20/25]

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

◆ difference() [21/25]

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

◆ difference() [22/25]

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

◆ difference() [23/25]

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

◆ difference() [24/25]

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

◆ difference() [25/25]

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

◆ difference< 2 >()

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

◆ difference< 3 >()

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

◆ dispatch_intersection_sym()

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

◆ dispatch_intersects_sym()

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

◆ do_intersect()

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

◆ equalLength()

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

◆ extrude() [1/11]

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

◆ extrude() [2/11]

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

extrude each geometry in a GeometryCollection

◆ extrude() [3/11]

auto SFCGAL::algorithm::extrude ( const LineString g,
const Kernel::Vector_3 &  v 
) -> PolyhedralSurface *

◆ extrude() [4/11]

auto SFCGAL::algorithm::extrude ( const MultiLineString g,
const Kernel::Vector_3 &  v 
) -> PolyhedralSurface *

◆ extrude() [5/11]

auto SFCGAL::algorithm::extrude ( const MultiPoint g,
const Kernel::Vector_3 &  v 
) -> MultiLineString *

◆ extrude() [6/11]

auto SFCGAL::algorithm::extrude ( const MultiPolygon g,
const Kernel::Vector_3 &  v 
) -> MultiSolid *

◆ extrude() [7/11]

auto SFCGAL::algorithm::extrude ( const Point g,
const Kernel::Vector_3 &  v 
) -> LineString *

◆ extrude() [8/11]

auto SFCGAL::algorithm::extrude ( const Polygon g,
const Kernel::Vector_3 &  v 
) -> Solid *

◆ extrude() [9/11]

auto SFCGAL::algorithm::extrude ( const PolyhedralSurface g,
const Kernel::Vector_3 &  v 
) -> Solid *
Warning
doesn't take orientation in account
Todo:
take orientation in account

◆ extrude() [10/11]

auto SFCGAL::algorithm::extrude ( const Triangle g,
const Kernel::Vector_3 &  v 
) -> Solid *

◆ extrude() [11/11]

auto SFCGAL::algorithm::extrude ( const TriangulatedSurface g,
const Kernel::Vector_3 &  v 
) -> Solid *
Warning
suppose that the TriangulatedSurface is connected
Todo:
take orientation in account

◆ fix_cgal_valid_polygon()

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

◆ fix_sfs_valid_polygon()

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

◆ force2D()

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

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

Warning
ignore empty geometries

◆ force3D()

SFCGAL_API void SFCGAL::algorithm::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)

Warning
ignore empty geometries

◆ handleLeakTest()

void SFCGAL::algorithm::handleLeakTest ( )

◆ hasConsistentOrientation3D() [1/2]

SFCGAL_API bool SFCGAL::algorithm::hasConsistentOrientation3D ( const PolyhedralSurface g) -> bool

Test if a PolyhedralSurface has a consistent orientation.

◆ hasConsistentOrientation3D() [2/2]

SFCGAL_API bool SFCGAL::algorithm::hasConsistentOrientation3D ( const TriangulatedSurface g) -> bool

Test if a Geometry has a consistent orientation.

◆ hasPlane3D()

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

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

◆ intersection() [1/3]

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

◆ intersection() [2/3]

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

◆ intersection() [3/3]

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

◆ intersection< 2 >() [1/2]

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

◆ intersection< 2 >() [2/2]

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

◆ intersection< 3 >() [1/2]

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

◆ intersection< 3 >() [2/2]

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

◆ intersects< 2 >() [1/2]

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

◆ intersects< 2 >() [2/2]

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

◆ intersects< 3 >() [1/2]

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

◆ intersects< 3 >() [2/2]

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

◆ isCounterClockWiseOriented() [1/3]

SFCGAL_API bool SFCGAL::algorithm::isCounterClockWiseOriented ( const LineString ls) -> bool

Test if a 2D surface is oriented counter clockwise.

◆ isCounterClockWiseOriented() [2/3]

SFCGAL_API bool SFCGAL::algorithm::isCounterClockWiseOriented ( const Polygon poly) -> bool

Test if a 2D surface is oriented counter clockwise.

◆ isCounterClockWiseOriented() [3/3]

SFCGAL_API bool SFCGAL::algorithm::isCounterClockWiseOriented ( const Triangle tri) -> bool

Test if a 2D surface is oriented counter clockwise.

◆ isHoleOf()

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

◆ isValid() [1/13]

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

◆ isValid() [2/13]

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

◆ isValid() [3/13]

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

◆ isValid() [4/13]

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

◆ isValid() [5/13]

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

◆ isValid() [6/13]

auto SFCGAL::algorithm::isValid ( const Point p) -> const Validity
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

◆ isValid() [7/13]

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

◆ isValid() [8/13]

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

◆ isValid() [9/13]

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

◆ isValid() [10/13]

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

◆ isValid() [11/13]

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

◆ isValid() [12/13]

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

◆ isValid() [13/13]

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

◆ length() [1/3]

SFCGAL_API double SFCGAL::algorithm::length ( const Geometry g) -> double

Compute the 2D length for a Geometry (0 for incompatible types)

◆ length() [2/3]

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

Compute the 2D length for a GeometryCollection.

◆ length() [3/3]

SFCGAL_API double SFCGAL::algorithm::length ( const LineString g) -> double

Compute the 2D length for a LineString.

◆ length3D() [1/3]

SFCGAL_API double SFCGAL::algorithm::length3D ( const Geometry g)

Compute the 2D length for a geometry.

Returns
the length of the Geometry, 0 for incompatible types

◆ length3D() [2/3]

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

Compute the 3D length for a GeometryCollection.

◆ length3D() [3/3]

SFCGAL_API double SFCGAL::algorithm::length3D ( const LineString g) -> double

Compute the 3D length for a LineString.

◆ lineSubstring()

SFCGAL_API std::unique_ptr< LineString > SFCGAL::algorithm::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 specified LineString.

Parameters
lsThe specified LineString.
startThe fraction along the specified LineString defining the start of the desired substring.
endThe fraction along the specified LineString defining the end of the desired substring.
Note
Negative values of start and/or end will be interpreted as a fractional distance taken from the end of the specified LineString. +/-0 will always be interpreted as the start of ls.
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 ls. For closed lines the a negative range corresponds to the complentary section of ls with an orientation equal to that of it.
Returns
The specified line substring.
Exceptions
Ifeither start or end have an absolute value greater than 1.

◆ makeConsistentOrientation3D()

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

Try to make consistent orientation in a TriangulatedSurface.

◆ makeValidOrientation() [1/3]

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

Make valid 2D orientation.

◆ makeValidOrientation() [2/3]

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

Make valid 2D orientation.

◆ makeValidOrientation() [3/3]

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

Make valid 2D orientation.

◆ minkowskiSum() [1/5]

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

dispatch gA+gB sum

◆ minkowskiSum() [2/5]

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

◆ minkowskiSum() [3/5]

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

◆ minkowskiSum() [4/5]

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

◆ minkowskiSum() [5/5]

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

◆ minkowskiSumCollection()

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

◆ normal3D() [1/3]

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.

◆ normal3D() [2/3]

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

◆ normal3D() [3/3]

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

◆ numIntersectionPoints()

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

◆ offset() [1/4]

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

dispatch a geometry

◆ offset() [2/4]

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

offset for a LineString

build LineString offset

◆ offset() [3/4]

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

offset for a Point

build Point offset

◆ offset() [4/4]

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

offset for a Polygon

◆ offsetCollection()

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

◆ operator<<()

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

◆ plane3D() [1/4]

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.

◆ plane3D() [2/4]

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).
Will divide by zero if polygon is degenerate. This maintains the previous behaviour.

◆ plane3D() [3/4]

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.

◆ plane3D() [4/4]

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

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

Warning
Will divide by zero if polygon is degenerate.
result is rounded to double (avoid huge expression tree).

◆ polygonSetToMultiPolygon()

auto SFCGAL::algorithm::polygonSetToMultiPolygon ( const Offset_polygon_set_2 &  polygonSet,
const int &  n 
) -> std::unique_ptr<MultiPolygon>

convert Offset_polygon_set_2 to MultiPolygon

◆ post_difference() [1/2]

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

difference post processing

◆ post_difference() [2/2]

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

◆ post_intersection() [1/2]

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

intersection post processing

◆ post_intersection() [2/2]

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

◆ segmentsLength()

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

◆ selfIntersectsImpl() [1/3]

template<int Dim>
auto SFCGAL::algorithm::selfIntersectsImpl ( const LineString line) -> bool
Todo:
find a way to avoid ugly copy/paste here, toPoint_d< Dim > can be used, but I dont know what to do with Kernel::Segment_Dim and Kernel::Point_Dim

◆ selfIntersectsImpl() [2/3]

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

◆ selfIntersectsImpl() [3/3]

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

◆ solidsVolume() [1/2]

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

◆ solidsVolume() [2/2]

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

◆ squaredDistancePointTriangle3D()

auto SFCGAL::algorithm::squaredDistancePointTriangle3D ( const Point_3 p,
const Triangle_3 abc 
) -> squared_distance_t

◆ squaredDistanceSegmentTriangle3D()

auto SFCGAL::algorithm::squaredDistanceSegmentTriangle3D ( const Segment_3 sAB,
const Triangle_3 tABC 
) -> squared_distance_t

◆ squaredDistanceTriangleTriangle3D()

auto SFCGAL::algorithm::squaredDistanceTriangleTriangle3D ( const Triangle_3 triangleA,
const Triangle_3 triangleB 
) -> squared_distance_t

◆ surfacesArea() [1/2]

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

◆ surfacesArea() [2/2]

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

◆ translate() [1/3]

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

translate a geometry from a given vector

Todo:
unittest

◆ translate() [2/3]

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

translate a geometry from a given vector

Todo:
unittest

◆ translate() [3/3]

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

translate a geometry from a given vector

Todo:
unittest

◆ union_point_point()

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

◆ union_point_segment()

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

◆ union_point_surface() [1/2]

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

◆ union_point_surface() [2/2]

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

◆ union_point_volume() [1/2]

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

◆ union_point_volume() [2/2]

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

◆ union_segment_segment() [1/3]

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

◆ union_segment_segment() [2/3]

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

◆ union_segment_segment() [3/3]

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

◆ union_segment_surface() [1/2]

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

◆ union_segment_surface() [2/2]

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

◆ union_segment_volume() [1/2]

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

◆ union_segment_volume() [2/2]

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

◆ union_surface_surface() [1/2]

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

◆ union_surface_surface() [2/2]

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

◆ union_surface_volume() [1/2]

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

◆ union_surface_volume() [2/2]

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

◆ union_volume_volume() [1/2]

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

◆ union_volume_volume() [2/2]

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