SFCGAL  2.2.0
Public Types | Public Member Functions | List of all members
SFCGAL::Solid Class Reference

A Solid modeled with an exteriorShell and interiorShells materialized by PolyhedralSurface. More...

#include <Solid.h>

Inherits SFCGAL::Geometry.

Public Types

typedef boost::ptr_vector< PolyhedralSurface >::iterator iterator
 
typedef boost::ptr_vector< PolyhedralSurface >::const_iterator const_iterator
 

Public Member Functions

 Solid ()
 Empty Solid constructor. More...
 
 Solid (const PolyhedralSurface &exteriorShell)
 Constructor with an exterior shell. More...
 
 Solid (PolyhedralSurface *exteriorShell)
 Constructor with an exterior shell (takes ownership) More...
 
 Solid (const std::vector< PolyhedralSurface > &shells)
 Constructor with a vector of shells (PolyhedralSurface) More...
 
 Solid (const Solid &other)
 Copy constructor. More...
 
Solidoperator= (Solid other)
 assign operator More...
 
 ~Solid ()
 destructor More...
 
Solidclone () const override
 
std::string geometryType () const override
 
GeometryType geometryTypeId () const override
 
int dimension () const override
 
int coordinateDimension () const override
 
bool isEmpty () const override
 
bool is3D () const override
 
bool isMeasured () const override
 
auto dropZ () -> bool override
 
auto dropM () -> bool override
 
auto swapXY () -> void override
 
const PolyhedralSurfaceexteriorShell () const
 Returns the exterior shell. More...
 
PolyhedralSurfaceexteriorShell ()
 Returns the exterior shell. More...
 
size_t numInteriorShells () const
 Returns the number of interior shells. More...
 
const PolyhedralSurfaceinteriorShellN (size_t const &n) const
 Returns the n-th interior shell. More...
 
PolyhedralSurfaceinteriorShellN (size_t const &n)
 Returns the n-th interior shell. More...
 
void addInteriorShell (const PolyhedralSurface &shell)
 adds an interior shell to the Solid More...
 
void addInteriorShell (PolyhedralSurface *shell)
 adds an interior shell to the Solid More...
 
void setExteriorShell (const PolyhedralSurface &shell)
 Sets the Solid exterior shell. More...
 
void setExteriorShell (PolyhedralSurface *shell)
 Sets the Solid exterior shell The ownership of the shell is taken. More...
 
size_t numShells () const
 Returns the number of shells. More...
 
const PolyhedralSurfaceshellN (const size_t &n) const
 Returns the n-th shell, 0 is exteriorShell. More...
 
PolyhedralSurfaceshellN (const size_t &n)
 Returns the n-th shell, 0 is exteriorShell. More...
 
iterator begin ()
 
const_iterator begin () const
 
iterator end ()
 
const_iterator end () const
 
void accept (GeometryVisitor &visitor) override
 
void accept (ConstGeometryVisitor &visitor) const override
 
template<class Archive >
void serialize (Archive &ar, const unsigned int)
 Serializer. More...
 

Detailed Description

A Solid modeled with an exteriorShell and interiorShells materialized by PolyhedralSurface.

Note
A shell is supposed to be closed.
Warning
GM_Solid, from ISO 19107 is defined in CityGML, but not in SFA. Without Solid concept,
Note
Volume concept is missing.

Member Typedef Documentation

typedef boost::ptr_vector<PolyhedralSurface>::iterator SFCGAL::Solid::iterator

Constructor & Destructor Documentation

SFCGAL::Solid::Solid ( )

Empty Solid constructor.

SFCGAL::Solid::Solid ( const PolyhedralSurface exteriorShell)

Constructor with an exterior shell.

SFCGAL::Solid::Solid ( PolyhedralSurface exteriorShell)

Constructor with an exterior shell (takes ownership)

SFCGAL::Solid::Solid ( const std::vector< PolyhedralSurface > &  shells)

Constructor with a vector of shells (PolyhedralSurface)

SFCGAL::Solid::Solid ( const Solid other)

Copy constructor.

SFCGAL::Solid::~Solid ( )
default

destructor

Member Function Documentation

void SFCGAL::Solid::accept ( GeometryVisitor visitor)
override
void SFCGAL::Solid::accept ( ConstGeometryVisitor visitor) const
override
void SFCGAL::Solid::addInteriorShell ( const PolyhedralSurface shell)
inline

adds an interior shell to the Solid

void SFCGAL::Solid::addInteriorShell ( PolyhedralSurface shell)
inline

adds an interior shell to the Solid

iterator SFCGAL::Solid::begin ( )
inline
const_iterator SFCGAL::Solid::begin ( ) const
inline
auto SFCGAL::Solid::clone ( ) const
override
auto SFCGAL::Solid::coordinateDimension ( ) const
override
auto SFCGAL::Solid::dimension ( ) const
override
auto SFCGAL::Solid::dropM ( ) -> bool
override
auto SFCGAL::Solid::dropZ ( ) -> bool
override
iterator SFCGAL::Solid::end ( )
inline
const_iterator SFCGAL::Solid::end ( ) const
inline
const PolyhedralSurface& SFCGAL::Solid::exteriorShell ( ) const
inline

Returns the exterior shell.

PolyhedralSurface& SFCGAL::Solid::exteriorShell ( )
inline

Returns the exterior shell.

auto SFCGAL::Solid::geometryType ( ) const
override
auto SFCGAL::Solid::geometryTypeId ( ) const
override
const PolyhedralSurface& SFCGAL::Solid::interiorShellN ( size_t const &  n) const
inline

Returns the n-th interior shell.

PolyhedralSurface& SFCGAL::Solid::interiorShellN ( size_t const &  n)
inline

Returns the n-th interior shell.

auto SFCGAL::Solid::is3D ( ) const
override
auto SFCGAL::Solid::isEmpty ( ) const
override
auto SFCGAL::Solid::isMeasured ( ) const
override
size_t SFCGAL::Solid::numInteriorShells ( ) const
inline

Returns the number of interior shells.

size_t SFCGAL::Solid::numShells ( ) const
inline

Returns the number of shells.

auto SFCGAL::Solid::operator= ( Solid  other)

assign operator

template<class Archive >
void SFCGAL::Solid::serialize ( Archive &  ar,
const unsigned  int 
)
inline

Serializer.

void SFCGAL::Solid::setExteriorShell ( const PolyhedralSurface shell)
inline

Sets the Solid exterior shell.

void SFCGAL::Solid::setExteriorShell ( PolyhedralSurface shell)
inline

Sets the Solid exterior shell The ownership of the shell is taken.

The caller is not responsible anymore of its deallocation.

const PolyhedralSurface& SFCGAL::Solid::shellN ( const size_t &  n) const
inline

Returns the n-th shell, 0 is exteriorShell.

Warning
not standard, avoid conditionnal to access rings
PolyhedralSurface& SFCGAL::Solid::shellN ( const size_t &  n)
inline

Returns the n-th shell, 0 is exteriorShell.

Warning
not standard, avoid conditionnal to access rings
auto SFCGAL::Solid::swapXY ( ) -> void
override