SFCGAL  1.4.1
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

typedef CGAL::Vector_2< KernelVector_2
 
using Point_2 = CGAL::Point_2< Kernel >
 
using Segment_2 = CGAL::Segment_2< Kernel >
 
using Triangle_2 = CGAL::Triangle_2< Kernel >
 
using Polygon_2 = CGAL::Polygon_2< Kernel >
 
typedef CGAL::Polygon_with_holes_2< KernelPolygonWH_2
 
typedef detail::NoVolume NoVolume
 
typedef CGAL::Vector_3< KernelVector_3
 
using Point_3 = CGAL::Point_3< Kernel >
 
using Segment_3 = CGAL::Segment_3< Kernel >
 
using Triangle_3 = CGAL::Triangle_3< Kernel >
 
using Plane_3 = CGAL::Plane_3< Kernel >
 
typedef detail::MarkedPolyhedron MarkedPolyhedron
 
typedef CGAL::Box_intersection_d::Box_with_handle_d< double, 3, MarkedPolyhedron::Halfedge_around_facet_const_circulator > FaceBboxBase
 
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 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 Polyhedron_3 = CGAL::Polyhedron_3< Kernel >
 
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

SFCGAL_API 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...
 
SFCGAL_API 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...
 
SFCGAL_API double area (const Geometry &g)
 Compute the 2D area for a Geometry. More...
 
SFCGAL_API double area (const Geometry &g, NoValidityCheck)
 Compute the 2D area for a Geometry. More...
 
SFCGAL_API Kernel::FT signedArea (const Triangle &g)
 Compute the 2D signed area for a Triangle. More...
 
SFCGAL_API Kernel::FT signedArea (const LineString &g)
 Compute the 2D signed area for a closed LineString. More...
 
SFCGAL_API double area (const Triangle &g)
 Returns Compute the 2D area for a Triangle. More...
 
SFCGAL_API double area (const Polygon &g)
 Returns Compute the 2D area for a Polygon. More...
 
SFCGAL_API double area (const GeometryCollection &g)
 Returns the 2D area for a GeometryCollection. More...
 
SFCGAL_API double area (const TriangulatedSurface &g)
 Returns the 2D area for a TriangulatedSurface. More...
 
SFCGAL_API double area (const PolyhedralSurface &g)
 Returns the 2D area for a TriangulatedSurface. More...
 
SFCGAL_API double area3D (const Geometry &g)
 Returns 3D area for a Geometry. More...
 
SFCGAL_API double area3D (const Geometry &g, NoValidityCheck)
 Returns 3D area for a Geometry. More...
 
SFCGAL_API double area3D (const Polygon &g)
 Returns 3D area for a Polygon. More...
 
SFCGAL_API double area3D (const GeometryCollection &g)
 Returns the 3D area for a MultiPolygon. More...
 
SFCGAL_API double area3D (const PolyhedralSurface &g)
 Returns the 3D area for a PolyhedralSurface. More...
 
SFCGAL_API double area3D (const Triangle &g)
 Returns the 3D area for a Triangle. More...
 
SFCGAL_API double area3D (const TriangulatedSurface &g)
 Returns the 3D area for a TriangulatedSurface. More...
 
SFCGAL_API std::unique_ptr< Geometrycollect (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...
 
SFCGAL_API std::unique_ptr< GeometrycollectionExtractPolygons (std::unique_ptr< Geometry > coll)
 
SFCGAL_API std::unique_ptr< GeometrycollectionHomogenize (std::unique_ptr< Geometry > coll)
 Given a geometry collection, returns the "simplest" representation of the contents. More...
 
SFCGAL_API std::unique_ptr< GeometrycollectionToMulti (std::unique_ptr< Geometry > coll)
 Given a geometry collection of triangles, TINs and polygons returns a MultiPolygon. More...
 
SFCGAL_API bool isConnected (const SurfaceGraph &graph)
 test if a surface is connected, the graph should be build beforehand More...
 
SFCGAL_API bool isClosed (const SurfaceGraph &graph)
 test if a surface is closed, the graph should be build beforehand More...
 
SFCGAL_API std::unique_ptr< GeometryconvexHull (const Geometry &g)
 Compute the 2D convex hull for a geometry. More...
 
SFCGAL_API std::unique_ptr< GeometryconvexHull3D (const Geometry &g)
 Compute the 3D convex hull for a geometry. More...
 
SFCGAL_API bool covers (const Geometry &ga, const Geometry &gb)
 Cover test on 2D geometries. More...
 
SFCGAL_API bool 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)
 
template<int Dim>
bool covers (const detail::PrimitiveHandle< Dim > &a, const detail::PrimitiveHandle< Dim > &b)
 
SFCGAL_API std::unique_ptr< Geometrydifference (const Geometry &ga, const Geometry &gb)
 Difference on 2D geometries. More...
 
SFCGAL_API std::unique_ptr< Geometrydifference (const Geometry &ga, const Geometry &gb, NoValidityCheck)
 Diffrence on 2D geometries. More...
 
SFCGAL_API std::unique_ptr< Geometrydifference3D (const Geometry &ga, const Geometry &gb)
 Difference on 3D geometries. More...
 
SFCGAL_API std::unique_ptr< Geometrydifference3D (const Geometry &ga, const Geometry &gb, NoValidityCheck)
 Difference on 3D geometries. More...
 
template<int Dim>
void difference (const detail::GeometrySet< Dim > &a, const detail::GeometrySet< Dim > &b, detail::GeometrySet< Dim > &)
 
CGAL::Object intersection (const CGAL::Triangle_3< Kernel > &a, const CGAL::Triangle_3< Kernel > &b)
 
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)
 
SFCGAL_API double distance (const Geometry &gA, const Geometry &gB)
 Compute the distance between two Geometries. More...
 
SFCGAL_API double distance (const Geometry &gA, const Geometry &gB, NoValidityCheck)
 Compute the distance between two Geometries. More...
 
SFCGAL_API double distancePointGeometry (const Point &gA, const Geometry &gB)
 dispatch distance from Point to Geometry More...
 
SFCGAL_API double distancePointPoint (const Point &gA, const Point &gB)
 distance between two Points More...
 
SFCGAL_API double distancePointLineString (const Point &gA, const LineString &gB)
 distance between a Point and a LineString More...
 
SFCGAL_API double distancePointPolygon (const Point &gA, const Polygon &gB)
 distance between a Point and a Polygon More...
 
SFCGAL_API double distancePointTriangle (const Point &gA, const Triangle &gB)
 distance between a Point and a Triangle More...
 
SFCGAL_API double distanceLineStringGeometry (const LineString &gA, const Geometry &gB)
 dispatch distance from LineString to Geometry More...
 
SFCGAL_API double distanceLineStringLineString (const LineString &gA, const LineString &gB)
 distance between two LineStrings More...
 
SFCGAL_API double distanceLineStringPolygon (const LineString &gA, const Polygon &gB)
 distance between a LineString and a Polygon More...
 
SFCGAL_API double distanceLineStringTriangle (const LineString &gA, const Triangle &gB)
 distance between a LineString and a Triangle More...
 
SFCGAL_API double distancePolygonGeometry (const Polygon &gA, const Geometry &gB)
 dispatch distance from Polygon to Geometry More...
 
SFCGAL_API double distancePolygonPolygon (const Polygon &gA, const Polygon &gB)
 distance between two Polygons More...
 
SFCGAL_API double distancePolygonTriangle (const Polygon &gA, const Triangle &gB)
 distance between a Polygon and a Triangle More...
 
SFCGAL_API double distanceTriangleGeometry (const Triangle &gA, const Geometry &gB)
 dispatch distance from a Triangle to a Geometry More...
 
SFCGAL_API double distanceGeometryCollectionToGeometry (const Geometry &gA, const Geometry &gB)
 dispatch distance from a collection of geometry (gA) to a Geometry (gB) More...
 
SFCGAL_API double distancePointSegment (const Point &p, const Point &a, const Point &b)
 
SFCGAL_API double distanceSegmentSegment (const Point &a, const Point &b, const Point &c, const Point &d)
 
SFCGAL_API double distance3D (const Geometry &gA, const Geometry &gB)
 dispatch distance between two Geometries More...
 
SFCGAL_API double distance3D (const Geometry &gA, const Geometry &gB, NoValidityCheck)
 Compute distance between two 3D Geometries. More...
 
SFCGAL_API double distancePointGeometry3D (const Point &gA, const Geometry &gB)
 dispatch distance from Point to Geometry More...
 
SFCGAL_API double distancePointPoint3D (const Point &gA, const Point &gB)
 distance between two Points More...
 
SFCGAL_API double distancePointLineString3D (const Point &gA, const LineString &gB)
 distance between a Point and a LineString More...
 
SFCGAL_API double distancePointTriangle3D (const Point &gA, const Triangle &gB)
 distance between a Point and a Triangle More...
 
SFCGAL_API double distancePointPolygon3D (const Point &gA, const Polygon &gB)
 distance between a Point and a Triangle More...
 
SFCGAL_API double distancePointSolid3D (const Point &gA, const Solid &gB)
 distance between a Point and a Solid More...
 
SFCGAL_API double distanceLineStringGeometry3D (const LineString &gA, const Geometry &gB)
 dispatch distance between a LineString and a Geometry More...
 
SFCGAL_API double distanceLineStringLineString3D (const LineString &gA, const LineString &gB)
 distance between two LineStrings More...
 
SFCGAL_API double distanceLineStringTriangle3D (const LineString &gA, const Triangle &gB)
 distance between a LineString and a Triangle More...
 
SFCGAL_API double distanceLineStringPolygon3D (const LineString &gA, const Polygon &gB)
 distance between a LineString and a Polygon More...
 
SFCGAL_API double distanceLineStringSolid3D (const LineString &gA, const Solid &gB)
 distance between a LineString and a Solid More...
 
SFCGAL_API double distanceTriangleGeometry3D (const Triangle &gA, const Geometry &gB)
 dispatch distance between a Triangle and a Geometry More...
 
SFCGAL_API double distanceTriangleSolid3D (const Triangle &gA, const Solid &gB)
 distance between a Triangle and a Solid More...
 
SFCGAL_API double distancePolygonGeometry3D (const Polygon &gA, const Geometry &gB)
 dispatch distance between a Polygon and a Geometry More...
 
SFCGAL_API double distanceSolidGeometry3D (const Solid &gA, const Geometry &gB)
 dispatch distance between a Solid and a Geometry More...
 
SFCGAL_API double distanceSolidSolid3D (const Solid &gA, const Solid &gB)
 distance between two Solids More...
 
SFCGAL_API double distanceGeometryCollectionToGeometry3D (const Geometry &gA, const Geometry &gB)
 dispatch distance from a collection of geometry (gA) to a Geometry (gB) More...
 
SFCGAL_API double distancePointSegment3D (const Point &p, const Point &a, const Point &b)
 
SFCGAL_API double distancePointTriangle3D (const Point &p, const Point &a, const Point &b, const Point &c)
 
SFCGAL_API double distanceSegmentSegment3D (const Point &a, const Point &b, const Point &c, const Point &d)
 
SFCGAL_API double distanceSegmentTriangle3D (const Point &sA, const Point &sB, const Point &tA, const Point &tB, const Point &tC)
 
SFCGAL_API double distanceTriangleTriangle3D (const Triangle &gA, const Triangle &gB)
 distance between two Triangles More...
 
SFCGAL_API std::unique_ptr< Geometryextrude (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 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...
 
SFCGAL_API std::unique_ptr< Geometryextrude (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, const Kernel::Vector_3 &v)
 Returns a Geometry equal to the specified Geometry, extruded by the specified displacement vector. More...
 
SFCGAL_API void force2D (Geometry &g)
 force a geometry to be 2D (project on O,x,y) More...
 
SFCGAL_API 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...
 
SFCGAL_API std::unique_ptr< Geometryintersection (const Geometry &ga, const Geometry &gb)
 Intersection on 2D geometries. More...
 
SFCGAL_API std::unique_ptr< Geometryintersection (const Geometry &ga, const Geometry &gb, NoValidityCheck)
 Intersection on 2D geometries. More...
 
SFCGAL_API std::unique_ptr< Geometryintersection3D (const Geometry &ga, const Geometry &gb)
 Intersection on 3D geometries. More...
 
SFCGAL_API std::unique_ptr< Geometryintersection3D (const Geometry &ga, const Geometry &gb, NoValidityCheck)
 Intersection on 3D geometries. More...
 
template<int Dim>
void intersection (const detail::GeometrySet< Dim > &a, const detail::GeometrySet< Dim > &b, detail::GeometrySet< Dim > &)
 
template<int Dim>
void intersection (const detail::PrimitiveHandle< Dim > &a, const detail::PrimitiveHandle< Dim > &b, detail::GeometrySet< Dim > &)
 
SFCGAL_API bool intersects (const Geometry &ga, const Geometry &gb)
 Robust intersection test on 2D geometries. More...
 
SFCGAL_API bool intersects3D (const Geometry &ga, const Geometry &gb)
 Robust intersection test on 3D geometries. More...
 
SFCGAL_API bool intersects (const Geometry &ga, const Geometry &gb, NoValidityCheck)
 Intersection test on 2D geometries. More...
 
SFCGAL_API bool intersects3D (const Geometry &ga, const Geometry &gb, NoValidityCheck)
 Intersection test on 3D geometries. 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...
 
bool selfIntersects (const LineString &l)
 Self intersection test for 2D LineString (false if only endpoint touch) More...
 
bool selfIntersects3D (const LineString &l)
 Self intersection test for 3D LineString (false if only endpoints touch) More...
 
bool selfIntersects (const PolyhedralSurface &s, const SurfaceGraph &g)
 Self intersection test for 2D PolyhedralSurface (false if only point touch) More...
 
bool selfIntersects3D (const PolyhedralSurface &s, const SurfaceGraph &g)
 Self intersection test for 3D PolyhedralSurface (false if only point touch) More...
 
bool selfIntersects (const TriangulatedSurface &s, const SurfaceGraph &g)
 Self intersection test for 2D TriangulatedSurface (false if only point touch) More...
 
bool selfIntersects3D (const TriangulatedSurface &s, const SurfaceGraph &g)
 Self intersection test for 3D TriangulatedSurface (false if only point touch) More...
 
const SFCGAL_API Validity isValid (const Geometry &g, const double &toleranceAbs=1e-9)
 Check validity of a geometry. More...
 
SFCGAL_API void propagateValidityFlag (Geometry &g, bool valid)
 Sets the geometry flag on a geometry and propagate to every internal geometries. More...
 
SFCGAL_API double length (const Geometry &g)
 Compute the 2D length for a Geometry (0 for incompatible types) More...
 
SFCGAL_API double length (const LineString &g)
 Compute the 2D length for a LineString. More...
 
SFCGAL_API double length (const GeometryCollection &g)
 Compute the 2D length for a GeometryCollection. More...
 
SFCGAL_API double length3D (const Geometry &g)
 Compute the 2D length for a geometry. More...
 
SFCGAL_API double length3D (const LineString &g)
 Compute the 3D length for a LineString. More...
 
SFCGAL_API double length3D (const GeometryCollection &g)
 Compute the 3D length for a GeometryCollection. More...
 
SFCGAL_API std::unique_ptr< LineStringlineSubstring (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...
 
SFCGAL_API std::unique_ptr< GeometryminkowskiSum (const Geometry &gA, const Polygon &gB)
 2D minkowski sum (p+q) More...
 
SFCGAL_API std::unique_ptr< GeometryminkowskiSum (const Geometry &gA, const Polygon &gB, NoValidityCheck)
 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...
 
SFCGAL_API std::unique_ptr< MultiPolygonoffset (const Geometry &g, const double &r)
 [experimental]compute polygon offset More...
 
SFCGAL_API std::unique_ptr< MultiPolygonoffset (const Geometry &g, const double &r, NoValidityCheck)
 [experimental]compute polygon offset More...
 
SFCGAL_API void makeValidOrientation (CGAL::Polygon_2< Kernel > &polygon)
 Make valid 2D orientation. More...
 
SFCGAL_API void makeValidOrientation (CGAL::Polygon_with_holes_2< Kernel > &polygon)
 Make valid 2D orientation. More...
 
SFCGAL_API void makeValidOrientation (Polygon &polygon)
 Make valid 2D orientation. More...
 
SFCGAL_API bool hasConsistentOrientation3D (const TriangulatedSurface &g)
 Test if a Geometry has a consistent orientation. More...
 
SFCGAL_API bool hasConsistentOrientation3D (const PolyhedralSurface &g)
 Test if a PolyhedralSurface has a consistent orientation. More...
 
SFCGAL_API void makeConsistentOrientation3D (TriangulatedSurface &g)
 Try to make consistent orientation in a TriangulatedSurface. More...
 
SFCGAL_API bool isCounterClockWiseOriented (const Polygon &)
 Test if a 2D surface is oriented counter clockwise. More...
 
SFCGAL_API bool isCounterClockWiseOriented (const Triangle &)
 Test if a 2D surface is oriented counter clockwise. More...
 
SFCGAL_API bool isCounterClockWiseOriented (const LineString &)
 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...
 
SFCGAL_API std::unique_ptr< MultiLineStringapproximateMedialAxis (const Geometry &g)
 build an approximate medial axis for a Polygon More...
 
SFCGAL_API std::unique_ptr< MultiLineStringstraightSkeleton (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...
 
SFCGAL_API std::unique_ptr< MultiLineStringstraightSkeleton (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...
 
SFCGAL_API std::unique_ptr< MultiLineStringstraightSkeleton (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...
 
SFCGAL_API std::unique_ptr< MultiLineStringstraightSkeleton (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...
 
SFCGAL_API std::unique_ptr< SFCGAL::Geometrytesselate (const Geometry &)
 Tesselate a geometry: this will triangulate surfaces (including polyhedral and solid's surfaces) and keep untouched points, lines, etc. More...
 
SFCGAL_API std::unique_ptr< SFCGAL::Geometrytesselate (const Geometry &, NoValidityCheck)
 Tesselate a geometry: this will triangulate surfaces (including polyhedral and solid's surfaces) and keep untouched points, lines, etc. More...
 
SFCGAL_API void translate (Geometry &g, const Kernel::Vector_3 &v)
 translate a geometry from a given vector More...
 
SFCGAL_API void translate (Geometry &g, const Kernel::Vector_2 &v)
 translate a geometry from a given vector More...
 
SFCGAL_API void translate (Geometry &g, const Kernel::FT dx, const Kernel::FT dy, const Kernel::FT dz)
 translate a geometry from a given vector More...
 
SFCGAL_API std::unique_ptr< Geometryunion_ (const Geometry &ga, const Geometry &gb)
 Union on 2D geometries. More...
 
SFCGAL_API std::unique_ptr< Geometryunion_ (const Geometry &ga, const Geometry &gb, NoValidityCheck)
 Union on 2D geometries. More...
 
SFCGAL_API std::unique_ptr< Geometryunion3D (const Geometry &ga, const Geometry &gb)
 Union on 3D geometries. More...
 
SFCGAL_API std::unique_ptr< Geometryunion3D (const Geometry &ga, const Geometry &gb, NoValidityCheck)
 Union on 3D geometries. More...
 
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 > &)
 
const SFCGAL_API Kernel::FT volume (const Geometry &g)
 Computes the volume of a geometry. More...
 
const SFCGAL_API Kernel::FT volume (const Solid &g, NoValidityCheck)
 Computes the volume of a Solid. More...
 
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 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
 
template bool covers< 2 > (const GeometrySet< 2 > &a, const GeometrySet< 2 > &b)
 
template bool covers< 3 > (const GeometrySet< 3 > &a, const GeometrySet< 3 > &b)
 
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 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 boundingCircle (const Geometry &geom) -> const Circle
 
auto boundingSphere (const Geometry &geom) -> const Sphere
 
auto squaredDistancePointTriangle3D (const Point_3 &p, const Triangle_3 &abc) -> squared_distance_t
 
auto squaredDistanceSegmentTriangle3D (const Segment_3 &sAB, const Triangle_3 &tABC) -> squared_distance_t
 
auto squaredDistanceTriangleTriangle3D (const Triangle_3 &triangleA, const Triangle_3 &triangleB) -> squared_distance_t
 
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::FT &dx, const Kernel::FT &dy, const Kernel::FT &dz, NoValidityCheck) -> std::unique_ptr< Geometry >
 
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 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 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 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)
 
template<int Dim>
auto selfIntersectsImpl (const LineString &line) -> bool
 
template<int Dim>
auto selfIntersectsImpl (const PolyhedralSurface &s, const SurfaceGraph &graph) -> bool
 
template<int Dim>
auto selfIntersectsImpl (const TriangulatedSurface &tin, const SurfaceGraph &graph) -> bool
 
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
 
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)
 
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...
 
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)
 
void handleLeakTest ()
 

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

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

Test if a PolyhedralSurface has a consistent orientation.

◆ hasConsistentOrientation3D() [2/2]

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

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 
)

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

Test if a 2D surface is oriented counter clockwise.

◆ isCounterClockWiseOriented() [2/3]

SFCGAL_API bool SFCGAL::algorithm::isCounterClockWiseOriented ( const Polygon )

Test if a 2D surface is oriented counter clockwise.

◆ isCounterClockWiseOriented() [3/3]

SFCGAL_API bool SFCGAL::algorithm::isCounterClockWiseOriented ( const Triangle )

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)

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

◆ length() [2/3]

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

Compute the 2D length for a GeometryCollection.

◆ length() [3/3]

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

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)

Compute the 3D length for a GeometryCollection.

◆ length3D() [3/3]

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

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