SFCGAL  2.3.0
Todo List
Namespace SFCGAL::algorithm
Improve support for Solid, MultiPolygon, PolyhedralSurface, TriangulatedSurface and heterogeneous GeometryCollection.
Class SFCGAL::algorithm::BoundaryVisitor

MultiPolygon, PolyhedralSurface, TriangulatedSurface (same graph algorithm, edges without parallel or opposite)

MultiSolid : faced elimination

GeometryCollection : complex for heterogeneous collection (not supported in GEOS)

Member SFCGAL::algorithm::BoundaryVisitor::getBoundaryFromPolygons (const graph::GeometryGraph &g)
merge resulting edges
Member SFCGAL::algorithm::distance3D (const Geometry &gA, const Geometry &gB) -> double
complete with solid
Member SFCGAL::algorithm::straightSkeleton (const Geometry &geom, bool autoOrientation=true, bool innerOnly=false, bool outputDistanceInM=false, const double &toleranceAbs=EPSILON) -> std::unique_ptr< MultiLineString >
add supports for TriangulatedSurface and PolyhedralSurface
Parameters
geominput geometry
autoOrientationcheck and fix polygon orientation
innerOnlySkip non-inner edges if requested
outputDistanceInMwhether to output the distance to border as M
toleranceAbsDistance tolerance between returned points. A line must have a maximum distance of toleranceAbs.
Returns
2D straight skeleton as a MultiLineString
Precondition
geom is a valid geometry
Exceptions
NotImplementedExceptionIf geom is a Polygon with point touching rings.
Class SFCGAL::algorithm::SurfaceGraph
unittest
Class SFCGAL::detail::EnvelopeVisitor
ConstPointVisitor
Class SFCGAL::detail::io::WktReader
take M in account?
Member SFCGAL::detail::io::WktReader::readPointCoordinate (Point &point) -> bool
ZM management
Parameters
pointPoint object to fill with coordinate
Returns
true if coordinate was read successfully, false otherwise
Member SFCGAL::detail::io::WktWriter::write (const Geometry &geometry, bool exact=false)
replace with visitor dispatch
Parameters
geometrygeometry to serialize as WKT
exactif true, write exact representation (without simplifications)
Member SFCGAL::detail::polygonSetToMultiPolygon (const CGAL::Polygon_set_2< Kernel > &polygonSet) -> std::unique_ptr< MultiPolygon >
unittest
Class SFCGAL::Envelope

add asText instead of "print"?

add basic operations (especialy intersects/intersects3D)

Namespace SFCGAL::generator
should be moved from detail to SFCGAL folder
Member SFCGAL::generator::building (const Geometry &g, const Kernel::FT &wallHeight, const Kernel::FT &roofSlope) -> std::unique_ptr< Geometry >
unittest
Member SFCGAL::generator::disc (const Point &center, const double &radius, const unsigned int &nQuadrantSegments=8U) -> std::unique_ptr< Polygon >
unittest
Member SFCGAL::generator::hoch (const unsigned int &order) -> std::unique_ptr< Polygon >
unittest
Member SFCGAL::generator::sierpinski (const unsigned int &order) -> std::unique_ptr< MultiPolygon >
unittest
Namespace SFCGAL::graph
should be moved from detail to SFCGAL folder
Class SFCGAL::graph::GeometryGraphBuilderT< Graph >
wrap vertex_descriptor, std::vector< edge_descriptor >, etc. in SharedPoint, SharedLineString, SharedPolygon, etc. and add utility method on the Graph?
Member SFCGAL::operator== (const Geometry &geomA, const Geometry &geomB) -> bool
Extend comparison to include more than just coordinate points if needed.
Member SFCGAL::operator== (const Primitive &prim1, const Primitive &prim2) -> bool
only compare coordinate points
Precondition
the two geometries must be valid
Parameters
prim1first primitive to compare
prim2second primitive to compare
Returns
true when the primitives are the same
Class SFCGAL::Point
strong typing on coordinate dimension?
Class SFCGAL::PolyhedralSurface
do better than a "polygon soup" or add topological view?
Namespace SFCGAL::transform
should be moved from detail to SFCGAL folder
Class SFCGAL::transform::AffineTransform2
unittest
Class SFCGAL::transform::AffineTransform3
unittest
Class SFCGAL::transform::ForceOrderPoints

unittest

move outside (it's not a coordinate transform)?

Class SFCGAL::transform::ForceZOrderPoints

unittest

move outside (it's not a coordinate transform)?

Namespace SFCGAL::triangulate
should be moved into algorithm namespace/folder
Member SFCGAL::triangulate::opentriangulatePolygon3D (const GeometryCollection &g, TriangulatedSurface &triangulatedSurface)
unittest
Member SFCGAL::triangulate::triangulatePolygon3D (const Polygon &polygon, TriangulatedSurface &triangulatedSurface)
unittest
Member SFCGAL::triangulate::triangulatePolygon3D (const Solid &g, TriangulatedSurface &triangulatedSurface)
unittest
Member SFCGAL::triangulate::triangulatePolygon3D (const Triangle &triangle, TriangulatedSurface &triangulatedSurface)
unittest
Member SFCGAL::triangulate::triangulatePolygon3D (const TriangulatedSurface &g, TriangulatedSurface &triangulatedSurface)
unittest
Class SFCGAL::TriangulatedSurface
do better than a "triangle soup" or add topological view?