SFCGAL  1.3.0
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  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::Point_2< SFCGAL::KernelPoint_2
 
typedef CGAL::Triangle_2< SFCGAL::KernelTriangle_2
 
typedef CGAL::Polygon_2< SFCGAL::KernelPolygon_2
 
typedef CGAL::Point_3< SFCGAL::KernelPoint_3
 
typedef CGAL::Triangle_3< SFCGAL::KernelTriangle_3
 
typedef CGAL::Plane_3< SFCGAL::KernelPlane_3
 
typedef CGAL::Segment_3< KernelSegment_3
 
typedef CGAL::Polyhedron_3< KernelPolyhedron_3
 
typedef CGAL::Vector_2< KernelVector_2
 
typedef CGAL::Segment_2< KernelSegment_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
 
typedef CGAL::Node_visitor_refine_polyhedra< MarkedPolyhedron, Kernel, CGAL::Tag_true > Split_visitor
 
typedef std::vector< Kernel::Point_3 > Polyline_3
 
typedef CGAL::Polygon_with_holes_2< KernelPolygon_with_holes_2
 
typedef CGAL::Straight_skeleton_2< KernelStraight_skeleton_2
 

Enumerations

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

Functions

double area (const Geometry &g, NoValidityCheck)
 Compute the 2D area for a Geometry. More...
 
double area (const Geometry &g)
 Compute the 2D area for a Geometry. More...
 
Kernel::FT signedArea (const Triangle &g)
 Compute the 2D signed area for a Triangle. More...
 
Kernel::FT signedArea (const LineString &g)
 Compute the 2D signed area for a closed LineString. More...
 
double area (const Triangle &g)
 Returns Compute the 2D area for a Triangle. More...
 
double area (const Polygon &g)
 Returns Compute the 2D area for a Polygon. More...
 
double area (const GeometryCollection &g)
 Returns the 2D area for a GeometryCollection. More...
 
double area (const TriangulatedSurface &g)
 Returns the 2D area for a TriangulatedSurface. More...
 
double area (const PolyhedralSurface &g)
 Returns the 2D area for a TriangulatedSurface. More...
 
double area3D (const Geometry &g, NoValidityCheck)
 

– area3D

More...
 
double area3D (const Geometry &g)
 Returns 3D area for a Geometry. More...
 
double area3D (const Polygon &g)
 Returns 3D area for a Polygon. More...
 
double area3D (const Triangle &g)
 Returns the 3D area for a Triangle. More...
 
double area3D (const GeometryCollection &g)
 Returns the 3D area for a MultiPolygon. More...
 
double area3D (const PolyhedralSurface &g)
 Returns the 3D area for a PolyhedralSurface. More...
 
double area3D (const TriangulatedSurface &g)
 Returns the 3D area for a TriangulatedSurface. More...
 
std::auto_ptr< Geometrycollect (const Geometry &ga, const Geometry &gb)
 Returns an aggregate of ga and gb. More...
 
template<typename GeometryIterator >
std::auto_ptr< Geometrycollect (GeometryIterator begin, GeometryIterator end)
 Returns an aggregate of a list of geometries. More...
 
std::auto_ptr< GeometrycollectionExtractPolygons (std::auto_ptr< Geometry > g)
 
std::auto_ptr< GeometrycollectionHomogenize (std::auto_ptr< Geometry > coll)
 Given a geometry collection, returns the "simplest" representation of the contents. More...
 
std::auto_ptr< GeometrycollectionToMulti (std::auto_ptr< Geometry > coll)
 Given a geometry collection of triangles, TINs and polygons returns a MultiPolygon. More...
 
bool isConnected (const SurfaceGraph &graph)
 test if a surface is connected, the graph should be build beforehand More...
 
bool isClosed (const SurfaceGraph &graph)
 test if a surface is closed, the graph should be build beforehand More...
 
std::auto_ptr< GeometryconvexHull (const Geometry &g)
 Compute the 2D convex hull for a geometry. More...
 
std::auto_ptr< GeometryconvexHull3D (const Geometry &g)
 Compute the 3D convex hull for a geometry. More...
 
bool covers (const PrimitiveHandle< 3 > &, const PrimitiveHandle< 3 > &)
 
template<int Dim>
double segmentsLength (const GeometrySet< Dim > &gs)
 
double solidsVolume (const GeometrySet< 3 > &gs, bool planarSurface=false)
 
double surfacesArea (const GeometrySet< 2 > &gs)
 
double surfacesArea (const GeometrySet< 3 > &gs)
 
double solidsVolume (const GeometrySet< 2 > &)
 
template<int Dim>
bool equalLength (const GeometrySet< Dim > &a, const GeometrySet< Dim > &b, int dim)
 
template<int Dim>
bool covers (const detail::GeometrySet< Dim > &a, const detail::GeometrySet< Dim > &b)
 @ 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)
 
bool covers (const Geometry &ga, const Geometry &gb)
 Cover test on 2D geometries. More...
 
bool covers3D (const Geometry &ga, const Geometry &gb)
 Cover test on 3D geometries. More...
 
template<int Dim>
bool covers (const detail::PrimitiveHandle< Dim > &a, const detail::PrimitiveHandle< Dim > &b)
 @ More...
 
template<typename OutputIteratorType >
OutputIteratorType difference (const Point_2 &primitive, const PrimitiveHandle< 2 > &pb, OutputIteratorType out)
 
template<typename OutputIteratorType >
OutputIteratorType difference (const Segment_2 &primitive, const PrimitiveHandle< 2 > &pb, OutputIteratorType out)
 
template<typename OutputIteratorType >
OutputIteratorType difference (const PolygonWH_2 &primitive, const PrimitiveHandle< 2 > &pb, OutputIteratorType out)
 
template<typename OutputIteratorType >
OutputIteratorType difference (const Point_3 &primitive, const PrimitiveHandle< 3 > &pb, OutputIteratorType out)
 
template<typename OutputIteratorType >
OutputIteratorType difference (const Segment_3 &primitive, const PrimitiveHandle< 3 > &pb, OutputIteratorType out)
 
template<typename OutputIteratorType >
OutputIteratorType difference (const Triangle_3 &primitive, const PrimitiveHandle< 3 > &pb, OutputIteratorType out)
 
template<typename OutputIteratorType >
OutputIteratorType difference (const MarkedPolyhedron &primitive, const PrimitiveHandle< 3 > &pb, OutputIteratorType out)
 
template<typename Primitive , typename PrimitiveHandleConstIterator >
std::vector< Primitive > difference (const Primitive &primitive, PrimitiveHandleConstIterator begin, PrimitiveHandleConstIterator end)
 
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 > &)
 
std::auto_ptr< Geometrydifference (const Geometry &ga, const Geometry &gb, NoValidityCheck)
 Diffrence on 2D geometries. More...
 
std::auto_ptr< Geometrydifference (const Geometry &ga, const Geometry &gb)
 Difference on 2D geometries. More...
 
std::auto_ptr< Geometrydifference3D (const Geometry &ga, const Geometry &gb, NoValidityCheck)
 Difference on 3D geometries. More...
 
std::auto_ptr< Geometrydifference3D (const Geometry &ga, const Geometry &gb)
 Difference on 3D geometries. More...
 
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)
 
double distance (const Geometry &gA, const Geometry &gB, NoValidityCheck)
 Compute the distance between two Geometries. More...
 
double distance (const Geometry &gA, const Geometry &gB)
 Compute the distance between two Geometries. More...
 
double distancePointGeometry (const Point &gA, const Geometry &gB)
 dispatch distance from Point to Geometry More...
 
double distancePointPoint (const Point &gA, const Point &gB)
 distance between two Points More...
 
double distancePointLineString (const Point &gA, const LineString &gB)
 distance between a Point and a LineString More...
 
double distancePointPolygon (const Point &gA, const Polygon &gB)
 distance between a Point and a Polygon More...
 
double distancePointTriangle (const Point &gA, const Triangle &gB)
 distance between a Point and a Triangle More...
 
double distanceLineStringGeometry (const LineString &gA, const Geometry &gB)
 dispatch distance from LineString to Geometry More...
 
double distanceLineStringLineString (const LineString &gA, const LineString &gB)
 distance between two LineStrings More...
 
double distanceLineStringPolygon (const LineString &gA, const Polygon &gB)
 distance between a LineString and a Polygon More...
 
double distanceLineStringTriangle (const LineString &gA, const Triangle &gB)
 distance between a LineString and a Triangle More...
 
double distancePolygonGeometry (const Polygon &gA, const Geometry &gB)
 dispatch distance from Polygon to Geometry More...
 
double distancePolygonPolygon (const Polygon &gA, const Polygon &gB)
 distance between two Polygons More...
 
double distancePolygonTriangle (const Polygon &gA, const Triangle &gB)
 distance between a Polygon and a Triangle More...
 
double distanceTriangleGeometry (const Triangle &gA, const Geometry &gB)
 dispatch distance from a Triangle to a Geometry More...
 
const Circle boundingCircle (const Geometry &geom)
 
double distanceGeometryCollectionToGeometry (const Geometry &gA, const Geometry &gB)
 dispatch distance from a collection of geometry (gA) to a Geometry (gB) More...
 
double distancePointSegment (const Point &p, const Point &a, const Point &b)
 
double distanceSegmentSegment (const Point &a, const Point &b, const Point &c, const Point &d)
 
double distance3D (const Geometry &gA, const Geometry &gB, NoValidityCheck)
 Compute distance between two 3D Geometries. More...
 
double distance3D (const Geometry &gA, const Geometry &gB)
 dispatch distance between two Geometries More...
 
double distancePointGeometry3D (const Point &gA, const Geometry &gB)
 dispatch distance from Point to Geometry More...
 
double distancePointPoint3D (const Point &gA, const Point &gB)
 distance between two Points More...
 
double distancePointLineString3D (const Point &gA, const LineString &gB)
 distance between a Point and a LineString More...
 
double distancePointTriangle3D (const Point &gA, const Triangle &gB)
 distance between a Point and a Triangle More...
 
double distancePointPolygon3D (const Point &gA, const Polygon &gB)
 distance between a Point and a Triangle More...
 
double distancePointSolid3D (const Point &gA, const Solid &gB)
 distance between a Point and a Solid More...
 
double distanceLineStringGeometry3D (const LineString &gA, const Geometry &gB)
 dispatch distance between a LineString and a Geometry More...
 
double distanceLineStringLineString3D (const LineString &gA, const LineString &gB)
 distance between two LineStrings More...
 
double distanceLineStringTriangle3D (const LineString &gA, const Triangle &gB)
 distance between a LineString and a Triangle More...
 
double distanceLineStringPolygon3D (const LineString &gA, const Polygon &gB)
 distance between a LineString and a Polygon More...
 
double distanceLineStringSolid3D (const LineString &gA, const Solid &gB)
 distance between a LineString and a Solid More...
 
double distanceTriangleGeometry3D (const Triangle &gA, const Geometry &gB)
 dispatch distance between a Triangle and a Geometry More...
 
double distanceTriangleSolid3D (const Triangle &gA, const Solid &gB)
 distance between a Triangle and a Solid More...
 
double distancePolygonGeometry3D (const Polygon &gA, const Geometry &gB)
 dispatch distance between a Polygon and a Geometry More...
 
double distanceSolidGeometry3D (const Solid &gA, const Geometry &gB)
 dispatch distance between a Solid and a Geometry More...
 
double distanceSolidSolid3D (const Solid &gA, const Solid &gB)
 distance between two Solids More...
 
const Sphere boundingSphere (const Geometry &geom)
 
double distanceGeometryCollectionToGeometry3D (const Geometry &gA, const Geometry &gB)
 dispatch distance from a collection of geometry (gA) to a Geometry (gB) More...
 
double distancePointSegment3D (const Point &p, const Point &a, const Point &b)
 
squared_distance_t squaredDistancePointTriangle3D (const Point_3 &p, const Triangle_3 &abc)
 
double distancePointTriangle3D (const Point &p, const Point &a, const Point &b, const Point &c)
 
double distanceSegmentSegment3D (const Point &a, const Point &b, const Point &c, const Point &d)
 
squared_distance_t squaredDistanceSegmentTriangle3D (const Segment_3 &sAB, const Triangle_3 &tABC)
 
double distanceSegmentTriangle3D (const Point &sA, const Point &sB, const Point &tA, const Point &tB, const Point &tC)
 
squared_distance_t squaredDistanceTriangleTriangle3D (const Triangle_3 &triangleA, const Triangle_3 &triangleB)
 
double distanceTriangleTriangle3D (const Triangle &gA, const Triangle &gB)
 distance between two Triangles More...
 
LineStringextrude (const Point &g, const Kernel::Vector_3 &v)
 
PolyhedralSurfaceextrude (const LineString &g, const Kernel::Vector_3 &v)
 
Solidextrude (const Polygon &g, const Kernel::Vector_3 &v)
 
Solidextrude (const Triangle &g, const Kernel::Vector_3 &v)
 
MultiLineStringextrude (const MultiPoint &g, const Kernel::Vector_3 &v)
 
PolyhedralSurfaceextrude (const MultiLineString &g, const Kernel::Vector_3 &v)
 
MultiSolidextrude (const MultiPolygon &g, const Kernel::Vector_3 &v)
 
Solidextrude (const TriangulatedSurface &g, const Kernel::Vector_3 &v)
 
Solidextrude (const PolyhedralSurface &g, const Kernel::Vector_3 &v)
 
GeometryCollectionextrude (const GeometryCollection &g, const Kernel::Vector_3 &v)
 extrude each geometry in a GeometryCollection More...
 
std::auto_ptr< Geometryextrude (const Geometry &g, const Kernel::Vector_3 &v)
 extrude a Geometry by a given vector More...
 
std::auto_ptr< Geometryextrude (const Geometry &g, Kernel::FT dx, Kernel::FT dy, Kernel::FT dz, NoValidityCheck)
 extrude a Geometry with a direction More...
 
std::auto_ptr< Geometryextrude (const Geometry &g, Kernel::FT dx, Kernel::FT dy, Kernel::FT dz)
 extrude a Geometry with a direction More...
 
SFCGAL_API std::auto_ptr< Geometryextrude (const Geometry &g, const double &dx, const double &dy, const double &dz)
 extrude a Geometry with a direction 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 > &)
 
std::auto_ptr< Geometryintersection (const Geometry &ga, const Geometry &gb, NoValidityCheck)
 Intersection on 2D geometries. More...
 
std::auto_ptr< Geometryintersection (const Geometry &ga, const Geometry &gb)
 Intersection on 2D geometries. More...
 
std::auto_ptr< Geometryintersection3D (const Geometry &ga, const Geometry &gb, NoValidityCheck)
 Intersection on 3D geometries. More...
 
std::auto_ptr< Geometryintersection3D (const Geometry &ga, const Geometry &gb)
 Intersection on 3D geometries. More...
 
int numIntersectionPoints (const CGAL::Polygon_with_holes_2< Kernel > &poly)
 
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)
 
bool _intersects (const PrimitiveHandle< 2 > &pa, const PrimitiveHandle< 2 > &pb)
 
bool _intersects (const PrimitiveHandle< 3 > &pa, const PrimitiveHandle< 3 > &pb)
 
template<int Dim>
bool dispatch_intersects_sym (const PrimitiveHandle< Dim > &pa, const PrimitiveHandle< Dim > &pb)
 
template<int Dim>
bool intersects (const detail::PrimitiveHandle< Dim > &a, const detail::PrimitiveHandle< Dim > &b)
 Intersection test on a PrimitiveHandle. More...
 
template<int Dim>
bool intersects (const detail::GeometrySet< Dim > &a, const detail::GeometrySet< Dim > &b)
 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)
 
bool intersects (const Geometry &ga, const Geometry &gb)
 Robust intersection test on 2D geometries. More...
 
bool intersects3D (const Geometry &ga, const Geometry &gb)
 Robust intersection test on 3D geometries. More...
 
bool intersects (const Geometry &ga, const Geometry &gb, NoValidityCheck)
 Intersection test on 2D geometries. More...
 
bool intersects3D (const Geometry &ga, const Geometry &gb, NoValidityCheck)
 Intersection test on 3D geometries. More...
 
template<int Dim>
bool selfIntersectsImpl (const LineString &line)
 
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...
 
template<int Dim>
bool selfIntersectsImpl (const PolyhedralSurface &s, const SurfaceGraph &graph)
 
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...
 
template<int Dim>
bool selfIntersectsImpl (const TriangulatedSurface &tin, const SurfaceGraph &graph)
 
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 Validity isValid (const Point &p)
 
const Validity isValid (const LineString &l, const double &toleranceAbs)
 
const Validity isValid (const Polygon &p, const double &toleranceAbs)
 
const Validity isValid (const Triangle &t, const double &toleranceAbs)
 
const Validity isValid (const MultiLineString &ml, const double &toleranceAbs)
 
const Validity isValid (const MultiPolygon &mp, const double &toleranceAbs)
 
const Validity isValid (const GeometryCollection &gc, const double &toleranceAbs)
 
const Validity isValid (const TriangulatedSurface &tin, const SurfaceGraph &graph, const double &toleranceAbs)
 
const Validity isValid (const TriangulatedSurface &tin, const double &toleranceAbs)
 
const Validity isValid (const PolyhedralSurface &s, const SurfaceGraph &graph, const double &toleranceAbs)
 
const Validity isValid (const PolyhedralSurface &s, const double &toleranceAbs)
 
const Validity isValid (const Solid &solid, const double &toleranceAbs)
 
const Validity isValid (const MultiSolid &ms, const double &toleranceAbs)
 
const Validity 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...
 
double length (const LineString &g)
 Compute the 2D length for a LineString. More...
 
double length (const GeometryCollection &g)
 Compute the 2D length for a GeometryCollection. More...
 
double length (const Geometry &g)
 Compute the 2D length for a Geometry (0 for incompatible types) More...
 
double length3D (const LineString &g)
 Compute the 3D length for a LineString. More...
 
double length3D (const GeometryCollection &g)
 Compute the 3D length for a GeometryCollection. More...
 
double length3D (const Geometry &g)
 Compute the 2D length for a geometry. 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)
 
std::auto_ptr< GeometryminkowskiSum (const Geometry &gA, const Polygon &gB, NoValidityCheck)
 2D minkowski sum (p+q) More...
 
std::auto_ptr< GeometryminkowskiSum (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...
 
Polygon_2 approximate (const Offset_polygon_2 &polygon, const int &n=0)
 approximate an Offset_polygon_2 (filter null segments) More...
 
Polygon_with_holes_2 approximate (const Offset_polygon_with_holes_2 &polygon, const int &n=0)
 approximate an Offset More...
 
std::auto_ptr< MultiPolygonpolygonSetToMultiPolygon (const Offset_polygon_set_2 &polygonSet, const int &n)
 convert Offset_polygon_set_2 to MultiPolygon More...
 
Offset_polygon_2 circleToPolygon (const Kernel::Circle_2 &circle)
 helper to create a polygon from a circle More...
 
std::auto_ptr< MultiPolygonoffset (const Geometry &g, const double &r, NoValidityCheck)
 [experimental]compute polygon offset More...
 
std::auto_ptr< MultiPolygonoffset (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...
 
bool hasConsistentOrientation3D (const TriangulatedSurface &g)
 Test if a Geometry has a consistent orientation. More...
 
bool 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...
 
bool isCounterClockWiseOriented (const LineString &)
 Test if a 2D surface is oriented counter clockwise. More...
 
bool isCounterClockWiseOriented (const Triangle &)
 Test if a 2D surface is oriented counter clockwise. More...
 
bool 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, bool exact=true)
 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...
 
std::auto_ptr< MultiLineStringstraightSkeleton (const Geometry &g, bool autoOrientation, NoValidityCheck, bool innerOnly=false, bool outputDistanceInM=false)
 build a 2D straight skeleton for a Polygon More...
 
std::auto_ptr< MultiLineStringstraightSkeleton (const Geometry &g, bool autoOrientation=true, bool innerOnly=false, bool outputDistanceInM=false)
 build a 2D straight skeleton for a Polygon More...
 
std::auto_ptr< MultiLineStringstraightSkeleton (const Polygon &g, bool autoOrientation=true, bool innerOnly=false, bool outputDistanceInM=false)
 build a 2D straight skeleton for a Polygon More...
 
std::auto_ptr< MultiLineStringstraightSkeleton (const MultiPolygon &g, bool autoOrientation=true, bool innerOnly=false, bool outputDistanceInM=false)
 build a 2D straight skeleton for a Polygon More...
 
std::auto_ptr< MultiLineStringapproximateMedialAxis (const Geometry &g)
 build an approximate medial axis for a Polygon More...
 
std::auto_ptr< Geometrytesselate (const Geometry &, NoValidityCheck)
 Tesselate a geometry: this will triangulate surfaces (including polyhedral and solid's surfaces) and keep untouched points, lines, etc. More...
 
std::auto_ptr< Geometrytesselate (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, Kernel::FT dx, Kernel::FT dy, Kernel::FT dz)
 translate a geometry from a given vector More...
 
template<typename T >
std::ostream & operator<< (std::ostream &out, std::set< T * > &obs)
 
template<int Dim, class OutputIterator >
OutputIterator compute_bboxes (const detail::GeometrySet< Dim > &gs, OutputIterator out)
 
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 (Handle< 2 >, 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 (Handle< 2 > a, Handle< 2 > b)
 
void union_segment_segment (Handle< 3 > a, 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 (Handle< 2 >, 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 (Handle< 2 >, Handle< 2 >)
 
void union_surface_volume (Handle< 3 > a, Handle< 3 > b)
 
void union_volume_volume (Handle< 2 >, 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)
 
std::auto_ptr< Geometryunion_ (const Geometry &ga, const Geometry &gb, NoValidityCheck)
 Union on 2D geometries. More...
 
std::auto_ptr< Geometryunion_ (const Geometry &ga, const Geometry &gb)
 Union on 2D geometries. More...
 
std::auto_ptr< Geometryunion3D (const Geometry &ga, const Geometry &gb, NoValidityCheck)
 Union on 3D geometries. More...
 
std::auto_ptr< Geometryunion3D (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 > &)
 
const Kernel::FT volume (const Solid &g, NoValidityCheck)
 Computes the volume of a Solid. More...
 
const Kernel::FT volume (const Geometry &g)
 Computes the volume of a geometry. More...
 

Typedef Documentation

typedef CGAL::Box_intersection_d::Box_with_handle_d<double,3,MarkedPolyhedron::Halfedge_around_facet_const_circulator> SFCGAL::algorithm::FaceBboxBase
typedef CGAL::Plane_3< Kernel > SFCGAL::algorithm::Plane_3
typedef Kernel::Point_2 SFCGAL::algorithm::Point_2
typedef CGAL::Point_3< Kernel > SFCGAL::algorithm::Point_3
typedef CGAL::Polygon_2< Kernel > SFCGAL::algorithm::Polygon_2
typedef CGAL::Polygon_with_holes_2<Kernel> SFCGAL::algorithm::Polygon_with_holes_2
typedef CGAL::Polygon_with_holes_2<Kernel> SFCGAL::algorithm::PolygonWH_2
typedef CGAL::Polyhedron_3< Kernel > SFCGAL::algorithm::Polyhedron_3
typedef std::vector<Kernel::Point_3> SFCGAL::algorithm::Polyline_3
typedef CGAL::Segment_2<Kernel> SFCGAL::algorithm::Segment_2
typedef CGAL::Segment_3< Kernel > SFCGAL::algorithm::Segment_3
typedef CGAL::Node_visitor_refine_polyhedra<MarkedPolyhedron, Kernel, CGAL::Tag_true> SFCGAL::algorithm::Split_visitor
typedef CGAL::Straight_skeleton_2<Kernel> SFCGAL::algorithm::Straight_skeleton_2
typedef CGAL::Triangle_2< Kernel > SFCGAL::algorithm::Triangle_2
typedef CGAL::Triangle_3< Kernel > SFCGAL::algorithm::Triangle_3
typedef CGAL::Vector_2<Kernel> SFCGAL::algorithm::Vector_2
typedef CGAL::Vector_3<Kernel> SFCGAL::algorithm::Vector_3

Enumeration Type Documentation

Enumerator
PrimitivePoint 
PrimitiveSegment 
PrimitiveSurface 
PrimitiveVolume 
PrimitiveEmpty 

Function Documentation

void SFCGAL::algorithm::_intersection_solid_segment ( const PrimitiveHandle< 3 > &  pa,
const PrimitiveHandle< 3 > &  pb,
GeometrySet< 3 > &  output 
)
void SFCGAL::algorithm::_intersection_solid_solid ( const MarkedPolyhedron pa,
const MarkedPolyhedron pb,
GeometrySet< 3 > &  output 
)
void SFCGAL::algorithm::_intersection_solid_triangle ( const MarkedPolyhedron pa,
const CGAL::Triangle_3< Kernel > &  tri,
GeometrySet< 3 > &  output 
)
void SFCGAL::algorithm::_intersection_solid_triangle ( const MarkedPolyhedron pa,
const Triangle_3 tri,
detail::GeometrySet< 3 > &  output 
)
bool SFCGAL::algorithm::_intersects ( const PrimitiveHandle< 2 > &  pa,
const PrimitiveHandle< 2 > &  pb 
)
bool SFCGAL::algorithm::_intersects ( const PrimitiveHandle< 3 > &  pa,
const PrimitiveHandle< 3 > &  pb 
)
void SFCGAL::algorithm::appendDifference ( const PrimitiveHandle< 2 > &  pa,
CollisionMapper< 2 >::PrimitiveHandleSet::const_iterator  begin,
CollisionMapper< 2 >::PrimitiveHandleSet::const_iterator  end,
GeometrySet< 2 > &  output 
)
void SFCGAL::algorithm::appendDifference ( const PrimitiveHandle< 3 > &  pa,
CollisionMapper< 3 >::PrimitiveHandleSet::const_iterator  begin,
CollisionMapper< 3 >::PrimitiveHandleSet::const_iterator  end,
GeometrySet< 3 > &  output 
)
Polygon_2 SFCGAL::algorithm::approximate ( const Offset_polygon_2 &  polygon,
const int &  n = 0 
)

approximate an Offset_polygon_2 (filter null segments)

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

approximate an Offset

const Circle SFCGAL::algorithm::boundingCircle ( const Geometry geom)
const Sphere SFCGAL::algorithm::boundingSphere ( const Geometry geom)
Offset_polygon_2 SFCGAL::algorithm::circleToPolygon ( const Kernel::Circle_2 &  circle)

helper to create a polygon from a circle

SFCGAL_API std::auto_ptr< Geometry > SFCGAL::algorithm::collectionExtractPolygons ( std::auto_ptr< Geometry g)
SFCGAL_API std::auto_ptr< Geometry > SFCGAL::algorithm::collectionToMulti ( std::auto_ptr< Geometry coll)

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

Warning
Ownership is taken from the parameter
template<int Dim>
void SFCGAL::algorithm::collectPrimitives ( const typename HandledBox< Dim >::Vector &  boxes,
detail::GeometrySet< Dim > &  output 
)
template<typename TriangleOutputIteratorType >
TriangleOutputIteratorType SFCGAL::algorithm::collidingTriangles ( const FaceSegmentCollide::CollisionVector collisions,
TriangleOutputIteratorType  out 
)
template<int Dim, class OutputIterator >
OutputIterator SFCGAL::algorithm::compute_bboxes ( const detail::GeometrySet< Dim > &  gs,
OutputIterator  out 
)
bool SFCGAL::algorithm::covers ( const PrimitiveHandle< 3 > &  ,
const PrimitiveHandle< 3 > &   
)
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

template bool SFCGAL::algorithm::covers< 2 > ( const GeometrySet< 2 > &  a,
const GeometrySet< 2 > &  b 
)
template bool SFCGAL::algorithm::covers< 3 > ( const GeometrySet< 3 > &  a,
const GeometrySet< 3 > &  b 
)
template<typename OutputIteratorType >
OutputIteratorType SFCGAL::algorithm::difference ( const Point_2 primitive,
const PrimitiveHandle< 2 > &  pb,
OutputIteratorType  out 
)
template<typename OutputIteratorType >
OutputIteratorType SFCGAL::algorithm::difference ( const Segment_2 primitive,
const PrimitiveHandle< 2 > &  pb,
OutputIteratorType  out 
)
template<typename PointOutputIteratorType >
PointOutputIteratorType SFCGAL::algorithm::difference ( const Point_2 a,
const Point_2 b,
PointOutputIteratorType  out 
)
template<typename PointOutputIteratorType >
PointOutputIteratorType SFCGAL::algorithm::difference ( const Point_2 a,
const Segment_2 b,
PointOutputIteratorType  out 
)
template<typename OutputIteratorType >
OutputIteratorType SFCGAL::algorithm::difference ( const PolygonWH_2 primitive,
const PrimitiveHandle< 2 > &  pb,
OutputIteratorType  out 
)
template<typename PointOutputIteratorType >
PointOutputIteratorType SFCGAL::algorithm::difference ( const Point_2 a,
const PolygonWH_2 b,
PointOutputIteratorType  out 
)
template<typename PointOutputIteratorType >
PointOutputIteratorType SFCGAL::algorithm::difference ( const Point_2 ,
const NoVolume ,
PointOutputIteratorType  out 
)
template<typename OutputIteratorType >
OutputIteratorType SFCGAL::algorithm::difference ( const Point_3 primitive,
const PrimitiveHandle< 3 > &  pb,
OutputIteratorType  out 
)
template<typename SegmentOutputIteratorType >
SegmentOutputIteratorType SFCGAL::algorithm::difference ( const Segment_2 ,
const NoVolume ,
SegmentOutputIteratorType  out 
)
template<typename SurfaceOutputIteratorType >
SurfaceOutputIteratorType SFCGAL::algorithm::difference ( const PolygonWH_2 ,
const NoVolume ,
SurfaceOutputIteratorType  out 
)
template<typename PointOutputIteratorType >
PointOutputIteratorType SFCGAL::algorithm::difference ( const Point_3 a,
const Point_3 b,
PointOutputIteratorType  out 
)
template<typename OutputIteratorType >
OutputIteratorType SFCGAL::algorithm::difference ( const Segment_3 primitive,
const PrimitiveHandle< 3 > &  pb,
OutputIteratorType  out 
)
template<typename PointOutputIteratorType >
PointOutputIteratorType SFCGAL::algorithm::difference ( const Point_3 a,
const Segment_3 b,
PointOutputIteratorType  out 
)
template<typename PointOutputIteratorType >
PointOutputIteratorType SFCGAL::algorithm::difference ( const Point_3 a,
const Triangle_3 b,
PointOutputIteratorType  out 
)
template<typename PointOutputIteratorType >
PointOutputIteratorType SFCGAL::algorithm::difference ( const Point_3 a,
const MarkedPolyhedron b,
PointOutputIteratorType  out 
)
template<typename OutputIteratorType >
OutputIteratorType SFCGAL::algorithm::difference ( const Triangle_3 primitive,
const PrimitiveHandle< 3 > &  pb,
OutputIteratorType  out 
)
template<typename SegmentType , typename SegmentOrSurfaceType , typename SegmentOutputIteratorType >
SegmentOutputIteratorType SFCGAL::algorithm::difference ( const SegmentType &  a,
const SegmentOrSurfaceType &  b,
SegmentOutputIteratorType  out 
)
template<typename OutputIteratorType >
OutputIteratorType SFCGAL::algorithm::difference ( const MarkedPolyhedron primitive,
const PrimitiveHandle< 3 > &  pb,
OutputIteratorType  out 
)
template<typename Primitive , typename PrimitiveHandleConstIterator >
std::vector< Primitive > SFCGAL::algorithm::difference ( const Primitive &  primitive,
PrimitiveHandleConstIterator  begin,
PrimitiveHandleConstIterator  end 
)
template<typename SegmentOutputIteratorType >
SegmentOutputIteratorType SFCGAL::algorithm::difference ( const Segment_2 segment,
const PolygonWH_2 polygon,
SegmentOutputIteratorType  out 
)
template<typename OutputIteratorType >
OutputIteratorType SFCGAL::algorithm::difference ( const Triangle_3 p,
const Triangle_3 q,
OutputIteratorType  out 
)
template<typename VolumeOutputIteratorType >
VolumeOutputIteratorType SFCGAL::algorithm::difference ( const MarkedPolyhedron a,
const MarkedPolyhedron b,
VolumeOutputIteratorType  out 
)
template<typename SegmentOutputIteratorType >
SegmentOutputIteratorType SFCGAL::algorithm::difference ( const Segment_3 segment,
const MarkedPolyhedron polyhedron,
SegmentOutputIteratorType  out 
)
template<typename TriangleOutputIteratorType >
TriangleOutputIteratorType SFCGAL::algorithm::difference ( const Triangle_3 triangle,
const MarkedPolyhedron polyhedron,
TriangleOutputIteratorType  out 
)
template<typename PolygonOutputIteratorType >
PolygonOutputIteratorType SFCGAL::algorithm::difference ( const PolygonWH_2 a,
const PolygonWH_2 b,
PolygonOutputIteratorType  out 
)
template void SFCGAL::algorithm::difference< 2 > ( const GeometrySet< 2 > &  a,
const GeometrySet< 2 > &  b,
GeometrySet< 2 > &   
)
template void SFCGAL::algorithm::difference< 3 > ( const GeometrySet< 3 > &  a,
const GeometrySet< 3 > &  b,
GeometrySet< 3 > &   
)
template<int Dim>
void SFCGAL::algorithm::dispatch_intersection_sym ( const PrimitiveHandle< Dim > &  pa,
const PrimitiveHandle< Dim > &  pb,
GeometrySet< Dim > &  output 
)
template<int Dim>
bool SFCGAL::algorithm::dispatch_intersects_sym ( const PrimitiveHandle< Dim > &  pa,
const PrimitiveHandle< Dim > &  pb 
)
bool SFCGAL::algorithm::do_intersect ( const Point_2 point,
const PolygonWH_2 polygon 
)
inline
template<int Dim>
bool SFCGAL::algorithm::equalLength ( const GeometrySet< Dim > &  a,
const GeometrySet< Dim > &  b,
int  dim 
)
LineString * SFCGAL::algorithm::extrude ( const Point g,
const Kernel::Vector_3 &  v 
)
PolyhedralSurface * SFCGAL::algorithm::extrude ( const LineString g,
const Kernel::Vector_3 &  v 
)
Solid * SFCGAL::algorithm::extrude ( const Polygon g,
const Kernel::Vector_3 &  v 
)
Solid * SFCGAL::algorithm::extrude ( const Triangle g,
const Kernel::Vector_3 &  v 
)
MultiLineString * SFCGAL::algorithm::extrude ( const MultiPoint g,
const Kernel::Vector_3 &  v 
)
PolyhedralSurface * SFCGAL::algorithm::extrude ( const MultiLineString g,
const Kernel::Vector_3 &  v 
)
MultiSolid * SFCGAL::algorithm::extrude ( const MultiPolygon g,
const Kernel::Vector_3 &  v 
)
Solid * SFCGAL::algorithm::extrude ( const TriangulatedSurface g,
const Kernel::Vector_3 &  v 
)
Warning
suppose that the TriangulatedSurface is connected
Todo:
take orientation in account
Solid * SFCGAL::algorithm::extrude ( const PolyhedralSurface g,
const Kernel::Vector_3 &  v 
)
Warning
doesn't take orientation in account
Todo:
take orientation in account
GeometryCollection * SFCGAL::algorithm::extrude ( const GeometryCollection g,
const Kernel::Vector_3 &  v 
)

extrude each geometry in a GeometryCollection

template<typename PolygonOutputIteratorType >
PolygonOutputIteratorType SFCGAL::algorithm::fix_cgal_valid_polygon ( const PolygonWH_2 p,
PolygonOutputIteratorType  out 
)
PolygonWH_2 SFCGAL::algorithm::fix_sfs_valid_polygon ( const PolygonWH_2 p)
inline
SFCGAL_API void SFCGAL::algorithm::force2D ( Geometry g)

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

Warning
ignore empty geometries
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
void SFCGAL::algorithm::handleLeakTest ( )
SFCGAL_API bool SFCGAL::algorithm::hasConsistentOrientation3D ( const TriangulatedSurface g)

Test if a Geometry has a consistent orientation.

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

Test if a PolyhedralSurface has a consistent orientation.

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

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

CGAL::Object SFCGAL::algorithm::intersection ( const CGAL::Triangle_3< Kernel > &  a,
const CGAL::Triangle_3< Kernel > &  b 
)
void SFCGAL::algorithm::intersection ( const PrimitiveHandle< 3 > &  pa,
const PrimitiveHandle< 3 > &  pb,
GeometrySet< 3 > &  output,
dim_t< 3 >   
)
void SFCGAL::algorithm::intersection ( const PrimitiveHandle< 2 > &  pa,
const PrimitiveHandle< 2 > &  pb,
GeometrySet< 2 > &  output,
dim_t< 2 >   
)
template void SFCGAL::algorithm::intersection< 2 > ( const PrimitiveHandle< 2 > &  a,
const PrimitiveHandle< 2 > &  b,
GeometrySet< 2 > &   
)
template void SFCGAL::algorithm::intersection< 2 > ( const GeometrySet< 2 > &  a,
const GeometrySet< 2 > &  b,
GeometrySet< 2 > &   
)
template void SFCGAL::algorithm::intersection< 3 > ( const PrimitiveHandle< 3 > &  a,
const PrimitiveHandle< 3 > &  b,
GeometrySet< 3 > &   
)
template void SFCGAL::algorithm::intersection< 3 > ( const GeometrySet< 3 > &  a,
const GeometrySet< 3 > &  b,
GeometrySet< 3 > &   
)
template bool SFCGAL::algorithm::intersects< 2 > ( const GeometrySet< 2 > &  a,
const GeometrySet< 2 > &  b 
)
template bool SFCGAL::algorithm::intersects< 2 > ( const PrimitiveHandle< 2 > &  a,
const PrimitiveHandle< 2 > &  b 
)
template bool SFCGAL::algorithm::intersects< 3 > ( const GeometrySet< 3 > &  a,
const GeometrySet< 3 > &  b 
)
template bool SFCGAL::algorithm::intersects< 3 > ( const PrimitiveHandle< 3 > &  a,
const PrimitiveHandle< 3 > &  b 
)
SFCGAL_API bool SFCGAL::algorithm::isCounterClockWiseOriented ( const LineString ls)

Test if a 2D surface is oriented counter clockwise.

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

Test if a 2D surface is oriented counter clockwise.

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

Test if a 2D surface is oriented counter clockwise.

bool SFCGAL::algorithm::isHoleOf ( const Polygon_2 hole,
const Polygon_2 poly 
)
inline
const Validity SFCGAL::algorithm::isValid ( const Point p)
Note
empty geometries are valid, but the test is only performed in the interface function in individual functions for implementation, an assertion !empty is present for this reason
const Validity SFCGAL::algorithm::isValid ( const LineString l,
const double &  toleranceAbs 
)
const Validity SFCGAL::algorithm::isValid ( const Polygon p,
const double &  toleranceAbs 
)
const Validity SFCGAL::algorithm::isValid ( const Triangle t,
const double &  toleranceAbs 
)
const Validity SFCGAL::algorithm::isValid ( const MultiLineString ml,
const double &  toleranceAbs 
)
const Validity SFCGAL::algorithm::isValid ( const MultiPolygon mp,
const double &  toleranceAbs 
)
const Validity SFCGAL::algorithm::isValid ( const GeometryCollection gc,
const double &  toleranceAbs 
)
const Validity SFCGAL::algorithm::isValid ( const TriangulatedSurface tin,
const SurfaceGraph graph,
const double &  toleranceAbs 
)
const Validity SFCGAL::algorithm::isValid ( const TriangulatedSurface tin,
const double &  toleranceAbs 
)
const Validity SFCGAL::algorithm::isValid ( const PolyhedralSurface s,
const SurfaceGraph graph,
const double &  toleranceAbs 
)
const Validity SFCGAL::algorithm::isValid ( const PolyhedralSurface s,
const double &  toleranceAbs 
)
const Validity SFCGAL::algorithm::isValid ( const Solid solid,
const double &  toleranceAbs 
)
const Validity SFCGAL::algorithm::isValid ( const MultiSolid ms,
const double &  toleranceAbs 
)
SFCGAL_API double SFCGAL::algorithm::length ( const LineString g)

Compute the 2D length for a LineString.

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

Compute the 2D length for a GeometryCollection.

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

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

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

Compute the 3D length for a LineString.

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

Compute the 3D length for a GeometryCollection.

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
SFCGAL_API void SFCGAL::algorithm::makeConsistentOrientation3D ( TriangulatedSurface g)

Try to make consistent orientation in a TriangulatedSurface.

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

Make valid 2D orientation.

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

Make valid 2D orientation.

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

Make valid 2D orientation.

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

dispatch gA+gB sum

void SFCGAL::algorithm::minkowskiSum ( const Point gA,
const Polygon_2 gB,
Polygon_set_2 &  polygonSet 
)
void SFCGAL::algorithm::minkowskiSum ( const LineString gA,
const Polygon_2 gB,
Polygon_set_2 &  polygonSet 
)
void SFCGAL::algorithm::minkowskiSum ( const Polygon gA,
const Polygon_2 gB,
Polygon_set_2 &  polygonSet 
)
void SFCGAL::algorithm::minkowskiSum ( const Solid gA,
const Polygon_2 gB,
Polygon_set_2 &  polygonSet 
)
void SFCGAL::algorithm::minkowskiSumCollection ( const Geometry gA,
const Polygon_2 gB,
Polygon_set_2 &  polygonSet 
)
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.

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
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
int SFCGAL::algorithm::numIntersectionPoints ( const CGAL::Polygon_with_holes_2< Kernel > &  poly)
void SFCGAL::algorithm::offset ( const Geometry g,
const double &  radius,
Offset_polygon_set_2 &  polygonSet 
)

dispatch a geometry

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

offset for a Point

build Point offset

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

offset for a LineString

build LineString offset

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

offset for a Polygon

void SFCGAL::algorithm::offsetCollection ( const Geometry g,
const double &  radius,
Offset_polygon_set_2 &  polygonSet 
)
template<typename T >
std::ostream& SFCGAL::algorithm::operator<< ( std::ostream &  out,
std::set< T * > &  obs 
)
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.

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

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

Warning
result is rounded to double if exact is false (avoid huge expression tree)
std::auto_ptr< MultiPolygon > SFCGAL::algorithm::polygonSetToMultiPolygon ( const Offset_polygon_set_2 &  polygonSet,
const int &  n 
)

convert Offset_polygon_set_2 to MultiPolygon

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

difference post processing

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

intersection post processing

void SFCGAL::algorithm::post_intersection ( const GeometrySet< 3 > &  input,
GeometrySet< 3 > &  output 
)
template<int Dim>
double SFCGAL::algorithm::segmentsLength ( const GeometrySet< Dim > &  gs)
template<int Dim>
bool SFCGAL::algorithm::selfIntersectsImpl ( const LineString line)
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
template<int Dim>
bool SFCGAL::algorithm::selfIntersectsImpl ( const PolyhedralSurface s,
const SurfaceGraph graph 
)
template<int Dim>
bool SFCGAL::algorithm::selfIntersectsImpl ( const TriangulatedSurface tin,
const SurfaceGraph graph 
)
double SFCGAL::algorithm::solidsVolume ( const GeometrySet< 3 > &  gs,
bool  planarSurface = false 
)
double SFCGAL::algorithm::solidsVolume ( const GeometrySet< 2 > &  )
squared_distance_t SFCGAL::algorithm::squaredDistancePointTriangle3D ( const Point_3 p,
const Triangle_3 abc 
)
squared_distance_t SFCGAL::algorithm::squaredDistanceSegmentTriangle3D ( const Segment_3 sAB,
const Triangle_3 tABC 
)
squared_distance_t SFCGAL::algorithm::squaredDistanceTriangleTriangle3D ( const Triangle_3 triangleA,
const Triangle_3 triangleB 
)
double SFCGAL::algorithm::surfacesArea ( const GeometrySet< 2 > &  gs)
double SFCGAL::algorithm::surfacesArea ( const GeometrySet< 3 > &  gs)
SFCGAL_API void SFCGAL::algorithm::translate ( Geometry g,
const Kernel::Vector_3 &  v 
)

translate a geometry from a given vector

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

translate a geometry from a given vector

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

translate a geometry from a given vector

Todo:
unittest
template<class Handle >
void SFCGAL::algorithm::union_point_point ( Handle  a,
Handle  b 
)
template<class Handle >
void SFCGAL::algorithm::union_point_segment ( Handle  a,
Handle  b 
)
void SFCGAL::algorithm::union_point_surface ( Handle< 2 >  a,
Handle< 2 >  b 
)
void SFCGAL::algorithm::union_point_surface ( Handle< 3 >  a,
Handle< 3 >  b 
)
void SFCGAL::algorithm::union_point_volume ( Handle< 2 >  ,
Handle< 2 >   
)
void SFCGAL::algorithm::union_point_volume ( Handle< 3 >  a,
Handle< 3 >  b 
)
template<int Dim>
void SFCGAL::algorithm::union_segment_segment ( Handle< Dim >  a,
Handle< Dim >  b 
)
void SFCGAL::algorithm::union_segment_segment ( Handle< 2 >  a,
Handle< 2 >  b 
)
void SFCGAL::algorithm::union_segment_segment ( Handle< 3 >  a,
Handle< 3 >  b 
)
void SFCGAL::algorithm::union_segment_surface ( Handle< 2 >  a,
Handle< 2 >  b 
)
void SFCGAL::algorithm::union_segment_surface ( Handle< 3 >  a,
Handle< 3 >  b 
)
void SFCGAL::algorithm::union_segment_volume ( Handle< 2 >  ,
Handle< 2 >   
)
void SFCGAL::algorithm::union_segment_volume ( Handle< 3 >  a,
Handle< 3 >  b 
)
void SFCGAL::algorithm::union_surface_surface ( Handle< 2 >  a,
Handle< 2 >  b 
)
void SFCGAL::algorithm::union_surface_surface ( Handle< 3 >  a,
Handle< 3 >  b 
)
void SFCGAL::algorithm::union_surface_volume ( Handle< 2 >  ,
Handle< 2 >   
)
void SFCGAL::algorithm::union_surface_volume ( Handle< 3 >  a,
Handle< 3 >  b 
)
void SFCGAL::algorithm::union_volume_volume ( Handle< 2 >  ,
Handle< 2 >   
)
void SFCGAL::algorithm::union_volume_volume ( Handle< 3 >  a,
Handle< 3 >  b 
)