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.
 
double getArea() const
It returns the area of this surface, as measured in the spatial reference system of this surface.
 
virtual ~CurvePolygon()
Virtual destructor.
 
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.
 
void setRingN(std::size_t i, Curve *r)
It sets the informed position ring to the new one.
 
Curve * operator[](std::size_t i)
It returns the n-th ring.
 
Curve * getExteriorRing() const
It returns the exterior ring of this CurvePolygon.
 
virtual CurvePolygon & operator=(const CurvePolygon &rhs)
Assignment operator.
 
double getPerimeter() const
It returns the length of the boundary for the surface.
 
Point * getCentroid() const
It returns the mathematical centroid for this surface as a point.
 
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.
 
Coord2D * getCentroidCoord() const
It returns the mathematical centroid for this surface as a coordinate.
 
const std::vector< Curve * > & getRings() const
It returns the polygon rings.
 
Curve * getInteriorRingN(std::size_t i) const
It returns the n-th interior ring for this curve polygon as a curve.
 
CurvePolygon(const CurvePolygon &rhs)
Copy constructor.
 
void setNumRings(std::size_t size)
It sets the number of rings in this curve polygon.
 
std::vector< Curve * > & getRings()
It returns the polygon rings.
 
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.
 
Curve * operator[](std::size_t i) const
It returns the n-th ring.
 
void push_back(Curve *ring)
It adds the curve to the curve polygon.
 
std::size_t getNumInteriorRings() const
It returns the number of interior rings in this CurvePolygon.
 
virtual te::dt::AbstractData * clone() const
It clones the linestring.
 
Curve * getRingN(std::size_t i) const
It returns the n-th ring for this curve polygon as a curve.
 
Point * getPointOnSurface() const
It returns a point guaranteed to be on this surface.
 
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.