26 #ifndef __TERRALIB_GEOMETRY_INTERNAL_CURVEPOLYGON_H 27 #define __TERRALIB_GEOMETRY_INTERNAL_CURVEPOLYGON_H 87 CurvePolygon(
const CurvePolygon& rhs);
90 virtual ~CurvePolygon();
99 virtual CurvePolygon& operator=(
const CurvePolygon& rhs);
137 Curve* getExteriorRing()
const;
144 std::size_t getNumInteriorRings()
const;
155 return m_rings.size();
167 void setNumRings(std::size_t size);
178 Curve* getInteriorRingN(std::size_t i)
const;
195 assert(i < m_rings.size());
210 assert(i < m_rings.size());
225 assert(i < m_rings.size());
243 void setRingN(std::size_t i,
Curve* r);
258 void removeRingN(std::size_t i);
267 void add(
Curve* ring);
276 void push_back(
Curve* ring);
294 std::vector<Curve*>&
getRings() {
return m_rings; }
305 const std::vector<Curve*>&
getRings()
const {
return m_rings; }
319 double getArea()
const;
329 Point* getCentroid()
const;
340 Coord2D* getCentroidCoord()
const;
349 Point* getPointOnSurface()
const;
360 Coord2D* getCoordOnSurface()
const;
367 double getPerimeter()
const;
381 virtual const std::string& getGeometryType()
const throw();
392 void setSRID(
int srid)
throw();
418 void computeMBR(
bool cascade)
const throw();
427 std::size_t getNPoints()
const throw();
441 #endif // __TERRALIB_GEOMETRY_INTERNAL_CURVEPOLYGON_H std::size_t getNumRings() const
It returns the number of rings in this CurvePolygon.
std::vector< Curve * > & getRings()
It returns the polygon rings.
GeomType
Each enumerated type is compatible with a Well-known Binary (WKB) type code.
Curve * operator[](std::size_t i)
It returns the n-th ring.
Curve is an abstract class that represents 1-dimensional geometric objects stored as a sequence of co...
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.
static const std::string sm_typeName
const std::vector< Curve * > & getRings() const
It returns the polygon rings.
A point with x and y coordinate values.
An Envelope defines a 2D rectangular region.
Surface is an abstract class that represents a 2-dimensional geometric objects.
CurvePolygon is a planar surface defined by 1 exterior boundary and 0 or more interior boundaries...
A base class for values that can be retrieved from the data access module.
#define TE_DEFINE_VISITABLE
This class is designed to declare objects to be thrown as exceptions by TerraLib. ...
Curve * operator[](std::size_t i) const
It returns the n-th ring.
Curve * getRingN(std::size_t i) const
It returns the n-th ring for this curve polygon as a curve.
Surface is an abstract class that represents a 2-dimensional geometric objects.
std::vector< Curve * > m_rings
An array with the ring list.