26#ifndef __TERRALIB_GEOMETRY_INTERNAL_CURVEPOLYGON_H
27#define __TERRALIB_GEOMETRY_INTERNAL_CURVEPOLYGON_H
155 return m_rings.size();
195 assert(i < m_rings.size());
210 assert(i < m_rings.size());
225 assert(i < m_rings.size());
294 std::vector<Curve*>&
getRings() {
return m_rings; }
305 const std::vector<Curve*>&
getRings()
const {
return m_rings; }
392 void setSRID(
int srid) throw();
407 void convert(
te::srs::Converter* converter) override;
418 void computeMBR(
bool cascade) const throw();
427 std::
size_t getNPoints() const throw();
435 static const std::
string sm_typeName;
#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.
CurvePolygon is a planar surface defined by 1 exterior boundary and 0 or more interior boundaries.
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.
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 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.
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.
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 is an abstract class that represents a 2-dimensional geometric objects.
GeomType
Each enumerated type is compatible with a Well-known Binary (WKB) type code.
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.