Skip to content

Namespace SFCGAL::detail#

Namespace List > detail

Implementation details namespace.

Namespaces#

Type Name
namespace algorithm
Algorithm detail namespace.
namespace io
Input/output detail namespace.

Classes#

Type Name
struct BoxCollection <Dim>
BoxCollection for use with CGAL::Box_intersection_d.
class CollectionElement <class Primitive>
struct ComparePoints
struct ComplexComparator
struct ConstraintInfo
Structure to identify constraint sources for topology-preserving mode.
struct ConstraintInfoCompare <typename Constraint_id>
Comparison function for sorting constraints by original order.
struct ConstraintOrderInfo <typename Constraint_id>
Structure to store constraint order information Allows recovering the original insertion order after simplification.
class EnvelopeVisitor
class ForceValidityVisitor
class GeometrySet <Dim>
class GetPointsVisitor
struct Halfedge_with_mark <class Refs>
struct HandleCollection <Dim>
HandleCollection . Used to storePrimitiveHandle .
class Interval
struct IsPrimitiveLarger <class X, class Y>
Tests if a primitive type has a larger dimension than another one.
struct Items_with_mark_on_hedge
An items type using my halfedge.
struct NoVolume
struct Point_d <Dim>
Another way of looking at TypeForDimension<Dim>::Point.
struct PrimitiveBox <Dim>
PrimitiveBox . Type used for CGAL::Box_intersection_d.
struct PrimitiveDimension <class T>
struct PrimitiveDimension< TypeForDimension< 2 >::Segment > <>
struct PrimitiveDimension< TypeForDimension< 2 >::Surface > <>
struct PrimitiveDimension< TypeForDimension< 2 >::Volume > <>
struct PrimitiveDimension< TypeForDimension< 3 >::Segment > <>
struct PrimitiveDimension< TypeForDimension< 3 >::Surface > <>
struct PrimitiveDimension< TypeForDimension< 3 >::Volume > <>
struct PrimitiveHandle <Dim>
class SegmentStore
Collection of segments from a geometry for interpolation.
struct Segment_d <Dim>
Another way of looking at TypeForDimension<Dim>::Segment.
struct Surface_d <Dim>
Another way of looking at TypeForDimension<Dim>::Surface.
struct TypeForDimension <Dim>
Generic traits, default dimension is 2.
struct TypeForDimension< 3 > <>
Specialization for dimension = 3.
struct Volume_d <Dim>
Another way of looking at TypeForDimension<Dim>::Volume.
struct dim_t <N>
Create a distinct type for each dimension.

Public Types#

Type Name
typedef CGAL::Constrained_Delaunay_triangulation_2< K, TDS, CGAL::Exact_predicates_tag > CDT
typedef CT::Point CGALPoint
typedef CGAL::Constrained_triangulation_plus_2< CDT > CT
typedef ConstraintOrderInfo< Constraint_id > ConstraintInfoType
typedef CT::Constraint_id Constraint_id
typedef CT::Constraint_iterator Constraint_iterator
typedef PS::Squared_distance_cost Cost
enum ElementFlag
typedef CGAL::Constrained_triangulation_face_base_2< K > Fb
typedef CGAL::Projection_traits_xy_3< SFCGAL::Kernel > K
typedef CGAL::Polyhedron_3< Kernel, Items_with_mark_on_hedge > MarkedPolyhedron
typedef CT::Points_in_constraint_iterator Points_in_constraint_iterator
enum PrimitiveType
Primitive type enumeration. Note that the value is the dimension !
typedef PS::Stop_above_cost_threshold Stop
typedef CGAL::Triangulation_data_structure_2< Vb, Fb > TDS
typedef PS::Vertex_base_2< K > Vb

Public Functions#

Type Name
void _collect_points (const CGAL::Polygon_with_holes_2< Kernel > & poly, GeometrySet< 2 >::PointCollection & points)
void _collect_points (const CGAL::Triangle_3< Kernel > & tri, GeometrySet< 3 >::PointCollection & points)
void _collect_points (const NoVolume &, GeometrySet< 2 >::PointCollection &)
void _collect_points (const MarkedPolyhedron & poly, GeometrySet< 3 >::PointCollection & points)
void _decompose_polygon (const Polygon & poly, GeometrySet< 2 >::SurfaceCollection & surfaces, dim_t< 2 >)
void _decompose_polygon (const Polygon & poly, GeometrySet< 3 >::SurfaceCollection & surfaces, dim_t< 3 >)
void _decompose_solid (const Solid &, GeometrySet< 2 >::VolumeCollection &, dim_t< 2 >)
void _decompose_solid (const Solid & solid, GeometrySet< 3 >::VolumeCollection & volumes, dim_t< 3 >)
void _decompose_triangle (const Triangle & tri, GeometrySet< 2 >::SurfaceCollection & surfaces, dim_t< 2 >)
void _decompose_triangle (const Triangle & tri, GeometrySet< 3 >::SurfaceCollection & surfaces, dim_t< 3 >)
void _filter_covered (IT ibegin, IT iend, GeometrySet< Dim > & output)
CGAL::Bbox_2 compute_solid_bbox (const NoVolume &, dim_t< 2 >)
CGAL::Bbox_3 compute_solid_bbox (const TypeForDimension< 3 >::Volume & vol, dim_t< 3 >)
auto operator<< (std::ostream & ostr, const GeometrySet< 2 > & g)
Display operator.
auto operator<< (std::ostream & ostr, const GeometrySet< 3 > & g)
Display operator.
std::ostream & operator<< (std::ostream & ostr, const CollectionElement< Primitive > & p)
auto polygonSetToMultiPolygon (const CGAL::Polygon_set_2< Kernel > & polygonSet)
convert a CGAL::Polygon_set_2 to a MultiPolygon __
void recompose_points (const typename GeometrySet< Dim >::PointCollection & points, std::vector< Geometry * > & rpoints, dim_t< Dim >)
void recompose_segments (const typename GeometrySet< Dim >::SegmentCollection & segments, std::vector< Geometry * > & lines, dim_t< Dim >)
void recompose_surfaces (const GeometrySet< 2 >::SurfaceCollection & surfaces, std::vector< Geometry * > & output, dim_t< 2 >)
void recompose_surfaces (const GeometrySet< 3 >::SurfaceCollection & surfaces, std::vector< Geometry * > & output, dim_t< 3 >)
void recompose_volumes (const GeometrySet< 2 >::VolumeCollection &, std::vector< Geometry * > &, dim_t< 2 >)
void recompose_volumes (const GeometrySet< 3 >::VolumeCollection & volumes, std::vector< Geometry * > & output, dim_t< 3 >)
auto simplify (const Geometry & geometry, double threshold, bool preserveTopology)
Wrapper for the algorithm::simplify function.
auto simplifyGeometryCollection (const GeometryCollection & collection, double threshold, bool preserveTopology)
Simplifies a GeometryCollection .
auto simplifyGeometryCollectionTopology (const GeometryCollection & collection, double threshold)
Simplifies a GeometryCollection with topology preservation.
auto simplifyLineString (const LineString & lineString, double threshold, bool preserveTopology, const SegmentStore & store)
Simplifies a LineString .
auto simplifyMultiLineString (const MultiLineString & multiLine, double threshold, bool preserveTopology)
Simplifies a MultiLineString .
auto simplifyMultiPolygon (const MultiPolygon & multiPolygon, double threshold, bool preserveTopology)
Simplifies a MultiPolygon .
auto simplifyPolygon (const Polygon & polygon, double threshold, bool preserveTopology)
Simplifies a Polygon .
auto simplifyPolyhedralSurface (const PolyhedralSurface & polySurface, double threshold, bool preserveTopology)
Simplifies a PolyhedralSurface .

Public Static Functions#

Type Name
LineString buildLineStringFromConstraint (const CT & ct, const Constraint_id & cid, const SegmentStore & store, CoordinateType dimension)
Builds a LineString from constraint points.
void extractAllConstraints (const GeometryCollection & collection, CT & ct, std::vector< ConstraintInfoType > & constraintInfos)
Extracts constraints from all geometry types in a collection.
bool extractLineStringConstraints (const LineString & lineString, CT & ct, std::vector< ConstraintInfoType > & constraintInfos, std::size_t geomIdx)
Extracts LineString constraints and adds them to the triangulation.
void extractMultiPolygonConstraints (const MultiPolygon & multiPolygon, CT & ct, std::vector< ConstraintInfoType > & constraintInfos, std::size_t geomIdx)
Extracts MultiPolygon constraints and adds them to the triangulation.
std::vector< CGALPoint > extractPointsFromLineString (const LineString & lineString)
Extracts points from a LineString to create a CGAL point vector.
std::vector< CGALPoint > extractPointsFromRing (const LineString & ring)
Extracts points from a ring to create a CGAL point vector.
void extractPolygonConstraints (const Polygon & polygon, CT & ct, std::vector< ConstraintInfoType > & constraintInfos, std::size_t geomIdx)
Extracts polygon constraints and adds them to the triangulation.
bool extractPolygonExteriorConstraint (const LineString & ring, CT & ct, std::vector< ConstraintInfoType > & constraintInfos, std::size_t geomIdx, std::size_t polyIdx, ConstraintInfo::Type type)
Extracts polygon exterior ring constraints and adds them to the triangulation.
void extractPolygonInteriorConstraints (const Polygon & polygon, CT & ct, std::vector< ConstraintInfoType > & constraintInfos, std::size_t geomIdx, std::size_t polyIdx, ConstraintInfo::Type type)
Extracts polygon interior ring constraints and adds them to the triangulation.
void extractPolyhedralSurfaceConstraints (const PolyhedralSurface & surface, CT & ct, std::vector< ConstraintInfoType > & constraintInfos, std::size_t geomIdx)
Extracts PolyhedralSurface constraints and adds them to the triangulation.
void organizeSimplifiedConstraints (const CT & ct, const std::vector< ConstraintInfoType > & constraintInfos, const SegmentStore & store, CoordinateType dimension, std::map< size_t, std::unique_ptr< LineString > > & linestrings, std::map< size_t, std::map< size_t, LineString > > & polygonRings, std::map< size_t, std::map< size_t, std::map< size_t, LineString > > > & multiPolygonRings, std::map< size_t, std::map< size_t, std::map< size_t, LineString > > > & polyhedralSurfaceRings)
Organizes simplified constraints into corresponding data structures.
std::unique_ptr< GeometryCollection > reconstructAllGeometries (const GeometryCollection & collection, const std::map< size_t, std::unique_ptr< LineString > > & linestrings, const std::map< size_t, std::map< size_t, LineString > > & polygonRings, const std::map< size_t, std::map< size_t, std::map< size_t, LineString > > > & multiPolygonRings, const std::map< size_t, std::map< size_t, std::map< size_t, LineString > > > & polyhedralSurfaceRings)
Reconstructs all geometries from simplified constraints, preserving dimensions.
void reconstructLineString (const std::map< size_t, std::unique_ptr< LineString > > & linestrings, const GeometryCollection & collection, std::size_t geomIdx, GeometryCollection & result)
Reconstructs a LineString in aGeometryCollection from simplified constraints.
void reconstructMultiPolygon (const std::map< size_t, std::map< size_t, std::map< size_t, LineString > > > & multiPolygonRings, const GeometryCollection & collection, std::size_t geomIdx, GeometryCollection & result)
Reconstructs a MultiPolygon in aGeometryCollection from simplified rings, preserving dimensions.
void reconstructPolygon (const std::map< size_t, std::map< size_t, LineString > > & polygonRings, const GeometryCollection & collection, std::size_t geomIdx, GeometryCollection & result)
Reconstructs a Polygon in aGeometryCollection from simplified rings.
void reconstructPolyhedralSurface (const std::map< size_t, std::map< size_t, std::map< size_t, LineString > > > & polyhedralSurfaceRings, const GeometryCollection & collection, std::size_t geomIdx, GeometryCollection & result)
Reconstructs a PolyhedralSurface in aGeometryCollection from simplified rings, preserving dimensions.

Public Types Documentation#

typedef CDT#

using SFCGAL::detail::CDT = typedef CGAL::Constrained_Delaunay_triangulation_2<K, TDS, CGAL::Exact_predicates_tag>;

typedef CGALPoint#

using SFCGAL::detail::CGALPoint = typedef CT::Point;

typedef CT#

using SFCGAL::detail::CT = typedef CGAL::Constrained_triangulation_plus_2<CDT>;

typedef ConstraintInfoType#

using SFCGAL::detail::ConstraintInfoType = typedef ConstraintOrderInfo<Constraint_id>;

typedef Constraint_id#

using SFCGAL::detail::Constraint_id = typedef CT::Constraint_id;

typedef Constraint_iterator#

using SFCGAL::detail::Constraint_iterator = typedef CT::Constraint_iterator;

typedef Cost#

using SFCGAL::detail::Cost = typedef PS::Squared_distance_cost;

enum ElementFlag#

enum detail::ElementFlag {
    FLAG_IS_PLANAR = 1
};

Flags available for each type of Geometry type. Primitives can be 'flagged' in order to speed up recomposition


typedef Fb#

using SFCGAL::detail::Fb = typedef CGAL::Constrained_triangulation_face_base_2<K>;

typedef K#

using SFCGAL::detail::K = typedef CGAL::Projection_traits_xy_3<SFCGAL::Kernel>;

typedef MarkedPolyhedron#

typedef CGAL::Polyhedron_3<Kernel, Items_with_mark_on_hedge> SFCGAL::detail::MarkedPolyhedron;

typedef Points_in_constraint_iterator#

using SFCGAL::detail::Points_in_constraint_iterator = typedef CT::Points_in_constraint_iterator;

enum PrimitiveType#

Primitive type enumeration. Note that the value is the dimension !

enum detail::PrimitiveType {
    PrimitivePoint = 0,
    PrimitiveSegment = 1,
    PrimitiveSurface = 2,
    PrimitiveVolume = 3
};

typedef Stop#

using SFCGAL::detail::Stop = typedef PS::Stop_above_cost_threshold;

typedef TDS#

using SFCGAL::detail::TDS = typedef CGAL::Triangulation_data_structure_2<Vb, Fb>;

typedef Vb#

using SFCGAL::detail::Vb = typedef PS::Vertex_base_2<K>;

Public Functions Documentation#

function _collect_points#

void detail::_collect_points (
    const CGAL::Polygon_with_holes_2< Kernel > & poly,
    GeometrySet < 2 >::PointCollection & points
) 

function _collect_points#

void detail::_collect_points (
    const CGAL::Triangle_3< Kernel > & tri,
    GeometrySet < 3 >::PointCollection & points
) 

function _collect_points#

void detail::_collect_points (
    const NoVolume &,
    GeometrySet < 2 >::PointCollection &
) 

function _collect_points#

void detail::_collect_points (
    const MarkedPolyhedron & poly,
    GeometrySet < 3 >::PointCollection & points
) 

function _decompose_polygon#

void detail::_decompose_polygon (
    const Polygon & poly,
    GeometrySet < 2 >::SurfaceCollection & surfaces,
    dim_t < 2 >
) 

function _decompose_polygon#

void detail::_decompose_polygon (
    const Polygon & poly,
    GeometrySet < 3 >::SurfaceCollection & surfaces,
    dim_t < 3 >
) 

function _decompose_solid#

void detail::_decompose_solid (
    const Solid &,
    GeometrySet < 2 >::VolumeCollection &,
    dim_t < 2 >
) 

function _decompose_solid#

void detail::_decompose_solid (
    const Solid & solid,
    GeometrySet < 3 >::VolumeCollection & volumes,
    dim_t < 3 >
) 

function _decompose_triangle#

void detail::_decompose_triangle (
    const Triangle & tri,
    GeometrySet < 2 >::SurfaceCollection & surfaces,
    dim_t < 2 >
) 

function _decompose_triangle#

void detail::_decompose_triangle (
    const Triangle & tri,
    GeometrySet < 3 >::SurfaceCollection & surfaces,
    dim_t < 3 >
) 

function _filter_covered#

template<int Dim, class IT>
void detail::_filter_covered (
    IT ibegin,
    IT iend,
    GeometrySet < Dim > & output
) 

function compute_solid_bbox#

inline CGAL::Bbox_2 detail::compute_solid_bbox (
    const NoVolume &,
    dim_t < 2 >
) 

function compute_solid_bbox#

inline CGAL::Bbox_3 detail::compute_solid_bbox (
    const TypeForDimension < 3 >::Volume & vol,
    dim_t < 3 >
) 

function operator<<#

Display operator.

auto detail::operator<< (
    std::ostream & ostr,
    const GeometrySet < 2 > & g
) 

function operator<<#

Display operator.

auto detail::operator<< (
    std::ostream & ostr,
    const GeometrySet < 3 > & g
) 

function operator<<#

template<class Primitive>
std::ostream & detail::operator<< (
    std::ostream & ostr,
    const CollectionElement < Primitive > & p
) 

function polygonSetToMultiPolygon#

convert a CGAL::Polygon_set_2 to a MultiPolygon __

auto detail::polygonSetToMultiPolygon (
    const CGAL::Polygon_set_2< Kernel > & polygonSet
) 

Todo

unittest


function recompose_points#

template<int Dim>
void detail::recompose_points (
    const typename GeometrySet < Dim >::PointCollection & points,
    std::vector< Geometry * > & rpoints,
    dim_t < Dim >
) 

function recompose_segments#

template<int Dim>
void detail::recompose_segments (
    const typename GeometrySet < Dim >::SegmentCollection & segments,
    std::vector< Geometry * > & lines,
    dim_t < Dim >
) 

function recompose_surfaces#

void detail::recompose_surfaces (
    const GeometrySet < 2 >::SurfaceCollection & surfaces,
    std::vector< Geometry * > & output,
    dim_t < 2 >
) 

function recompose_surfaces#

void detail::recompose_surfaces (
    const GeometrySet < 3 >::SurfaceCollection & surfaces,
    std::vector< Geometry * > & output,
    dim_t < 3 >
) 

function recompose_volumes#

void detail::recompose_volumes (
    const GeometrySet < 2 >::VolumeCollection &,
    std::vector< Geometry * > &,
    dim_t < 2 >
) 

function recompose_volumes#

void detail::recompose_volumes (
    const GeometrySet < 3 >::VolumeCollection & volumes,
    std::vector< Geometry * > & output,
    dim_t < 3 >
) 

function simplify#

Wrapper for the algorithm::simplify function.

inline auto detail::simplify (
    const Geometry & geometry,
    double threshold,
    bool preserveTopology
) 

Parameters:

  • geometry The geometry to simplify
  • threshold The simplification threshold
  • preserveTopology Whether to preserve topology

Returns:

A simplified geometry


function simplifyGeometryCollection#

Simplifies a GeometryCollection .

auto detail::simplifyGeometryCollection (
    const GeometryCollection & collection,
    double threshold,
    bool preserveTopology
) 

Parameters:

  • collection The GeometryCollection to simplify
  • threshold The simplification threshold
  • preserveTopology Whether to preserve topology

Returns:

A simplified geometry


function simplifyGeometryCollectionTopology#

Simplifies a GeometryCollection with topology preservation.

auto detail::simplifyGeometryCollectionTopology (
    const GeometryCollection & collection,
    double threshold
) 

Parameters:

Returns:

A simplified geometry


function simplifyLineString#

Simplifies a LineString .

auto detail::simplifyLineString (
    const LineString & lineString,
    double threshold,
    bool preserveTopology,
    const SegmentStore & store
) 

Parameters:

  • lineString The LineString to simplify
  • threshold The simplification threshold
  • preserveTopology Whether to preserve topology
  • store The segment store for interpolation

Returns:

A simplified geometry


function simplifyMultiLineString#

Simplifies a MultiLineString .

auto detail::simplifyMultiLineString (
    const MultiLineString & multiLine,
    double threshold,
    bool preserveTopology
) 

Parameters:

  • multiLine The MultiLineString to simplify
  • threshold The simplification threshold
  • preserveTopology Whether to preserve topology

Returns:

A simplified geometry


function simplifyMultiPolygon#

Simplifies a MultiPolygon .

auto detail::simplifyMultiPolygon (
    const MultiPolygon & multiPolygon,
    double threshold,
    bool preserveTopology
) 

Parameters:

  • multiPolygon The MultiPolygon to simplify
  • threshold The simplification threshold
  • preserveTopology Whether to preserve topology

Returns:

A simplified geometry


function simplifyPolygon#

Simplifies a Polygon .

auto detail::simplifyPolygon (
    const Polygon & polygon,
    double threshold,
    bool preserveTopology
) 

Parameters:

  • polygon The Polygon to simplify
  • threshold The simplification threshold
  • preserveTopology Whether to preserve topology

Returns:

A simplified geometry


function simplifyPolyhedralSurface#

Simplifies a PolyhedralSurface .

auto detail::simplifyPolyhedralSurface (
    const PolyhedralSurface & polySurface,
    double threshold,
    bool preserveTopology
) 

Parameters:

  • polySurface The PolyhedralSurface to simplify
  • threshold The simplification threshold
  • preserveTopology Whether to preserve topology

Returns:

A simplified geometry


Public Static Functions Documentation#

function buildLineStringFromConstraint#

Builds a LineString from constraint points.

static LineString detail::buildLineStringFromConstraint (
    const CT & ct,
    const Constraint_id & cid,
    const SegmentStore & store,
    CoordinateType dimension
) 

Parameters:

  • ct The constrained triangulation
  • cid The constraint ID
  • store The segment store for interpolation
  • dimension The coordinate dimension type

Returns:

A LineString built from the simplified constraint


function extractAllConstraints#

Extracts constraints from all geometry types in a collection.

static void detail::extractAllConstraints (
    const GeometryCollection & collection,
    CT & ct,
    std::vector< ConstraintInfoType > & constraintInfos
) 

Parameters:

  • collection The source GeometryCollection
  • ct The constrained triangulation to add to
  • constraintInfos Collection of constraint infos

function extractLineStringConstraints#

Extracts LineString constraints and adds them to the triangulation.

static bool detail::extractLineStringConstraints (
    const LineString & lineString,
    CT & ct,
    std::vector< ConstraintInfoType > & constraintInfos,
    std::size_t geomIdx
) 

Parameters:

  • lineString The source LineString
  • ct The constrained triangulation to add to
  • constraintInfos Collection of constraint infos
  • geomIdx The geometry index

Returns:

true if constraint was added, false otherwise


function extractMultiPolygonConstraints#

Extracts MultiPolygon constraints and adds them to the triangulation.

static void detail::extractMultiPolygonConstraints (
    const MultiPolygon & multiPolygon,
    CT & ct,
    std::vector< ConstraintInfoType > & constraintInfos,
    std::size_t geomIdx
) 

Parameters:

  • multiPolygon The source MultiPolygon
  • ct The constrained triangulation to add to
  • constraintInfos Collection of constraint infos
  • geomIdx The geometry index

function extractPointsFromLineString#

Extracts points from a LineString to create a CGAL point vector.

static std::vector< CGALPoint > detail::extractPointsFromLineString (
    const LineString & lineString
) 

Parameters:

Returns:

Vector of CGALPoints


function extractPointsFromRing#

Extracts points from a ring to create a CGAL point vector.

static std::vector< CGALPoint > detail::extractPointsFromRing (
    const LineString & ring
) 

Parameters:

Returns:

Vector of CGALPoints


function extractPolygonConstraints#

Extracts polygon constraints and adds them to the triangulation.

static void detail::extractPolygonConstraints (
    const Polygon & polygon,
    CT & ct,
    std::vector< ConstraintInfoType > & constraintInfos,
    std::size_t geomIdx
) 

Parameters:

  • polygon The source polygon
  • ct The constrained triangulation to add to
  • constraintInfos Collection of constraint infos
  • geomIdx The geometry index

function extractPolygonExteriorConstraint#

Extracts polygon exterior ring constraints and adds them to the triangulation.

static bool detail::extractPolygonExteriorConstraint (
    const LineString & ring,
    CT & ct,
    std::vector< ConstraintInfoType > & constraintInfos,
    std::size_t geomIdx,
    std::size_t polyIdx,
    ConstraintInfo::Type type
) 

Parameters:

  • ring The exterior ring
  • ct The constrained triangulation to add to
  • constraintInfos Collection of constraint infos
  • geomIdx The geometry index
  • type The constraint type

Returns:

true if constraint was added, false otherwise


function extractPolygonInteriorConstraints#

Extracts polygon interior ring constraints and adds them to the triangulation.

static void detail::extractPolygonInteriorConstraints (
    const Polygon & polygon,
    CT & ct,
    std::vector< ConstraintInfoType > & constraintInfos,
    std::size_t geomIdx,
    std::size_t polyIdx,
    ConstraintInfo::Type type
) 

Parameters:

  • polygon The source polygon
  • ct The constrained triangulation to add to
  • constraintInfos Collection of constraint infos
  • geomIdx The geometry index
  • polyIdx The polygon index in a collection
  • type The constraint type for interior rings

function extractPolyhedralSurfaceConstraints#

Extracts PolyhedralSurface constraints and adds them to the triangulation.

static void detail::extractPolyhedralSurfaceConstraints (
    const PolyhedralSurface & surface,
    CT & ct,
    std::vector< ConstraintInfoType > & constraintInfos,
    std::size_t geomIdx
) 

Parameters:

  • surface The source PolyhedralSurface
  • ct The constrained triangulation to add to
  • constraintInfos Collection of constraint infos
  • geomIdx The geometry index

function organizeSimplifiedConstraints#

Organizes simplified constraints into corresponding data structures.

static void detail::organizeSimplifiedConstraints (
    const CT & ct,
    const std::vector< ConstraintInfoType > & constraintInfos,
    const SegmentStore & store,
    CoordinateType dimension,
    std::map< size_t, std::unique_ptr< LineString > > & linestrings,
    std::map< size_t, std::map< size_t, LineString > > & polygonRings,
    std::map< size_t, std::map< size_t, std::map< size_t, LineString > > > & multiPolygonRings,
    std::map< size_t, std::map< size_t, std::map< size_t, LineString > > > & polyhedralSurfaceRings
) 

Parameters:

  • ct The constrained triangulation with simplified constraints
  • constraintInfos Collection of constraint infos
  • store The segment store for interpolation
  • dimension The coordinate dimension type
  • linestrings Output map for linestrings
  • polygonRings Output map for polygon rings
  • multiPolygonRings Output map for multipolygon rings
  • polyhedralSurfaceRings Output map for polyhedral surface rings

function reconstructAllGeometries#

Reconstructs all geometries from simplified constraints, preserving dimensions.

static std::unique_ptr< GeometryCollection > detail::reconstructAllGeometries (
    const GeometryCollection & collection,
    const std::map< size_t, std::unique_ptr< LineString > > & linestrings,
    const std::map< size_t, std::map< size_t, LineString > > & polygonRings,
    const std::map< size_t, std::map< size_t, std::map< size_t, LineString > > > & multiPolygonRings,
    const std::map< size_t, std::map< size_t, std::map< size_t, LineString > > > & polyhedralSurfaceRings
) 

Parameters:

  • collection The original GeometryCollection
  • linestrings Map of simplified linestrings
  • polygonRings Map of simplified polygon rings
  • multiPolygonRings Map of simplified multipolygon rings
  • polyhedralSurfaceRings Map of simplified polyhedral surface rings

Returns:

A unique_ptr to a GeometryCollection with reconstructed geometries


function reconstructLineString#

Reconstructs a LineString in aGeometryCollection from simplified constraints.

static void detail::reconstructLineString (
    const std::map< size_t, std::unique_ptr< LineString > > & linestrings,
    const GeometryCollection & collection,
    std::size_t geomIdx,
    GeometryCollection & result
) 

Parameters:


function reconstructMultiPolygon#

Reconstructs a MultiPolygon in aGeometryCollection from simplified rings, preserving dimensions.

static void detail::reconstructMultiPolygon (
    const std::map< size_t, std::map< size_t, std::map< size_t, LineString > > > & multiPolygonRings,
    const GeometryCollection & collection,
    std::size_t geomIdx,
    GeometryCollection & result
) 

Parameters:


function reconstructPolygon#

Reconstructs a Polygon in aGeometryCollection from simplified rings.

static void detail::reconstructPolygon (
    const std::map< size_t, std::map< size_t, LineString > > & polygonRings,
    const GeometryCollection & collection,
    std::size_t geomIdx,
    GeometryCollection & result
) 

Parameters:


function reconstructPolyhedralSurface#

Reconstructs a PolyhedralSurface in aGeometryCollection from simplified rings, preserving dimensions.

static void detail::reconstructPolyhedralSurface (
    const std::map< size_t, std::map< size_t, std::map< size_t, LineString > > > & polyhedralSurfaceRings,
    const GeometryCollection & collection,
    std::size_t geomIdx,
    GeometryCollection & result
) 

Parameters:



The documentation for this class was generated from the following file /builds/sfcgal/SFCGAL/src/algorithm/covers.h