26#ifndef __TERRALIB_GEOMETRY_INTERNAL_POLYHEDRALSURFACE_H
27#define __TERRALIB_GEOMETRY_INTERNAL_POLYHEDRALSURFACE_H
#define TE_DEFINE_VISITABLE
Surface is an abstract class that represents a 2-dimensional geometric objects.
A base class for values that can be retrieved from the data access module.
An Envelope defines a 2D rectangular region.
MultiPolygon is a MultiSurface whose elements are Polygons.
A point with x and y coordinate values.
Polygon is a subclass of CurvePolygon whose rings are defined by linear rings.
void setSRID(int srid)
It sets the Spatial Reference System ID of the Geometry and all its parts if it is a GeometryCollecti...
MultiPolygon * getBoundingPolygons(const Polygon *p) const
It returns the collection of polygons in this surface that bounds the given polygon "p" for any polyg...
void setPatchN(std::size_t i, Polygon *p)
It sets the informed position polygon to the new one.
virtual te::dt::AbstractData * clone() const
It clones the linestring.
std::size_t getNPoints() const
it returns the number of points (vertexes) in the geometry.
PolyhedralSurface(std::size_t nPolygons, GeomType t, int srid=0, Envelope *mbr=0)
It initializes the Geometry with the specified spatial reference system id and envelope.
Coord2D * getCoordOnSurface() const
It returns a coordinate guaranteed to be on this surface.
virtual const std::string & getGeometryType() const
The name of the geometry subtype for PolyhedralSurface is: PolyhedralSurface.
PolyhedralSurface(const PolyhedralSurface &rhs)
Copy constructor.
double getArea() const
It returns the area of this surface, as measured in the spatial reference system of this surface.
Polygon * getPatchN(std::size_t i) const
It returns a polygon in this surface, the order is arbitrary.
void setNumPatches(std::size_t size)
It sets the number of including polygons.
virtual ~PolyhedralSurface()
Virtual destructor.
void convert(te::srs::Converter *converter) override
It will transform the coordinates of the Geometry to the new one.
bool isClosed() const
It returns true if the polygon closes on itself, and thus has no boundary and encloses a solid.
double getPerimeter() const
It returns the length of the boundary for the surface.
std::size_t getNumPatches() const
It returns the number of including polygons.
Coord2D * getCentroidCoord() const
It returns the mathematical centroid for this surface as a coordinate.
std::vector< Polygon * > m_polygons
An array with the polygon list.
Point * getCentroid() const
It returns the mathematical centroid for this surface as a point.
void computeMBR(bool cascade) const
It computes the minimum bounding rectangle for the Geometry.
virtual PolyhedralSurface & operator=(const PolyhedralSurface &rhs)
Assignment operator.
static const std::string sm_typeName
Geometry type name for PolyhedralSurface.
Point * getPointOnSurface() const
It returns a point guaranteed to be on this surface.
Surface(GeomType t, int srid=0, Envelope *mbr=0)
It initializes the surface with the specified spatial reference system id and envelope.
Namespace for the Vector Geometry module of TerraLib.
GeomType
Each enumerated type is compatible with a Well-known Binary (WKB) type code.
Namespace for the Spatial Reference System module of TerraLib.
An utility struct for representing 2D coordinates.
#define TEGEOMEXPORT
You can use this macro in order to export/import classes and functions from this module.