26#ifndef __TERRALIB_GEOMETRY_INTERNAL_CURVEPOLYGON_H
27#define __TERRALIB_GEOMETRY_INTERNAL_CURVEPOLYGON_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.
std::vector< Curve * > & getRings()
It returns the polygon rings.
double getArea() const
It returns the area of this surface, as measured in the spatial reference system of this surface.
Curve * operator[](std::size_t i) const
It returns the n-th ring.
Coord2D * getCentroidCoord() const
It returns the mathematical centroid for this surface as a coordinate.
void setSRID(int srid)
It sets the Spatial Reference System ID of the geometry and all its parts if it is a GeometryCollecti...
virtual ~CurvePolygon()
Virtual destructor.
Curve * getRingN(std::size_t i) const
It returns the n-th ring for this curve polygon as a curve.
virtual CurvePolygon & operator=(const CurvePolygon &rhs)
Assignment operator.
void computeMBR(bool cascade) const
It computes the minimum bounding rectangle for the curve polygon.
void setRingN(std::size_t i, Curve *r)
It sets the informed position ring to the new one.
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 curve polygons is: CurvePolygon.
double getPerimeter() const
It returns the length of the boundary for the surface.
CurvePolygon(std::size_t nRings, GeomType t, int srid=0, Envelope *mbr=0)
It initializes the curve polygon with the specified spatial reference system id and envelope.
Curve * operator[](std::size_t i)
It returns the n-th ring.
virtual te::dt::AbstractData * clone() const
It clones the linestring.
CurvePolygon(const CurvePolygon &rhs)
Copy constructor.
std::vector< Curve * > m_rings
An array with the ring list.
void setNumRings(std::size_t size)
It sets the number of rings in this curve polygon.
void add(Curve *ring)
It adds the ring to the curve polygon.
void clear()
It deletes all the rings of the CurvePolygon and clear it.
Point * getPointOnSurface() const
It returns a point guaranteed to be on this surface.
Curve * getInteriorRingN(std::size_t i) const
It returns the n-th interior ring for this curve polygon as a curve.
void push_back(Curve *ring)
It adds the curve to the curve polygon.
Curve * getExteriorRing() const
It returns the exterior ring of this CurvePolygon.
std::size_t getNumInteriorRings() const
It returns the number of interior rings in this CurvePolygon.
const std::vector< Curve * > & getRings() const
It returns the polygon rings.
Point * getCentroid() const
It returns the mathematical centroid for this surface as a point.
static const std::string sm_typeName
std::size_t getNPoints() const
it returns the number of points (vertexes) in the geometry.
void convert(te::srs::Converter *converter) override
It converts the coordinate values of the geometry to the new spatial reference system.
void removeRingN(std::size_t i)
It removes the n-th ring in this CurvePolygon.
std::size_t getNumRings() const
It returns the number of rings in this CurvePolygon.
Curve is an abstract class that represents 1-dimensional geometric objects stored as a sequence of co...
An Envelope defines a 2D rectangular region.
A point with x and y coordinate values.
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.