SFCGAL
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
SFCGAL Namespace Reference

Namespaces

namespace  algorithm
 
namespace  detail
 
namespace  generator
 
namespace  graph
 
namespace  io
 
namespace  tools
 
namespace  transform
 
namespace  triangulate
 

Classes

class  ConstGeometryVisitor
 Visitor for const geometries. More...
 
class  Coordinate
 Represents the Coordinate of a Point (wraps either an empty structure, or a Kernel::Point_2, or a Kernel::Point_3) More...
 
class  CoordinateDimensionVisitor
 
struct  do_toPoint_d
 Private structures used to implement partial function specialization. More...
 
struct  do_toPoint_d< 3 >
 
class  Envelope
 Represents a bounding box. More...
 
class  Exception
 Base SFCGAL Exception. More...
 
class  Geometry
 OGC/SFA based Geometry abstract class. More...
 
class  GeometryCollection
 A GeometryCollection in SFA. More...
 
class  GeometryInvalidityException
 SFCGAL Exception thrown when invalid geometries are found before entering an algo. More...
 
class  GeometryVisitor
 GeometryVisitor. More...
 
class  GetXVisitor
 
class  GetYVisitor
 
class  GetZVisitor
 
class  InappropriateGeometryException
 SFCGAL Exception thrown when geometry is inapropriate for a function. More...
 
class  LineString
 A LineString in SFA. More...
 
class  Logger
 [Singleton]Logger class More...
 
class  MultiLineString
 A MultiLineString in SFA. More...
 
class  MultiPoint
 A MultiPoint in SFA. More...
 
class  MultiPolygon
 A MultiPolygon in SFA. More...
 
class  MultiSolid
 A MultiSolid. More...
 
class  NonFiniteValueException
 SFCGAL Exception thrown when non finite value is found. More...
 
class  NotImplementedException
 SFCGAL Exception thrown when a function is not implemented. More...
 
struct  Plane_from_facet
 
class  Point
 A point in SFA. More...
 
class  Polygon
 A Polygon in SFA with holes. More...
 
class  PolyhedralSurface
 A PolyhedralSurface in SFA modeled as a Polygon soup. More...
 
class  PreparedGeometry
 A PreparedGeometry is a shell around a SFCGAL::Geometry. More...
 
class  RoundVisitor
 
class  Solid
 A Solid modeled with an exteriorShell and interiorShells materialized by PolyhedralSurface. More...
 
class  Surface
 Abstract Surface class. More...
 
struct  TestGeometry
 
class  ToPoint2Visitor
 
class  ToPoint3Visitor
 
class  Transform
 Represents a coordinate transform. More...
 
class  Triangle
 [OGC/SFA]Triangle More...
 
class  Triangulated2Polyhedron
 
class  TriangulatedSurface
 A TriangulatedSurface in SFA modeled as a Triangle soup. More...
 
struct  Validity
 the class, convertible to bool, that stores the reason why a geom is invalid More...
 
class  WktParseException
 SFCGAL Exception thrown when parsing WKT. More...
 

Typedefs

using Point_2 = CGAL::Point_2< Kernel >
 
using Segment_2 = CGAL::Segment_2< Kernel >
 
using Triangle_2 = CGAL::Triangle_2< Kernel >
 
typedef CGAL::Exact_predicates_exact_constructions_kernel Kernel
 default Kernel More...
 
typedef CGAL::Gmpq QT
 Quotient type. More...
 
typedef uint32_t srid_t
 

Enumerations

enum  GeometryType {
  TYPE_POINT = 1 , TYPE_LINESTRING = 2 , TYPE_POLYGON = 3 , TYPE_MULTIPOINT = 4 ,
  TYPE_MULTILINESTRING = 5 , TYPE_MULTIPOLYGON = 6 , TYPE_GEOMETRYCOLLECTION = 7 , TYPE_POLYHEDRALSURFACE = 15 ,
  TYPE_TRIANGULATEDSURFACE = 16 , TYPE_TRIANGLE = 100 , TYPE_SOLID = 101 , TYPE_MULTISOLID = 102
}
 [OGC/SFA]8.2.3 "A common list of codes for geometric types" More...
 
enum  CoordinateType { COORDINATE_XY = 0 , COORDINATE_XYZ = 1000 , COORDINATE_XYM = 2000 , COORDINATE_XYZM = 3000 }
 coordinate types (XY, XYZ, XYM, etc.) More...
 

Functions

void SFCGAL_ASSERT_GEOMETRY_VALIDITY_ (const Geometry &g, const std::string &ctxt)
 
void SFCGAL_ASSERT_GEOMETRY_VALIDITY (const Geometry &g)
 Functions used to assert for geometry validity. More...
 
void SFCGAL_ASSERT_GEOMETRY_VALIDITY_2D (const Geometry &g)
 
void SFCGAL_ASSERT_GEOMETRY_VALIDITY_3D (const Geometry &g)
 
void SFCGAL_ASSERT_GEOMETRY_VALIDITY_ON_PLANE (const Geometry &)
 
const std::vector< TestGeometrycreateTestGeometries ()
 
auto logger ()
 get the logger More...
 
auto operator== (const Envelope &, const Envelope &)
 Global comparison operator on Envelope. More...
 
auto operator== (const Geometry &ga, const Geometry &gb) -> bool
 Function used to compare geometries FIXME Since we do not have (yet) a real "equals" operator, we only compare points coordinates. More...
 
auto operator<< (std::ostream &, const Envelope &)
 Ostream operator for Envelope;. More...
 
auto operator<< (std::ostream &, const Geometry &)
 Ostream operator for Geometry;. More...
 
auto floor (const CGAL::Gmpq &v)
 floor a rational to an integer More...
 
auto ceil (const CGAL::Gmpq &v)
 ceil a rational to an integer More...
 
auto round (const CGAL::Gmpq &v)
 round a rational to an integer More...
 
auto almostEqual (const double a, const double b, const double epsilon) -> bool
 
auto almostEqual (const Kernel::FT &a, const Kernel::FT &b, const Kernel::FT &epsilon) -> bool
 
double NaN ()
 shortcut to get NaN for double More...
 
double round (const double &v)
 round a double to the nearest integer More...
 
template SFCGAL_API std::unique_ptr< detail::MarkedPolyhedronTriangulatedSurface::toPolyhedron_3< Kernel, detail::MarkedPolyhedron > () const
 
auto Version () -> const char *
 
auto Full_Version () -> const char *
 

Variables

const char _sfcgal_version [] = SFCGAL_VERSION
 
const char _sfcgal_full_version [] = SFCGAL_FULL_VERSION
 

Detailed Description

SFCGAL

Copyright (C) 2021 Loïc Bartoletti - Oslandia <infos@oslandia.com>

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Library General Public License for more details.

You should have received a copy of the GNU Library General Public
License along with this library; if not, see

http://www.gnu.org/licenses/.

Typedef Documentation

◆ Kernel

typedef CGAL::Exact_predicates_exact_constructions_kernel SFCGAL::Kernel

default Kernel

◆ Point_2

using SFCGAL::Point_2 = typedef CGAL::Point_2<Kernel>

◆ QT

typedef CGAL::Gmpq SFCGAL::QT

Quotient type.

◆ Segment_2

using SFCGAL::Segment_2 = typedef CGAL::Segment_2<Kernel>

◆ srid_t

typedef uint32_t SFCGAL::srid_t

◆ Triangle_2

using SFCGAL::Triangle_2 = typedef CGAL::Triangle_2<Kernel>

Function Documentation

◆ almostEqual() [1/2]

auto SFCGAL::almostEqual ( const double  a,
const double  b,
const double  epsilon 
) -> bool
inline

◆ almostEqual() [2/2]

auto SFCGAL::almostEqual ( const Kernel::FT &  a,
const Kernel::FT &  b,
const Kernel::FT &  epsilon 
) -> bool
inline

◆ ceil()

SFCGAL_API CGAL::Gmpz SFCGAL::ceil ( const CGAL::Gmpq &  v) -> CGAL::Gmpz

ceil a rational to an integer

◆ createTestGeometries()

const std::vector< TestGeometry > SFCGAL::createTestGeometries ( )
inline

◆ floor()

SFCGAL_API CGAL::Gmpz SFCGAL::floor ( const CGAL::Gmpq &  v) -> CGAL::Gmpz

floor a rational to an integer

◆ Full_Version()

auto SFCGAL::Full_Version ( ) -> const char *

◆ logger()

SFCGAL_API Logger & SFCGAL::logger ( ) -> Logger &

get the logger

◆ NaN()

double SFCGAL::NaN ( )
inline

shortcut to get NaN for double

◆ operator<<() [1/2]

SFCGAL_API std::ostream & SFCGAL::operator<< ( std::ostream &  ostr,
const Envelope env 
) -> std::ostream &

Ostream operator for Envelope;.

◆ operator<<() [2/2]

SFCGAL_API std::ostream & SFCGAL::operator<< ( std::ostream &  ostr,
const Geometry g 
) -> std::ostream &

Ostream operator for Geometry;.

◆ operator==() [1/2]

SFCGAL_API bool SFCGAL::operator== ( const Envelope a,
const Envelope b 
) -> bool

Global comparison operator on Envelope.

◆ operator==() [2/2]

SFCGAL_API bool SFCGAL::operator== ( const Geometry ,
const Geometry  
)

Function used to compare geometries FIXME Since we do not have (yet) a real "equals" operator, we only compare points coordinates.

Equality operator.

Todo:
only compare coordinate points
Precondition
the two geometries must be valid

◆ round() [1/2]

SFCGAL_API CGAL::Gmpz SFCGAL::round ( const CGAL::Gmpq &  v) -> CGAL::Gmpz

round a rational to an integer

◆ round() [2/2]

double SFCGAL::round ( const double &  v)
inline

round a double to the nearest integer

◆ SFCGAL_ASSERT_GEOMETRY_VALIDITY()

void SFCGAL_API SFCGAL::SFCGAL_ASSERT_GEOMETRY_VALIDITY ( const Geometry g)

Functions used to assert for geometry validity.

Note
exception message is apparently limited in length, thus print the reason for invalidity before its text representation (that can be very long)

◆ SFCGAL_ASSERT_GEOMETRY_VALIDITY_()

void SFCGAL::SFCGAL_ASSERT_GEOMETRY_VALIDITY_ ( const Geometry g,
const std::string &  ctxt 
)

◆ SFCGAL_ASSERT_GEOMETRY_VALIDITY_2D()

void SFCGAL_API SFCGAL::SFCGAL_ASSERT_GEOMETRY_VALIDITY_2D ( const Geometry g)

◆ SFCGAL_ASSERT_GEOMETRY_VALIDITY_3D()

void SFCGAL_API SFCGAL::SFCGAL_ASSERT_GEOMETRY_VALIDITY_3D ( const Geometry g)

◆ SFCGAL_ASSERT_GEOMETRY_VALIDITY_ON_PLANE()

void SFCGAL_API SFCGAL::SFCGAL_ASSERT_GEOMETRY_VALIDITY_ON_PLANE ( const Geometry )

◆ TriangulatedSurface::toPolyhedron_3< Kernel, detail::MarkedPolyhedron >()

◆ Version()

auto SFCGAL::Version ( ) -> const char *

Variable Documentation

◆ _sfcgal_full_version

const char SFCGAL::_sfcgal_full_version[] = SFCGAL_FULL_VERSION

◆ _sfcgal_version

const char SFCGAL::_sfcgal_version[] = SFCGAL_VERSION