Go to the documentation of this file.
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;
441 #endif // __TERRALIB_GEOMETRY_INTERNAL_CURVEPOLYGON_H
virtual CurvePolygon & operator=(const CurvePolygon &rhs)
Assignment operator.
An Envelope defines a 2D rectangular region.
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.
void setRingN(std::size_t i, Curve *r)
It sets the informed position ring to the new one.
std::size_t getNumRings() const
It returns the number of rings in this CurvePolygon.
std::size_t getNumInteriorRings() const
It returns the number of interior rings in this CurvePolygon.
Coord2D * getCentroidCoord() const
It returns the mathematical centroid for this surface as a coordinate.
void add(Curve *ring)
It adds the ring to the curve polygon.
virtual const std::string & getGeometryType() const
The name of the geometry subtype for curve polygons is: CurvePolygon.
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.
Surface is an abstract class that represents a 2-dimensional geometric objects.
#define TEGEOMEXPORT
You can use this macro in order to export/import classes and functions from this module.
virtual te::dt::AbstractData * clone() const
It clones the linestring.
Curve * getExteriorRing() const
It returns the exterior ring of this CurvePolygon.
Curve * operator[](std::size_t i)
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.
void setNumRings(std::size_t size)
It sets the number of rings in this curve polygon.
void push_back(Curve *ring)
It adds the curve to the curve polygon.
#define TE_DEFINE_VISITABLE
Curve * getRingN(std::size_t i) const
It returns the n-th ring for this curve polygon as a curve.
double getPerimeter() const
It returns the length of the boundary for the surface.
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 * operator[](std::size_t i) const
It returns the n-th ring.
An utility struct for representing 2D coordinates.
A base class for values that can be retrieved from the data access module.
CurvePolygon(const CurvePolygon &rhs)
Copy constructor.
void removeRingN(std::size_t i)
It removes the n-th ring in this CurvePolygon.
Coord2D * getCoordOnSurface() const
It returns a coordinate guaranteed to be on this surface.
Curve is an abstract class that represents 1-dimensional geometric objects stored as a sequence of co...
Curve * getInteriorRingN(std::size_t i) const
It returns the n-th interior ring for this curve polygon as a curve.
const std::vector< Curve * > & getRings() const
It returns the polygon rings.
GeomType
Each enumerated type is compatible with a Well-known Binary (WKB) type code.
Point * getCentroid() const
It returns the mathematical centroid for this surface as a point.
A point with x and y coordinate values.
virtual ~CurvePolygon()
Virtual destructor.