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);
269 m_rings.push_back(ring);
281 m_rings.push_back(ring);
300 std::vector<Curve*>&
getRings() {
return m_rings; }
311 const std::vector<Curve*>&
getRings()
const {
return m_rings; }
325 double getArea()
const;
335 Point* getCentroid()
const;
346 Coord2D* getCentroidCoord()
const;
355 Point* getPointOnSurface()
const;
366 Coord2D* getCoordOnSurface()
const;
373 double getPerimeter()
const;
387 virtual const std::string& getGeometryType()
const throw();
398 void setSRID(
int srid) throw();
413 void transform(
int srid) throw(
te::common::
Exception);
424 void computeMBR(
bool cascade) const throw();
433 std::
size_t getNPoints() const throw();
441 static const std::
string sm_typeName;
447 #endif // __TERRALIB_GEOMETRY_INTERNAL_CURVEPOLYGON_H
std::size_t getNumRings() const
It returns the number of rings in this CurvePolygon.
void add(Curve *ring)
It adds the ring to the curve polygon.
void push_back(Curve *ring)
It adds the curve to the curve polygon.
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.
Base exception class for plugin module.
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.
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
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.