26 #ifndef __TERRALIB_GEOMETRY_INTERNAL_CURVEPOLYGON_H 27 #define __TERRALIB_GEOMETRY_INTERNAL_CURVEPOLYGON_H 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();
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;
441 #endif // __TERRALIB_GEOMETRY_INTERNAL_CURVEPOLYGON_H Curve * getRingN(std::size_t i) const
It returns the n-th ring for this curve polygon as a curve.
std::vector< Curve * > & getRings()
It returns the polygon rings.
GeomType
Each enumerated type is compatible with a Well-known Binary (WKB) type code.
const std::vector< Curve * > & getRings() const
It returns the polygon rings.
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.
A point with x and y coordinate values.
An Envelope defines a 2D rectangular region.
Curve * operator[](std::size_t i) const
It returns the n-th ring.
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
std::size_t getNumRings() const
It returns the number of rings in this CurvePolygon.
Surface is an abstract class that represents a 2-dimensional geometric objects.