|
SFCGAL
2.3.0
|
Compute the topological boundary of a Geometry. More...
Namespaces | |
| detail | |
Classes | |
| class | BoundaryVisitor |
| Compute the boundary for a Geometry. More... | |
| class | Buffer3D |
| Computes a 3D buffer around a Point or LineString. More... | |
| struct | ChamferOptions |
| Options for chamfer/fillet operations. More... | |
| class | Closure |
| Result type for closure check. More... | |
| class | ConsistentOrientationBuilder |
| Make orientation consistent in a triangle set. More... | |
| class | EqualityStrictness |
| Manages how geometry comparison will be handled. More... | |
| struct | Frame |
| Right-handed orthonormal basis at a point on the sweep path. More... | |
| struct | NoValidityCheck |
| Tag used for variants of algorithm that do not do validity check. More... | |
| struct | Plane3DInexactUnsafe |
| struct | RoofParameters |
| Parameters for roof generation algorithms. More... | |
| struct | SimplificationStopPredicate |
| Stop predicate for surface mesh simplification. More... | |
| class | SurfaceGraph |
| Represents a polyhedral surface as a graph where faces are nodes and egde are graph edges. More... | |
| struct | SweepOptions |
| Options for controlling sweep operation behavior. More... | |
| class | WeightedCentroid |
| Holds weighted data used to compute a centroid for a Geometry. More... | |
Typedefs | |
| using | Point_3 = Kernel::Point_3 |
| using | Vector_3 = Kernel::Vector_3 |
| using | Surface_mesh_3 = SFCGAL::Surface_mesh_3 |
| using | FaceIndex = Surface_mesh_3::Face_index |
| using | HalfedgeIndex = Surface_mesh_3::Halfedge_index |
| using | VertexIndex = Surface_mesh_3::Vertex_index |
| using | Straight_skeleton_2 = CGAL::Straight_skeleton_2< Kernel > |
| using | Arrangement_2 = CGAL::Arrangement_2< CGAL::Arr_segment_traits_2< Kernel >> |
| template<class T > | |
| using | SHARED_PTR = boost::shared_ptr< T > |
Enumerations | |
| enum | ChamferType : std::uint8_t { ChamferType::FLAT, ChamferType::ROUND } |
| Type of chamfer operation. More... | |
| enum | PartitionAlgorithm { y_monotone, approx_convex, greene_approx_convex, optimal_convex } |
| Partition algorithm available. More... | |
| enum | RoofType : std::uint8_t { RoofType::FLAT, RoofType::HIPPED, RoofType::SKILLION, RoofType::GABLE } |
| Enumeration of roof types supported by the roof generation algorithms. More... | |
| enum | SimplificationStrategy : unsigned char { SimplificationStrategy::EDGE_LENGTH } |
| Strategy for surface mesh simplification cost and placement. More... | |
Functions | |
| auto | optimalAlphaShapes (const Geometry &geometry, bool allowHoles=false, size_t nbComponents=1) -> std::unique_ptr< Geometry > |
| Compute the optimal 2D alpha shapes for a geometry https://doc.cgal.org/latest/Alpha_shapes_2/index.html#Chapter_2D_Alpha_Shapes. More... | |
| auto | alphaShapes (const Geometry &geometry, double alpha=1, bool allowHoles=false) -> std::unique_ptr< Geometry > |
| Compute the 2D alpha shapes for a geometry https://doc.cgal.org/latest/Alpha_shapes_2/index.html#Chapter_2D_Alpha_Shapes. More... | |
| auto | area (const Geometry &geom, [[maybe_unused]] NoValidityCheck noCheck) -> double |
| auto | area (const Geometry &geom) -> double |
| Compute the 2D area of a Geometry. More... | |
| auto | signedArea (const Triangle &triangle) -> Kernel::FT |
| Computes the 2D signed area of a Triangle. More... | |
| auto | signedArea (const LineString &lineString) -> Kernel::FT |
| Computes the 2D signed area of a LineString. More... | |
| auto | area (const Triangle &triangle) -> double |
| Computes the 2D area of a Triangle. More... | |
| auto | area (const Polygon &polygon) -> double |
| Computes the 2D area of a Polygon. More... | |
| auto | area (const GeometryCollection &collection) -> double |
| Computes the 2D area of a GeometryCollection. More... | |
| auto | area (const TriangulatedSurface &tin) -> double |
| Computes the 2D area of a TriangulatedSurface. More... | |
| auto | area (const PolyhedralSurface &surface) -> double |
| Computes the 2D area of a PolyhedralSurface. More... | |
| auto | area3D (const Geometry &geom, [[maybe_unused]] NoValidityCheck noCheck) -> double |
| auto | area3D (const Geometry &geom) -> double |
| Compute the 3D area of a Geometry. More... | |
| auto | area3D (const Polygon &polygon) -> double |
| Compute the 3D area of a Polygon. More... | |
| auto | area3D (const Triangle &triangle) -> double |
| Compute the 3D area of a Triangle. More... | |
| auto | area3D (const GeometryCollection &collection) -> double |
| Compute the 3D area of a GeometryCollection. More... | |
| auto | area3D (const PolyhedralSurface &surface) -> double |
| Compute the 3D area of a PolyhedralSurface. More... | |
| auto | area3D (const TriangulatedSurface &tin) -> double |
| Compute the 3D area of a TriangulatedSurface. More... | |
| SFCGAL_API auto | area (const Geometry &geom, NoValidityCheck noCheck) -> double |
| Compute the planar (2D) area of a Geometry without performing validity checks. More... | |
| SFCGAL_API auto | area3D (const Geometry &geom, NoValidityCheck noCheck) -> double |
| Compute the 3D surface area of a geometry, dispatching by geometry type. More... | |
| template<typename GeometryIterator > | |
| std::unique_ptr< Geometry > | collect (GeometryIterator begin, GeometryIterator end) |
| Returns an aggregate of a list of geometries. More... | |
| template<int Dim> | |
| auto | covers (const detail::PrimitiveHandle< Dim > &handle1, const detail::PrimitiveHandle< Dim > &handle2) -> bool |
| Cover test on PrimitiveHandle objects. More... | |
| auto | distance (const Geometry &geometry1, const Geometry &geometry2) -> double |
| Compute 2D distance between two geometries. More... | |
| SFCGAL_API auto | distance (const Geometry &geometry1, const Geometry &geometry2, NoValidityCheck noCheck) -> double |
| Dispatch distance between two Geometries. More... | |
| auto | distance3D (const Geometry &gA, const Geometry &gB) -> double |
| Compute 3D distance between two geometries. More... | |
| SFCGAL_API auto | distance3D (const Geometry &geometry1, const Geometry &geometry2, NoValidityCheck noCheck) -> double |
| Dispatch 3D distance between two Geometries. More... | |
| auto | almostEqual (const Geometry &geomA, const Geometry &geomB, double tolerance, EqualityStrictness strictness) -> bool |
| end of private section More... | |
| SFCGAL_API auto | extrude (const Geometry &inputGeom, const Kernel::FT &displacementX, const Kernel::FT &displacementY, const Kernel::FT &displacementZ, NoValidityCheck &nvc) -> std::unique_ptr< Geometry > |
| Extrude geometry without validity check. 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 | forceMeasured (Geometry &geometry, const double &defaultM=0) |
| force a 2D or M geometry to be M (replace undefined M by defaultM, existing M values remains unchanged) More... | |
| void | extractPoints (const Geometry &geometry, std::vector< Point > &points) |
| Extract all points from a geometry using GetPointsVisitor. More... | |
| auto | findInsertionPosition (const LineString &lineString, const Point &point) -> size_t |
| Find the insertion position for a point on a linestring. More... | |
| auto | insertPointIntoLineString (const LineString &lineString, const Point &point, size_t position) -> std::unique_ptr< LineString > |
| Insert a point into a linestring at a specific position. More... | |
| auto | insertPointsIntoLineString (const LineString &lineString, const std::vector< Point > &points, double tolerance) -> std::unique_ptr< LineString > |
| Insert points into a linestring based on distance tolerance. More... | |
| auto | insertPointsWithinTolerance (const Geometry &baseGeometry, const Geometry &sourceGeometry, double tolerance=EPSILON) -> std::unique_ptr< Geometry > |
| Inserts points from sourceGeometry into baseGeometry within a given tolerance. More... | |
| template<int Dim> | |
| auto | intersection (const detail::GeometrySet< Dim > &geometrySet1, const detail::GeometrySet< Dim > &geometrySet2, detail::GeometrySet< Dim > &result) -> void |
| Intersection between two geometry sets. More... | |
| template<int Dim> | |
| auto | intersection (const detail::PrimitiveHandle< Dim > &primitiveHandle1, const detail::PrimitiveHandle< Dim > &primitiveHandle2, detail::GeometrySet< Dim > &result) -> void |
| Intersection between two primitive handles. More... | |
| auto | isClosed (const Geometry &geometry) -> Closure |
| Check if a geometry is closed. More... | |
| auto | length (const LineString &g) -> double |
| Compute the 2D length for a LineString. More... | |
| auto | length (const GeometryCollection &g) -> double |
| Compute the 2D length for a GeometryCollection. More... | |
| auto | length (const Geometry &g) -> double |
| Compute the 2D length for a Geometry (0 for incompatible types) More... | |
| auto | length3D (const LineString &g) -> double |
| Compute the 3D length for a LineString. More... | |
| auto | length3D (const GeometryCollection &g) -> double |
| Compute the 3D length for a GeometryCollection. More... | |
| auto | length3D (const Geometry &g) -> double |
| Compute the 3D length for a geometry. More... | |
| template<typename Kernel > | |
| auto | normal3D (const CGAL::Point_3< Kernel > &point1, const CGAL::Point_3< Kernel > &point2, const CGAL::Point_3< Kernel > &point3) -> CGAL::Vector_3< Kernel > |
| Returns the 3D normal to 3 consecutive points. More... | |
| template<typename Kernel > | |
| auto | normal3D (const LineString &lineString, bool exact=true) -> CGAL::Vector_3< Kernel > |
| Returns the 3D normal to a ring (supposed to be planar and closed). More... | |
| template<typename Kernel > | |
| auto | normal3D (const Polygon &polygon, bool exact=true) -> CGAL::Vector_3< Kernel > |
| Returns the 3D normal to a polygon (supposed to be planar). More... | |
| SFCGAL_API std::unique_ptr< MultiPolygon > | offset (const Geometry &geometry, const double &radius) |
| [experimental]compute polygon offset More... | |
| SFCGAL_API std::unique_ptr< MultiPolygon > | offset (const Geometry &geometry, const double &radius, NoValidityCheck) |
| [experimental]compute polygon offset More... | |
| auto | makeValidOrientation (CGAL::Polygon_2< Kernel > &polygon) -> void |
| Make valid 2D orientation. More... | |
| auto | makeValidOrientation (CGAL::Polygon_with_holes_2< Kernel > &polygon) -> void |
| Make valid 2D orientation. More... | |
| auto | makeValidOrientation (Polygon &polygon) -> void |
| Make valid 2D orientation. More... | |
| auto | makeConsistentOrientation3D (TriangulatedSurface &g) -> void |
| Try to make consistent orientation in a TriangulatedSurface. More... | |
| auto | partition_2 (const Geometry &geometry, PartitionAlgorithm algorithm, NoValidityCheck) -> std::unique_ptr< Geometry > |
| Compute the partition of a 2D polygon https://doc.cgal.org/latest/Partition_2/index.html#Chapter_2D_Polygon_Partitioning. More... | |
| auto | partition_2 (const Geometry &geometry, PartitionAlgorithm algorithm=y_monotone) -> std::unique_ptr< Geometry > |
| Compute the partition of a 2D polygon https://doc.cgal.org/latest/Partition_2/index.html#Chapter_2D_Polygon_Partitioning. More... | |
| template<typename Kernel > | |
| auto | hasPlane3D (const Polygon &polygon, CGAL::Point_3< Kernel > &pointA, CGAL::Point_3< Kernel > &pointB, CGAL::Point_3< Kernel > &pointC) -> bool |
| Test if a 3D plane can be extracted from a Polygon. More... | |
| template<typename Kernel > | |
| auto | hasPlane3D (const Polygon &polygon) -> bool |
| Test if a 3D plane can be extracted from a Polygon. More... | |
| template<typename Kernel > | |
| auto | plane3D (const Polygon &polygon, CGAL::Point_3< Kernel > &pointA, CGAL::Point_3< Kernel > &pointB, CGAL::Point_3< Kernel > &pointC) -> void |
| Get 3 non collinear points from a Polygon. More... | |
| template<typename Kernel > | |
| auto | plane3D (const Polygon &polygon) -> CGAL::Plane_3< Kernel > |
| Returns the oriented 3D plane of a polygon (supposed to be planar). More... | |
| template<typename Kernel > | |
| auto | plane3D (const Polygon &polygon, const Plane3DInexactUnsafe &) -> CGAL::Plane_3< Kernel > |
| Returns the oriented 3D plane of a polygon (supposed to be planar) - inexact version. More... | |
| template<typename Kernel > | |
| auto | plane3D (const Polygon &polygon, bool exact) -> CGAL::Plane_3< Kernel > |
| Returns the oriented 3D plane of a polygon (supposed to be planar). More... | |
| template<typename Kernel > | |
| auto | isPlane3D (const Geometry &geom, const double &toleranceAbs) -> bool |
| Test if all points of a geometry lie in the same plane. More... | |
| auto | extrudeGableRoof (const Polygon &polygon, double clippingHeight, double slopeAngle=45.0) -> std::unique_ptr< PolyhedralSurface > |
| Gable roof generation (Surface only). More... | |
| auto | extrudeSkillionRoof (const Polygon &polygon, double clippingHeight, size_t primaryEdgeIndex=0, double primaryAngle=30.0, double secondaryAngle=90.0) -> std::unique_ptr< PolyhedralSurface > |
| Skillion roof generation (Surface only). More... | |
| auto | generateRoof (const Polygon &footprint, const RoofParameters ¶ms) -> std::unique_ptr< Geometry > |
| Generate a roof using unified parameters. More... | |
| auto | generateRoof (const Polygon &footprint, const RoofParameters ¶ms, NoValidityCheck &nvc) -> std::unique_ptr< Geometry > |
| Generate a roof using unified parameters without validity check. More... | |
| void | rotate (Geometry &geometry, const Kernel::FT &angle) |
| Rotate a geometry in 2D around the origin (0,0) More... | |
| void | rotate (Geometry &geometry, const Kernel::FT &angle, const Point &origin) |
| Rotate a geometry in 2D around a specified point. More... | |
| void | rotate (Geometry &geometry, const Kernel::FT &angle, const Kernel::Vector_3 &axis, const Point &origin=Point(0, 0, 0)) |
| Rotate a geometry in 3D around a specified axis and origin. More... | |
| void | rotateX (Geometry &geometry, const Kernel::FT &angle) |
| Rotate a geometry around the X axis. More... | |
| void | rotateY (Geometry &geometry, const Kernel::FT &angle) |
| Rotate a geometry around the Y axis. More... | |
| void | rotateZ (Geometry &geometry, const Kernel::FT &angle) |
| Rotate a geometry around the Z axis. More... | |
| void | scale (Geometry &geometry, double scaleFactor) |
| Scale a geometry by a given factor. More... | |
| void | scale (Geometry &geometry, double sx, double sy, double sz=0.0) |
| Scale a geometry by different factors for each dimension. More... | |
| void | scale (Geometry &geometry, double sx, double sy, double sz, double cx, double cy, double cz) |
| Scale a geometry by different factors for each dimension around a center point. More... | |
| auto | simplify (const Geometry &geometry, double threshold, bool preserveTopology) -> std::unique_ptr< Geometry > |
| Main entry point for geometry simplification. More... | |
| auto | simplify (const Geometry &geometry, double threshold, bool preserveTopology, NoValidityCheck) -> std::unique_ptr< Geometry > |
| Simplifies a geometry using the CGAL algorithm https://doc.cgal.org/latest/Polyline_simplification_2/index.html. More... | |
| SFCGAL_API auto | split3D (const Geometry &geometry, const Point &planePoint, const Kernel::Vector_3 &planeNormal, bool closeGeometries=false) -> std::unique_ptr< GeometryCollection > |
| Split the given geometry with a plane defined by a point and a normal vector. More... | |
| auto | straightSkeleton (const Geometry &geom, bool autoOrientation, NoValidityCheck, bool innerOnly=false, bool outputDistanceInM=false, const double &toleranceAbs=EPSILON) -> std::unique_ptr< MultiLineString > |
| build a 2D straight skeleton for a Polygon More... | |
| auto | straightSkeleton (const Geometry &geom, bool autoOrientation=true, bool innerOnly=false, bool outputDistanceInM=false, const double &toleranceAbs=EPSILON) -> std::unique_ptr< MultiLineString > |
| build a 2D straight skeleton for a Polygon More... | |
| auto | straightSkeleton (const Polygon &geom, bool autoOrientation=true, bool innerOnly=false, bool outputDistanceInM=false, const double &toleranceAbs=EPSILON) -> std::unique_ptr< MultiLineString > |
| build a 2D straight skeleton for a Polygon More... | |
| auto | straightSkeleton (const MultiPolygon &geom, bool autoOrientation=true, bool innerOnly=false, bool outputDistanceInM=false, const double &toleranceAbs=EPSILON) -> std::unique_ptr< MultiLineString > |
| build a 2D straight skeleton for a Polygon More... | |
| auto | approximateMedialAxis (const Geometry &geom, bool projectToEdges=false) -> std::unique_ptr< MultiLineString > |
| build an approximate medial axis for a Polygon More... | |
| auto | straightSkeletonPartition (const Geometry &geom, bool autoOrientation=true) -> std::unique_ptr< PolyhedralSurface > |
| Build a 2D straight skeleton partition for a Geometry. More... | |
| auto | straightSkeletonPartition (const MultiPolygon &geom, bool autoOrientation=true) -> std::unique_ptr< PolyhedralSurface > |
| Build a 2D straight skeleton partition for a MultiPolygon. More... | |
| auto | straightSkeletonPartition (const Polygon &geom, bool autoOrientation=true) -> std::unique_ptr< PolyhedralSurface > |
| Build a 2D straight skeleton partition for a Polygon. More... | |
| auto | surfaceSimplification (const Geometry &geometry, const SimplificationStopPredicate &stopPredicate, SimplificationStrategy strategy) -> std::unique_ptr< Geometry > |
| Simplify a surface mesh using CGAL edge collapse algorithm. More... | |
| auto | surfaceSimplification (const Geometry &geometry, const SimplificationStopPredicate &stopPredicate, SimplificationStrategy strategy, NoValidityCheck noCheck) -> std::unique_ptr< Geometry > |
| Simplify a surface mesh using CGAL edge collapse algorithm (no validity check) More... | |
| auto | tessellate (const Geometry &g, NoValidityCheck) -> std::unique_ptr< Geometry > |
| Tessellate geometry without validity check. More... | |
| auto | tessellate (const Geometry &g) -> std::unique_ptr< Geometry > |
| Tessellate geometry. More... | |
| void | translate (Geometry &geometry, const Kernel::Vector_3 &vector) |
| translate a geometry from a given vector More... | |
| void | translate (Geometry &geometry, const Kernel::Vector_2 &vector) |
| translate a geometry from a given vector More... | |
| void | translate (Geometry &geometry, const Kernel::FT &dx, const Kernel::FT &dy, const Kernel::FT &dz) |
| translate a geometry from a given vector More... | |
| void | translate (Geometry &geometry, const double &dx, const double &dy, const double &dz) |
| translate a geometry from double-coordinates More... | |
| template<int Dim> | |
| void | union_ (const detail::GeometrySet< Dim > &geometrySet1, const detail::GeometrySet< Dim > &geometrySet2, detail::GeometrySet< Dim > &result) |
| Compute union of two GeometrySet objects. More... | |
| template<int Dim> | |
| void | union_ (const detail::PrimitiveHandle< Dim > &primitiveHandle1, const detail::PrimitiveHandle< Dim > &primitiveHandle2, detail::GeometrySet< Dim > &result) |
| Compute union of two PrimitiveHandle objects. More... | |
| auto | visibility (const Geometry &polygon, const Geometry &point) -> std::unique_ptr< Polygon > |
| build the visibility polygon of a Point inside a Polygon More... | |
| auto | visibility (const Geometry &polygon, const Geometry &point, NoValidityCheck) -> std::unique_ptr< Polygon > |
| build the visibility polygon of a Point inside a Polygon More... | |
| auto | visibility (const Geometry &polygon, const Geometry &pointA, const Geometry &pointB) -> std::unique_ptr< Polygon > |
| build the visibility polygon of the segment [pointA ; pointB] on a Polygon More... | |
| auto | visibility (const Geometry &polygon, const Geometry &pointA, const Geometry &pointB, NoValidityCheck) -> std::unique_ptr< Polygon > |
| build the visibility polygon of a Point inside a Polygon More... | |
| auto | volume (const PolyhedralSurface &surface, NoValidityCheck noValidityCheck=NoValidityCheck()) -> Kernel::FT |
| Calculate the volume of a closed PolyhedralSurface. More... | |
| auto | volume (const Solid &solid, NoValidityCheck noValidityCheck=NoValidityCheck()) -> Kernel::FT |
| Calculate the volume of a Solid. More... | |
| auto | volume (const Geometry &g) -> Kernel::FT |
| Calculate the volume of any geometry. More... | |
| using | InexactKernel = CGAL::Exact_predicates_inexact_constructions_kernel |
| using | Inexact_Point_3 = InexactKernel::Point_3 |
| using | Mesh = CGAL::Surface_mesh< Inexact_Point_3 > |
| using | ExactMesh = CGAL::Surface_mesh< Kernel::Point_3 > |
| using | EK_to_IK = CGAL::Cartesian_converter< Kernel, InexactKernel > |
| using | IK_to_EK = CGAL::Cartesian_converter< InexactKernel, Kernel > |
| template<typename T > | |
| std::function< WeightedCentroid(const T &, bool)> | weightedCentroidLambda |
| using | NoVolume = detail::NoVolume |
| using | MarkedPolyhedron = detail::MarkedPolyhedron |
| using | FaceBboxBase = CGAL::Box_intersection_d::Box_with_handle_d< double, 3, MarkedPolyhedron::Halfedge_around_facet_const_circulator > |
| using | Polyline_3 = std::vector< Kernel::Point_3 > |
| using | Traits = CGAL::Partition_traits_2< Kernel > |
| using | TPoint_2 = Traits::Point_2 |
| using | TPolygon_2 = Traits::Polygon_2 |
Compute the topological boundary of a Geometry.
Main algorithm namespace.
This visitor computes the boundary for various geometry types:
GeometryCollection handling is limited and not supported in the general, heterogeneous case.
The computed boundary is stored internally and returned via releaseBoundary().
| using SFCGAL::algorithm::Arrangement_2 = typedef CGAL::Arrangement_2<CGAL::Arr_segment_traits_2<Kernel>> |
| using SFCGAL::algorithm::EK_to_IK = typedef CGAL::Cartesian_converter<Kernel, InexactKernel> |
| using SFCGAL::algorithm::ExactMesh = typedef CGAL::Surface_mesh<Kernel::Point_3> |
| using SFCGAL::algorithm::FaceBboxBase = typedef CGAL::Box_intersection_d::Box_with_handle_d< double, 3, MarkedPolyhedron::Halfedge_around_facet_const_circulator> |
| using SFCGAL::algorithm::FaceIndex = typedef Surface_mesh_3::Face_index |
| using SFCGAL::algorithm::HalfedgeIndex = typedef Surface_mesh_3::Halfedge_index |
| using SFCGAL::algorithm::IK_to_EK = typedef CGAL::Cartesian_converter<InexactKernel, Kernel> |
| using SFCGAL::algorithm::Inexact_Point_3 = typedef InexactKernel::Point_3 |
| using SFCGAL::algorithm::InexactKernel = typedef CGAL::Exact_predicates_inexact_constructions_kernel |
| using SFCGAL::algorithm::MarkedPolyhedron = typedef detail::MarkedPolyhedron |
| using SFCGAL::algorithm::Mesh = typedef CGAL::Surface_mesh<Inexact_Point_3> |
| using SFCGAL::algorithm::NoVolume = typedef detail::NoVolume |
| using SFCGAL::algorithm::Point_3 = typedef Kernel::Point_3 |
| using SFCGAL::algorithm::Polyline_3 = typedef std::vector<Kernel::Point_3> |
| using SFCGAL::algorithm::SHARED_PTR = typedef boost::shared_ptr<T> |
| using SFCGAL::algorithm::Straight_skeleton_2 = typedef CGAL::Straight_skeleton_2<Kernel> |
| using SFCGAL::algorithm::Surface_mesh_3 = typedef SFCGAL::Surface_mesh_3 |
| using SFCGAL::algorithm::TPoint_2 = typedef Traits::Point_2 |
| using SFCGAL::algorithm::TPolygon_2 = typedef Traits::Polygon_2 |
| using SFCGAL::algorithm::Traits = typedef CGAL::Partition_traits_2<Kernel> |
| using SFCGAL::algorithm::Vector_3 = typedef Kernel::Vector_3 |
| typedef Surface_mesh_3::Vertex_index SFCGAL::algorithm::VertexIndex |
|
strong |
Type of chamfer operation.
A chamfer removes material along a sharp edge of a solid.
| Enumerator | |
|---|---|
| FLAT |
Flat chamfer: single planar bevel. |
| ROUND |
Rounded fillet: circular-arc surface (approximated) |
Partition algorithm available.
| Enumerator | |
|---|---|
| y_monotone |
Y Monotone Partition: https://doc.cgal.org/latest/Partition_2/index.html#secpartition_2_monotone |
| approx_convex |
Simple approximation algorithm of Hertel and Mehlhorn https://doc.cgal.org/latest/Partition_2/index.html#secpartition_2_convex |
| greene_approx_convex |
Sweep-line approximation algorithm of Greene https://doc.cgal.org/latest/Partition_2/index.html#secpartition_2_convex |
| optimal_convex |
Optimal convex partition https://doc.cgal.org/latest/Partition_2/index.html#secpartition_2_convex |
|
strong |
|
strong |
Strategy for surface mesh simplification cost and placement.
Defines the method used to calculate edge collapse cost and vertex placement during surface mesh simplification. Each strategy has different computational characteristics and memory requirements:
Advanced strategies require Eigen support and automatically convert between exact and inexact kernels for optimal performance. during surface mesh simplification. Advanced strategies require Eigen support.
| SFCGAL_API auto SFCGAL::algorithm::almostEqual | ( | const Geometry & | geomA, |
| const Geometry & | geomB, | ||
| double | tolerance, | ||
| EqualityStrictness | strictness = EqualityStrictness::allPointOrdered() |
||
| ) | -> bool |
end of private section
Equality operator.
| geomA | geometry to compare with |
| geomB | geometry to compare with |
| tolerance | allowed distance between same points. |
| strictness | will refer to EqualityStrictness flags. Default: EqualityStrictness::allPointOrdered() |
| SFCGAL_API auto SFCGAL::algorithm::alphaShapes | ( | const Geometry & | geometry, |
| double | alpha = 1, |
||
| bool | allowHoles = 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.
| geometry | the input geometry |
| alpha | the alpha value (default: 1) |
| allowHoles | whether to allow holes in the result (default: false) |
| SFCGAL_API auto SFCGAL::algorithm::approximateMedialAxis | ( | const Geometry & | geom, |
| bool | projectToEdges = false |
||
| ) | -> std::unique_ptr< MultiLineString > |
build an approximate medial axis for a Polygon
| geom | input geometry |
| projectToEdges | if true, project free endpoints to polygon boundary using edge midpoint method |
| NotImplementedException | If geom is a Polygon with point touching rings. |
When projectToEdges is true, free endpoints of the medial axis are extended to the polygon boundary. The projection uses the midpoint of the common defining edge from the straight skeleton, providing a geometrically exact and symmetric result.
| auto SFCGAL::algorithm::area | ( | const Geometry & | geom, |
| [[maybe_unused] ] NoValidityCheck | noCheck | ||
| ) | -> double |
| SFCGAL_API auto SFCGAL::algorithm::area | ( | const Geometry & | geom, |
| NoValidityCheck | noCheck | ||
| ) | -> double |
Compute the planar (2D) area of a Geometry without performing validity checks.
Dispatches on the runtime geometry type:
geom must be valid.| geom | The geometry whose planar area is computed. |
| noCheck | Unused tag parameter indicating that geometry validity is not checked. |
| Exception | If the geometry type is not handled by this dispatch. |
| SFCGAL_API auto SFCGAL::algorithm::area | ( | const Geometry & | geom | ) | -> double |
Compute the 2D area of a Geometry.
geom must be a valid geometry instance.| geom | The input geometry. |
| SFCGAL_API auto SFCGAL::algorithm::area | ( | const Triangle & | triangle | ) | -> double |
| SFCGAL_API auto SFCGAL::algorithm::area | ( | const Polygon & | polygon | ) | -> double |
| SFCGAL_API auto SFCGAL::algorithm::area | ( | const GeometryCollection & | collection | ) | -> double |
Computes the 2D area of a GeometryCollection.
| collection | The input GeometryCollection. |
| SFCGAL_API auto SFCGAL::algorithm::area | ( | const TriangulatedSurface & | tin | ) | -> double |
Computes the 2D area of a TriangulatedSurface.
| tin | The input TriangulatedSurface. |
| SFCGAL_API auto SFCGAL::algorithm::area | ( | const PolyhedralSurface & | surface | ) | -> double |
Computes the 2D area of a PolyhedralSurface.
| surface | The input PolyhedralSurface. |
| auto SFCGAL::algorithm::area3D | ( | const Geometry & | geom, |
| [[maybe_unused] ] NoValidityCheck | noCheck | ||
| ) | -> double |
| SFCGAL_API auto SFCGAL::algorithm::area3D | ( | const Geometry & | geom, |
| NoValidityCheck | noCheck | ||
| ) | -> double |
Compute the 3D surface area of a geometry, dispatching by geometry type.
This overload assumes validity checks have already been performed (the NoValidityCheck parameter is present to select this unchecked path) and returns the 3D area in the geometry's own coordinate space.
Behavior by geometry type:
| geom | Geometry to measure. |
| noCheck | Unused tag parameter selecting the unchecked path. |
| SFCGAL_API auto SFCGAL::algorithm::area3D | ( | const Geometry & | geom | ) | -> double |
Compute the 3D area of a Geometry.
geom must be a valid geometry instance.| geom | The input geometry. |
| SFCGAL_API auto SFCGAL::algorithm::area3D | ( | const Polygon & | polygon | ) | -> double |
Compute the 3D area of a Polygon.
polygon must be a valid geometry instance. | polygon | The input polygon. |
| SFCGAL_API auto SFCGAL::algorithm::area3D | ( | const Triangle & | triangle | ) | -> double |
| SFCGAL_API auto SFCGAL::algorithm::area3D | ( | const GeometryCollection & | collection | ) | -> double |
Compute the 3D area of a GeometryCollection.
collection must be a valid geometry instance. | collection | The input geometryCollection. |
| SFCGAL_API auto SFCGAL::algorithm::area3D | ( | const PolyhedralSurface & | surface | ) | -> double |
Compute the 3D area of a PolyhedralSurface.
surface must be a valid geometry instance. | surface | The input PolyhedralSurface |
| SFCGAL_API auto SFCGAL::algorithm::area3D | ( | const TriangulatedSurface & | tin | ) | -> double |
Compute the 3D area of a TriangulatedSurface.
tin must be a valid geometry instance. | tin | The input TriangulatedSurface |
| std::unique_ptr<Geometry> SFCGAL::algorithm::collect | ( | GeometryIterator | begin, |
| GeometryIterator | end | ||
| ) |
Returns an aggregate of a list of geometries.
| begin | iterator to the beginning of the geometry list |
| end | iterator to the end of the geometry list |
| auto SFCGAL::algorithm::covers | ( | const detail::PrimitiveHandle< Dim > & | handle1, |
| const detail::PrimitiveHandle< Dim > & | handle2 | ||
| ) | -> bool |
Cover test on PrimitiveHandle objects.
| handle1 | The first primitive handle |
| handle2 | The second primitive handle |
| SFCGAL_API auto SFCGAL::algorithm::distance | ( | const Geometry & | geometry1, |
| const Geometry & | geometry2 | ||
| ) | -> double |
Compute 2D distance between two geometries.
Compute the distance between two Geometries.
| geometry1 | First geometry |
| geometry2 | Second geometry |
| SFCGAL_API auto SFCGAL::algorithm::distance | ( | const Geometry & | geometry1, |
| const Geometry & | geometry2, | ||
| NoValidityCheck | noCheck | ||
| ) | -> double |
Dispatch distance between two Geometries.
| geometry1 | First geometry |
| geometry2 | Second geometry |
| noCheck | Validity check parameter |
| SFCGAL_API auto SFCGAL::algorithm::distance3D | ( | const Geometry & | geometry1, |
| const Geometry & | geometry2, | ||
| NoValidityCheck | noCheck | ||
| ) | -> double |
Dispatch 3D distance between two Geometries.
| geometry1 | First geometry |
| geometry2 | Second geometry |
| noCheck | Validity check parameter |
| SFCGAL_API auto SFCGAL::algorithm::distance3D | ( | const Geometry & | geometry1, |
| const Geometry & | geometry2 | ||
| ) | -> double |
Compute 3D distance between two geometries.
Dispatch 3D distance between two Geometries.
| geometry1 | First geometry |
| geometry2 | Second geometry |
| void SFCGAL::algorithm::extractPoints | ( | const Geometry & | geometry, |
| std::vector< Point > & | points | ||
| ) |
Extract all points from a geometry using GetPointsVisitor.
| geometry | The input geometry to extract points from |
| points | The output vector to store extracted points |
| SFCGAL_API auto SFCGAL::algorithm::extrude | ( | const Geometry & | inputGeom, |
| const Kernel::FT & | displacementX, | ||
| const Kernel::FT & | displacementY, | ||
| const Kernel::FT & | displacementZ, | ||
| NoValidityCheck & | nvc | ||
| ) | -> std::unique_ptr< Geometry > |
Extrude geometry without validity check.
| inputGeom | Input geometry to extrude. |
| displacementX | Component of displacement in x-direction. |
| displacementY | Component of displacement in y-direction. |
| displacementZ | Component of displacement in z-direction. |
| nvc | A NoValidityCheck object. |
| SFCGAL_API auto SFCGAL::algorithm::extrudeGableRoof | ( | const Polygon & | polygon, |
| double | clippingHeight, | ||
| double | slopeAngle = 45.0 |
||
| ) | -> std::unique_ptr< PolyhedralSurface > |
Gable roof generation (Surface only).
| polygon | The 2D polygon footprint |
| clippingHeight | Optional maximum height for clipping (0.0 for auto) |
| slopeAngle | The slope angle in degrees |
| SFCGAL_API auto SFCGAL::algorithm::extrudeSkillionRoof | ( | const Polygon & | polygon, |
| double | clippingHeight, | ||
| size_t | primaryEdgeIndex = 0, |
||
| double | primaryAngle = 30.0, |
||
| double | secondaryAngle = 90.0 |
||
| ) | -> std::unique_ptr< PolyhedralSurface > |
Skillion roof generation (Surface only).
| polygon | The 2D polygon footprint |
| clippingHeight | Optional maximum height for clipping (0.0 for auto) |
| primaryEdgeIndex | Index of the edge where the slope starts |
| primaryAngle | The slope angle in degrees |
| secondaryAngle | The angle for other sides (usually 90.0 for skillion) |
| auto SFCGAL::algorithm::findInsertionPosition | ( | const LineString & | lineString, |
| const Point & | point | ||
| ) | -> size_t |
Find the insertion position for a point on a linestring.
| lineString | The linestring to find insertion position on |
| point | The point to find insertion position for |
| SFCGAL_API void SFCGAL::algorithm::force2D | ( | Geometry & | g | ) |
force a geometry to be 2D (project on O,x,y)
| g | the geometry to force to 2D |
| 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)
| g | the geometry to force to 3D |
| defaultZ | the default Z value to use (default: 0) |
| SFCGAL_API void SFCGAL::algorithm::forceMeasured | ( | Geometry & | geometry, |
| const double & | defaultM = 0 |
||
| ) |
force a 2D or M geometry to be M (replace undefined M by defaultM, existing M values remains unchanged)
| geometry | the geometry to force to measured |
| defaultM | the default M value to use (default: 0) |
| SFCGAL_API auto SFCGAL::algorithm::generateRoof | ( | const Polygon & | footprint, |
| const RoofParameters & | params | ||
| ) | -> std::unique_ptr< Geometry > |
Generate a roof using unified parameters.
| footprint | The 2D polygon footprint of the building |
| params | The parameters for roof generation |
| SFCGAL_API auto SFCGAL::algorithm::generateRoof | ( | const Polygon & | footprint, |
| const RoofParameters & | params, | ||
| NoValidityCheck & | nvc | ||
| ) | -> std::unique_ptr< Geometry > |
Generate a roof using unified parameters without validity check.
| footprint | The 2D polygon footprint of the building |
| params | The parameters for roof generation |
| nvc | A NoValidityCheck object |
| auto SFCGAL::algorithm::hasPlane3D | ( | const Polygon & | polygon, |
| CGAL::Point_3< Kernel > & | pointA, | ||
| CGAL::Point_3< Kernel > & | pointB, | ||
| CGAL::Point_3< Kernel > & | pointC | ||
| ) | -> bool |
Test if a 3D plane can be extracted from a Polygon.
| polygon | The input polygon |
| pointA | Output parameter for first point |
| pointB | Output parameter for second point |
| pointC | Output parameter for third point |
| auto SFCGAL::algorithm::hasPlane3D | ( | const Polygon & | polygon | ) | -> bool |
Test if a 3D plane can be extracted from a Polygon.
| polygon | The input polygon |
| auto SFCGAL::algorithm::insertPointIntoLineString | ( | const LineString & | lineString, |
| const Point & | point, | ||
| size_t | position | ||
| ) | -> std::unique_ptr<LineString> |
Insert a point into a linestring at a specific position.
| lineString | The original linestring |
| point | The point to insert |
| position | The position to insert the point at |
| auto SFCGAL::algorithm::insertPointsIntoLineString | ( | const LineString & | lineString, |
| const std::vector< Point > & | points, | ||
| double | tolerance | ||
| ) | -> std::unique_ptr<LineString> |
Insert points into a linestring based on distance tolerance.
| lineString | The original linestring to insert points into |
| points | The points to insert |
| tolerance | The maximum distance for a point to be considered for insertion |
| SFCGAL_API auto SFCGAL::algorithm::insertPointsWithinTolerance | ( | const Geometry & | baseGeometry, |
| const Geometry & | sourceGeometry, | ||
| double | tolerance = EPSILON |
||
| ) | -> std::unique_ptr< Geometry > |
Inserts points from sourceGeometry into baseGeometry within a given tolerance.
This function takes a base geometry and adds points from the source geometry to the base geometry where they are within the specified tolerance distance from the base geometry's segments. This is useful for topological editing operations where you want to densify a geometry with points from another.
| baseGeometry | The geometry to be modified by adding points |
| sourceGeometry | The geometry providing points to insert |
| tolerance | The maximum distance for a point to be considered for insertion |
| auto SFCGAL::algorithm::intersection | ( | const detail::PrimitiveHandle< Dim > & | primitiveHandle1, |
| const detail::PrimitiveHandle< Dim > & | primitiveHandle2, | ||
| detail::GeometrySet< Dim > & | result | ||
| ) | -> void |
Intersection between two primitive handles.
| primitiveHandle1 | the first primitive handle |
| primitiveHandle2 | the second primitive handle |
| result | the result geometry set (output parameter) |
| auto SFCGAL::algorithm::intersection | ( | const detail::GeometrySet< Dim > & | geometrySet1, |
| const detail::GeometrySet< Dim > & | geometrySet2, | ||
| detail::GeometrySet< Dim > & | result | ||
| ) | -> void |
Intersection between two geometry sets.
| geometrySet1 | the first geometry set |
| geometrySet2 | the second geometry set |
| result | the result geometry set (output parameter) |
| SFCGAL_API auto SFCGAL::algorithm::isClosed | ( | const Geometry & | geometry | ) | -> Closure |
Check if a geometry is closed.
| geometry | The geometry to check |
| auto SFCGAL::algorithm::isPlane3D | ( | const Geometry & | geom, |
| const double & | toleranceAbs | ||
| ) | -> bool |
Test if all points of a geometry lie in the same plane.
| geom | The input geometry |
| toleranceAbs | The absolute tolerance for planarity test |
| SFCGAL_API auto SFCGAL::algorithm::length | ( | const LineString & | g | ) | -> double |
Compute the 2D length for a LineString.
| g | The linestring to compute length for |
| SFCGAL_API auto SFCGAL::algorithm::length | ( | const GeometryCollection & | g | ) | -> double |
Compute the 2D length for a GeometryCollection.
| g | The geometry collection to compute length for |
| SFCGAL_API auto SFCGAL::algorithm::length | ( | const Geometry & | g | ) | -> double |
Compute the 2D length for a Geometry (0 for incompatible types)
| g | The geometry to compute length for |
| SFCGAL_API auto SFCGAL::algorithm::length3D | ( | const LineString & | g | ) | -> double |
Compute the 3D length for a LineString.
| g | The linestring to compute 3D length for |
| SFCGAL_API auto SFCGAL::algorithm::length3D | ( | const GeometryCollection & | g | ) | -> double |
Compute the 3D length for a GeometryCollection.
| g | The geometry collection to compute 3D length for |
| SFCGAL_API auto SFCGAL::algorithm::length3D | ( | const Geometry & | g | ) | -> double |
Compute the 3D length for a geometry.
| g | The geometry to compute 3D length for |
| SFCGAL_API auto SFCGAL::algorithm::makeConsistentOrientation3D | ( | TriangulatedSurface & | g | ) | -> void |
Try to make consistent orientation in a TriangulatedSurface.
| g | the triangulated surface to fix orientation for |
| SFCGAL_API auto SFCGAL::algorithm::makeValidOrientation | ( | CGAL::Polygon_2< Kernel > & | polygon | ) | -> void |
Make valid 2D orientation.
| polygon | the CGAL polygon to fix orientation for |
| SFCGAL_API auto SFCGAL::algorithm::makeValidOrientation | ( | CGAL::Polygon_with_holes_2< Kernel > & | polygon | ) | -> void |
Make valid 2D orientation.
| polygon | the CGAL polygon with holes to fix orientation for |
| SFCGAL_API auto SFCGAL::algorithm::makeValidOrientation | ( | Polygon & | polygon | ) | -> void |
Make valid 2D orientation.
| polygon | the polygon to fix orientation for |
| auto SFCGAL::algorithm::normal3D | ( | const CGAL::Point_3< Kernel > & | point1, |
| const CGAL::Point_3< Kernel > & | point2, | ||
| const CGAL::Point_3< Kernel > & | point3 | ||
| ) | -> CGAL::Vector_3<Kernel> |
Returns the 3D normal to 3 consecutive points.
| point1 | the first point |
| point2 | the second point |
| point3 | the third point |
| auto SFCGAL::algorithm::normal3D | ( | const LineString & | lineString, |
| bool | exact = true |
||
| ) | -> CGAL::Vector_3<Kernel> |
Returns the 3D normal to a ring (supposed to be planar and closed).
| lineString | the line string representing the ring |
| exact | whether to use exact computation (default: true) |
| auto SFCGAL::algorithm::normal3D | ( | const Polygon & | polygon, |
| bool | exact = true |
||
| ) | -> CGAL::Vector_3<Kernel> |
Returns the 3D normal to a polygon (supposed to be planar).
| polygon | the polygon to compute the normal for |
| exact | whether to use exact computation (default: true) |
| SFCGAL_API std::unique_ptr<MultiPolygon> SFCGAL::algorithm::offset | ( | const Geometry & | geometry, |
| const double & | radius | ||
| ) |
[experimental]compute polygon offset
| geometry | The input geometry |
| radius | The offset radius |
| SFCGAL_API std::unique_ptr<MultiPolygon> SFCGAL::algorithm::offset | ( | const Geometry & | geometry, |
| const double & | radius, | ||
| NoValidityCheck | |||
| ) |
[experimental]compute polygon offset
| geometry | The input geometry |
| radius | The offset radius |
| SFCGAL_API auto SFCGAL::algorithm::optimalAlphaShapes | ( | const Geometry & | geometry, |
| bool | allowHoles = false, |
||
| size_t | nbComponents = 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.
| geometry | the input geometry |
| allowHoles | whether to allow holes in the result (default: false) |
| nbComponents | the number of components (default: 1) |
| SFCGAL_API auto SFCGAL::algorithm::partition_2 | ( | const Geometry & | geometry, |
| PartitionAlgorithm | algorithm, | ||
| NoValidityCheck | |||
| ) | -> std::unique_ptr< Geometry > |
Compute the partition of a 2D polygon https://doc.cgal.org/latest/Partition_2/index.html#Chapter_2D_Polygon_Partitioning.
| geometry | input geometry |
| algorithm | partition algorithm to use |
| SFCGAL_API auto SFCGAL::algorithm::partition_2 | ( | const Geometry & | geometry, |
| PartitionAlgorithm | algorithm = y_monotone |
||
| ) | -> std::unique_ptr< Geometry > |
Compute the partition of a 2D polygon https://doc.cgal.org/latest/Partition_2/index.html#Chapter_2D_Polygon_Partitioning.
| geometry | input geometry |
| algorithm | partition algorithm to use |
| auto SFCGAL::algorithm::plane3D | ( | const Polygon & | polygon, |
| CGAL::Point_3< Kernel > & | pointA, | ||
| CGAL::Point_3< Kernel > & | pointB, | ||
| CGAL::Point_3< Kernel > & | pointC | ||
| ) | -> void |
Get 3 non collinear points from a Polygon.
| polygon | The input polygon |
| pointA | Output parameter for first point |
| pointB | Output parameter for second point |
| pointC | Output parameter for third point |
| auto SFCGAL::algorithm::plane3D | ( | const Polygon & | polygon | ) | -> CGAL::Plane_3<Kernel> |
Returns the oriented 3D plane of a polygon (supposed to be planar).
May return degenerate plane.
| polygon | The input polygon |
| auto SFCGAL::algorithm::plane3D | ( | const Polygon & | polygon, |
| const Plane3DInexactUnsafe & | |||
| ) | -> CGAL::Plane_3<Kernel> |
Returns the oriented 3D plane of a polygon (supposed to be planar) - inexact version.
| polygon | The input polygon |
| auto SFCGAL::algorithm::plane3D | ( | const Polygon & | polygon, |
| bool | exact | ||
| ) | -> CGAL::Plane_3<Kernel> |
Returns the oriented 3D plane of a polygon (supposed to be planar).
This is legacy code for SFCGAL users and should be deprecated.
| polygon | The input polygon |
| exact | Whether to use exact computation |
| SFCGAL_API void SFCGAL::algorithm::rotate | ( | Geometry & | geometry, |
| const Kernel::FT & | angle | ||
| ) |
Rotate a geometry in 2D around the origin (0,0)
| geometry | The geometry to rotate |
| angle | Rotation angle in radians |
| SFCGAL_API void SFCGAL::algorithm::rotate | ( | Geometry & | geometry, |
| const Kernel::FT & | angle, | ||
| const Point & | origin | ||
| ) |
Rotate a geometry in 2D around a specified point.
| geometry | The geometry to rotate |
| angle | Rotation angle in radians |
| origin | Point of origin for the rotation |
| SFCGAL_API void SFCGAL::algorithm::rotate | ( | Geometry & | geometry, |
| const Kernel::FT & | angle, | ||
| const Kernel::Vector_3 & | axis, | ||
| const Point & | origin = Point(0, 0, 0) |
||
| ) |
Rotate a geometry in 3D around a specified axis and origin.
| geometry | The geometry to rotate |
| angle | Rotation angle in radians |
| axis | The axis of rotation |
| origin | Point of origin for the rotation |
| SFCGAL_API void SFCGAL::algorithm::rotateX | ( | Geometry & | geometry, |
| const Kernel::FT & | angle | ||
| ) |
Rotate a geometry around the X axis.
| geometry | The geometry to rotate |
| angle | Rotation angle in radians |
| SFCGAL_API void SFCGAL::algorithm::rotateY | ( | Geometry & | geometry, |
| const Kernel::FT & | angle | ||
| ) |
Rotate a geometry around the Y axis.
| geometry | The geometry to rotate |
| angle | Rotation angle in radians |
| SFCGAL_API void SFCGAL::algorithm::rotateZ | ( | Geometry & | geometry, |
| const Kernel::FT & | angle | ||
| ) |
Rotate a geometry around the Z axis.
| geometry | The geometry to rotate |
| angle | Rotation angle in radians |
| SFCGAL_API void SFCGAL::algorithm::scale | ( | Geometry & | geometry, |
| double | scaleFactor | ||
| ) |
Scale a geometry by a given factor.
| geometry | input geometry |
| scaleFactor | scale factor |
| SFCGAL_API void SFCGAL::algorithm::scale | ( | Geometry & | geometry, |
| double | sx, | ||
| double | sy, | ||
| double | sz = 0.0 |
||
| ) |
Scale a geometry by different factors for each dimension.
| geometry | input geometry |
| sx | scale factor for x dimension |
| sy | scale factor for y dimension |
| sz | scale factor for z dimension |
| SFCGAL_API void SFCGAL::algorithm::scale | ( | Geometry & | geometry, |
| double | sx, | ||
| double | sy, | ||
| double | sz, | ||
| double | cx, | ||
| double | cy, | ||
| double | cz | ||
| ) |
Scale a geometry by different factors for each dimension around a center point.
| geometry | input geometry |
| sx | scale factor for x dimension |
| sy | scale factor for y dimension |
| sz | scale factor for z dimension |
| cx | x-coordinate of the center point |
| cy | y-coordinate of the center point |
| cz | z-coordinate of the center point |
| SFCGAL_API auto SFCGAL::algorithm::signedArea | ( | const Triangle & | triangle | ) | -> Kernel::FT |
Computes the 2D signed area of a Triangle.
This function calculates the oriented area of a triangle in the plane. The sign of the area depends on the orientation of the triangle's vertices:
| triangle | The input Triangle whose signed area is to be computed. |
| SFCGAL_API auto SFCGAL::algorithm::signedArea | ( | const LineString & | lineString | ) | -> Kernel::FT |
Computes the 2D signed area of a LineString.
This function calculates the oriented area of a lineString in the plane. The sign of the area depends on the orientation of the lineString's vertices:
| lineString | The input LineString whose signed area is to be computed. |
| SFCGAL_API auto SFCGAL::algorithm::simplify | ( | const Geometry & | geometry, |
| double | threshold, | ||
| bool | preserveTopology | ||
| ) | -> std::unique_ptr< Geometry > |
Main entry point for geometry simplification.
Simplifies a geometry using the CGAL algorithm https://doc.cgal.org/latest/Polyline_simplification_2/index.html.
| geometry | The geometry to simplify |
| threshold | The distance (in geometry unit) threshold for simplification |
| preserveTopology | Whether to preserve topology during simplification |
| SFCGAL_API auto SFCGAL::algorithm::simplify | ( | const Geometry & | geometry, |
| double | threshold, | ||
| bool | preserveTopology, | ||
| NoValidityCheck | |||
| ) | -> std::unique_ptr< Geometry > |
Simplifies a geometry using the CGAL algorithm https://doc.cgal.org/latest/Polyline_simplification_2/index.html.
| geometry | The geometry to simplify |
| threshold | The distance (in geometry unit) threshold for simplification |
| preserveTopology | Whether to preserve topology during simplification |
| SFCGAL_API auto SFCGAL::algorithm::split3D | ( | const Geometry & | geometry, |
| const Point & | planePoint, | ||
| const Kernel::Vector_3 & | planeNormal, | ||
| bool | closeGeometries = false |
||
| ) | -> std::unique_ptr< GeometryCollection > |
Split the given geometry with a plane defined by a point and a normal vector.
Based on CGAL::PMP::split operator https://doc.cgal.org/latest/Polygon_mesh_processing/group__PMP__corefinement__grp.html
Only the TIN, PolyhedralSurface, and Solid types are currently supported.
| geometry | The input geometry to split. |
| planePoint | A point on the splitting plane. |
| planeNormal | The normal vector defining the plane orientation. |
| closeGeometries | If true, ensures resulting geometries are closed. In the case of a SOLID, this parameter is always forced to true, since a solid is a closed geometry. |
| SFCGAL_API auto SFCGAL::algorithm::straightSkeleton | ( | const Geometry & | geom, |
| bool | autoOrientation, | ||
| NoValidityCheck | , | ||
| bool | innerOnly = false, |
||
| bool | outputDistanceInM = false, |
||
| const double & | toleranceAbs = EPSILON |
||
| ) | -> std::unique_ptr< MultiLineString > |
build a 2D straight skeleton for a Polygon
| geom | input geometry |
| autoOrientation | check and fix polygon orientation |
| innerOnly | Skip non-inner edges if requested |
| outputDistanceInM | whether to output the distance to border as M |
| toleranceAbs | Distance tolerance between returned points. A line must have a maximum distance of toleranceAbs. |
| NotImplementedException | If geom is a Polygon with point touching rings. |
| SFCGAL_API auto SFCGAL::algorithm::straightSkeleton | ( | const Geometry & | geom, |
| bool | autoOrientation = true, |
||
| bool | innerOnly = false, |
||
| bool | outputDistanceInM = false, |
||
| const double & | toleranceAbs = EPSILON |
||
| ) | -> std::unique_ptr< MultiLineString > |
build a 2D straight skeleton for a Polygon
| geom | input geometry |
| autoOrientation | check and fix polygon orientation |
| innerOnly | Skip non-inner edges if requested |
| outputDistanceInM | whether to output the distance to border as M |
| toleranceAbs | Distance tolerance between returned points. A line must have a maximum distance of toleranceAbs. |
| NotImplementedException | If geom is a Polygon with point touching rings. |
| SFCGAL_API auto SFCGAL::algorithm::straightSkeleton | ( | const Polygon & | geom, |
| bool | autoOrientation = true, |
||
| bool | innerOnly = false, |
||
| bool | outputDistanceInM = false, |
||
| const double & | toleranceAbs = EPSILON |
||
| ) | -> std::unique_ptr< MultiLineString > |
build a 2D straight skeleton for a Polygon
| geom | input polygon |
| autoOrientation | check and fix polygon orientation |
| innerOnly | Skip non-inner edges if requested |
| outputDistanceInM | whether to output the distance to border as M |
| toleranceAbs | Distance tolerance between returned points |
| NotImplementedException | If geom is a Polygon with point touching rings. |
| SFCGAL_API auto SFCGAL::algorithm::straightSkeleton | ( | const MultiPolygon & | geom, |
| bool | autoOrientation = true, |
||
| bool | innerOnly = false, |
||
| bool | outputDistanceInM = false, |
||
| const double & | toleranceAbs = EPSILON |
||
| ) | -> std::unique_ptr< MultiLineString > |
build a 2D straight skeleton for a Polygon
| geom | input multi-polygon |
| autoOrientation | check and fix polygon orientation |
| innerOnly | Skip non-inner edges if requested |
| outputDistanceInM | whether to output the distance to border as M |
| toleranceAbs | Distance tolerance between returned points |
| NotImplementedException | If geom is a Polygon with point touching rings. |
| SFCGAL_API auto SFCGAL::algorithm::straightSkeletonPartition | ( | const Geometry & | geom, |
| bool | autoOrientation = true |
||
| ) | -> std::unique_ptr< PolyhedralSurface > |
Build a 2D straight skeleton partition for a Geometry.
| [in] | geom | The input geometry |
| [in] | autoOrientation | Check and fix polygon orientation |
| Exception | If CGAL fails to create the straight skeleton |
This function creates a partition of the input geometry based on its straight skeleton. For unsupported geometry types, an empty MultiPolygon is returned.
| SFCGAL_API auto SFCGAL::algorithm::straightSkeletonPartition | ( | const MultiPolygon & | geom, |
| bool | autoOrientation = true |
||
| ) | -> std::unique_ptr< PolyhedralSurface > |
Build a 2D straight skeleton partition for a MultiPolygon.
| [in] | geom | The input multi-polygon |
| [in] | autoOrientation | Check and fix polygon orientation |
This function applies the straight skeleton partition to each polygon in the input multi-polygon and combines the results into a single MultiPolygon.
| SFCGAL_API auto SFCGAL::algorithm::straightSkeletonPartition | ( | const Polygon & | geom, |
| bool | autoOrientation = true |
||
| ) | -> std::unique_ptr< PolyhedralSurface > |
Build a 2D straight skeleton partition for a Polygon.
| [in] | geom | The input polygon |
| [in] | autoOrientation | Check and fix polygon orientation (not used in this implementation) |
| Exception | If CGAL fails to create the straight skeleton |
This function creates a partition of the input polygon based on its straight skeleton. It uses CGAL's Arrangement_2 to handle the intersection of skeleton and polygon edges.
| SFCGAL_API auto SFCGAL::algorithm::surfaceSimplification | ( | const Geometry & | geometry, |
| const SimplificationStopPredicate & | stopPredicate, | ||
| SimplificationStrategy | strategy | ||
| ) | -> std::unique_ptr< Geometry > |
Simplify a surface mesh using CGAL edge collapse algorithm.
| geometry | The input geometry to simplify (must be a surface or solid) |
| stopPredicate | When to stop the simplification process |
| strategy | The cost and placement strategy to use |
| SFCGAL_API auto SFCGAL::algorithm::surfaceSimplification | ( | const Geometry & | geometry, |
| const SimplificationStopPredicate & | stopPredicate, | ||
| SimplificationStrategy | strategy, | ||
| NoValidityCheck | noCheck | ||
| ) | -> std::unique_ptr< Geometry > |
Simplify a surface mesh using CGAL edge collapse algorithm (no validity check)
| geometry | The input geometry to simplify |
| stopPredicate | When to stop the simplification process |
| strategy | The cost and placement strategy to use |
| noCheck | Validity check bypass tag |
| SFCGAL_API auto SFCGAL::algorithm::tessellate | ( | const Geometry & | g, |
| NoValidityCheck | |||
| ) | -> std::unique_ptr< Geometry > |
Tessellate geometry without validity check.
Tessellate a geometry: this will triangulate surfaces (including polyhedral and solid's surfaces) and keep untouched points, lines, etc.
| g | Geometry to tessellate |
| SFCGAL_API auto SFCGAL::algorithm::tessellate | ( | const Geometry & | g | ) | -> std::unique_ptr< Geometry > |
Tessellate geometry.
Tessellate a geometry: this will triangulate surfaces (including polyhedral and solid's surfaces) and keep untouched points, lines, etc.
| g | Geometry to tessellate |
| SFCGAL_API void SFCGAL::algorithm::translate | ( | Geometry & | geometry, |
| const Kernel::Vector_3 & | vector | ||
| ) |
translate a geometry from a given vector
| geometry | The geometry to translate |
| vector | The 3D translation vector |
| SFCGAL_API void SFCGAL::algorithm::translate | ( | Geometry & | geometry, |
| const Kernel::Vector_2 & | vector | ||
| ) |
translate a geometry from a given vector
| geometry | The geometry to translate |
| vector | The 2D translation vector |
| SFCGAL_API void SFCGAL::algorithm::translate | ( | Geometry & | geometry, |
| const Kernel::FT & | dx, | ||
| const Kernel::FT & | dy, | ||
| const Kernel::FT & | dz | ||
| ) |
translate a geometry from a given vector
| geometry | The geometry to translate |
| dx | Translation distance in X direction |
| dy | Translation distance in Y direction |
| dz | Translation distance in Z direction |
| SFCGAL_API void SFCGAL::algorithm::translate | ( | Geometry & | geometry, |
| const double & | dx, | ||
| const double & | dy, | ||
| const double & | dz | ||
| ) |
translate a geometry from double-coordinates
| geometry | The geometry to translate |
| dx | Translation distance in X direction |
| dy | Translation distance in Y direction |
| dz | Translation distance in Z direction |
| void SFCGAL::algorithm::union_ | ( | const detail::GeometrySet< Dim > & | geometrySet1, |
| const detail::GeometrySet< Dim > & | geometrySet2, | ||
| detail::GeometrySet< Dim > & | result | ||
| ) |
Compute union of two GeometrySet objects.
| geometrySet1 | First geometry set |
| geometrySet2 | Second geometry set |
| result | Output geometry set containing the union |
| void SFCGAL::algorithm::union_ | ( | const detail::PrimitiveHandle< Dim > & | primitiveHandle1, |
| const detail::PrimitiveHandle< Dim > & | primitiveHandle2, | ||
| detail::GeometrySet< Dim > & | result | ||
| ) |
Compute union of two PrimitiveHandle objects.
| primitiveHandle1 | First primitive handle |
| primitiveHandle2 | Second primitive handle |
| result | Output geometry set containing the union |
| SFCGAL_API auto SFCGAL::algorithm::visibility | ( | const Geometry & | polygon, |
| const Geometry & | point | ||
| ) | -> std::unique_ptr< Polygon > |
| SFCGAL_API auto SFCGAL::algorithm::visibility | ( | const Geometry & | polygon, |
| const Geometry & | point, | ||
| NoValidityCheck | |||
| ) | -> std::unique_ptr< Polygon > |
| SFCGAL_API auto SFCGAL::algorithm::visibility | ( | const Geometry & | polygon, |
| const Geometry & | pointA, | ||
| const Geometry & | pointB | ||
| ) | -> std::unique_ptr< Polygon > |
build the visibility polygon of the segment [pointA ; pointB] on a Polygon
| polygon | input geometry |
| pointA | input geometry |
| pointB | input geometry |
| SFCGAL_API auto SFCGAL::algorithm::visibility | ( | const Geometry & | polygon, |
| const Geometry & | pointA, | ||
| const Geometry & | pointB, | ||
| NoValidityCheck | |||
| ) | -> std::unique_ptr< Polygon > |
build the visibility polygon of a Point inside a Polygon
| polygon | input geometry |
| pointA | input geometry |
| pointB | input geometry |
| SFCGAL_API auto SFCGAL::algorithm::volume | ( | const PolyhedralSurface & | surface, |
| NoValidityCheck | noValidityCheck = NoValidityCheck() |
||
| ) | -> Kernel::FT |
Calculate the volume of a closed PolyhedralSurface.
| surface | The surface whose volume to calculate |
| noValidityCheck | Tag to disable validity checking |
| GeometryInvalidityException | if the surface is not closed |
| SFCGAL_API auto SFCGAL::algorithm::volume | ( | const Solid & | solid, |
| NoValidityCheck | noValidityCheck = NoValidityCheck() |
||
| ) | -> Kernel::FT |
Calculate the volume of a Solid.
| solid | The solid whose volume to calculate |
| noValidityCheck | Tag to disable validity checking |
| SFCGAL_API auto SFCGAL::algorithm::volume | ( | const Geometry & | g | ) | -> Kernel::FT |
Calculate the volume of any geometry.
| g | The geometry whose volume to calculate |
| std::function<WeightedCentroid(const T &, bool)> SFCGAL::algorithm::weightedCentroidLambda |
1.8.10