27 #include "../core/translator/Translator.h" 28 #include "../srs/Converter.h" 47 :
Curve(t, srid, mbr),
52 else if((
m_gType & 0xF00) == 0x700)
54 else if((
m_gType & 0xF00) == 0xB00)
56 assert(
m_zA.size() == 0);
57 assert(
m_mA.size() == 0);
101 #ifdef TERRALIB_MOD_SRS_ENABLED 107 converter->setSourceSRID(
getSRID());
109 converter->setTargetSRID(srid);
113 converter->convert(pt, &(pt[1]), static_cast<long>(
size()), 2);
121 #endif // TERRALIB_MOD_SRS_ENABLED 131 const std::size_t nPts =
size();
141 for(std::size_t i = 1; i < nPts; ++i)
189 else if((
m_gType & 0xF00) == 0x700)
191 else if((
m_gType & 0xF00) == 0xB00)
209 if ((
m_gType & 0xF00) == 0x000)
215 if ((
m_gType & 0xF00) == 0x300)
224 if ((
m_gType & 0xF00) == 0x700)
250 else if((
m_gType & 0xF00) == 0x300)
252 else if((
m_gType & 0xF00) == 0x700)
268 assert((i <
size()) && (
m_zA.empty() ==
false));
276 assert((i <
size()) && (
m_mA.empty() ==
false));
284 assert((i <
size()) && (
m_zA.empty() ==
false) && (
m_mA.empty() ==
false));
305 assert((i <
size()) && (
m_zA.empty() ==
false));
311 assert((i <
size()) && (
m_mA.empty() ==
false));
330 assert((i <
size()) && (
m_zA.empty() ==
false));
336 assert((i <
size()) && (
m_mA.empty() ==
false));
std::size_t size() const
It returns the number of points (vertexes) in the geometry.
void makeInvalid()
It will invalidated the envelope.
GeomType
Each enumerated type is compatible with a Well-known Binary (WKB) type code.
void transform(int srid)
It converts the coordinate values of the circularstring to the new spatial reference system...
void setPointN(std::size_t i, const Point &p)
It sets the value of the specified point to this new one.
std::unique_ptr< Point > getPointN(std::size_t i) const
It returns the specified point in this CircularString.
Base exception class for plugin module.
Curve is an abstract class that represents 1-dimensional geometric objects stored as a sequence of co...
CircularString is a curve with circular interpolation between points.
const std::vector< double > & getM() const
It returns a pointer to the internal array of m-values.
int m_srid
The Spatial Reference System code associated to the Geometry.
A point with x and y coordinate values.
double m_urx
Upper right corner x-coordinate.
void setY(std::size_t i, const double &y)
It sets the n-th y coordinate value.
const std::string & getGeometryType() const
The name of instantiable subtype is: CircularString.
Geometry * locateBetween(const double &mStart, const double &mEnd) const
It returns a derived geometry collection value according to the range of coordinate values inclusivel...
CircularString & operator=(const CircularString &rhs)
Assignment operator.
std::vector< double > m_zA
A pointer to z values.
virtual Curve & operator=(const Curve &rhs)
Assignment operator.
void setM(std::size_t i, const double &m)
It sets the n-th m measure value.
void computeMBR(bool cascade) const
It computes the minimum bounding rectangle for the circularstring.
#define TE_TR(message)
It marks a string in order to get translated.
void setPoint(std::size_t i, const double &x, const double &y)
It sets the value of the specified point.
int getSRID() const _NOEXCEPT_OP(true)
It returns the Spatial Reference System ID associated to this geometric object.
double m_llx
Lower left corner x-coordinate.
An Envelope defines a 2D rectangular region.
const double & getY() const
It returns the Point y-coordinate value.
A point with x and y coordinate values.
An Envelope defines a 2D rectangular region.
void setNumCoordinates(std::size_t size)
It reserves room for the number of coordinates in this CircularString.
void setPointZM(std::size_t i, const double &x, const double &y, const double &z, const double &m)
It sets the value of the specified point.
A base class for values that can be retrieved from the data access module.
std::vector< double > m_mA
A pointer to m values.
void setX(std::size_t i, const double &x)
It sets the n-th x coordinate value.
const double & getZ() const
It returns the Point z-coordinate value, if it has one or DoubleNotANumber otherwise.
This class is designed to declare objects to be thrown as exceptions by TerraLib. ...
Geometry is the root class of the geometries hierarchy, it follows OGC and ISO standards.
std::vector< Coord2D > m_coords
A pointer to x, y values.
Envelope * m_mbr
The geometry minimum bounding rectangle.
double m_lly
Lower left corner y-coordinate.
bool isClosed() const
It returns true if the curve is closed (startPoint = endPoint).
A Converter is responsible for the conversion of coordinates between different Coordinate Systems (CS...
const double & getX(std::size_t i) const
It returns the n-th x coordinate value.
double m_ury
Upper right corner y-coordinate.
double getLength() const
The length of this Curve in its associated spatial reference.
const std::vector< double > & getZ() const
It returns a pointer to the internal array of z-values.
const double & getY(std::size_t i) const
It returns the n-th y coordinate value.
std::unique_ptr< Point > getStartPoint() const
It returns the curve start point.
void setZ(std::size_t i, const double &z)
It sets the n-th z coordinate value.
void setPointM(std::size_t i, const double &x, const double &y, const double &m)
It sets the value of the specified point.
const double & getM() const
It returns the Point m-coordinate value, if it has one or DoubleNotANumber otherwise.
GeomType m_gType
Internal geometry type.
void setSRID(int srid)
It sets the Spatial Reference System ID of the circularstring.
void makeEmpty()
It clears all the coordinates.
std::unique_ptr< Point > getEndPoint() const
It returns the curve end point.
static const std::string sm_typeName
void setPointZ(std::size_t i, const double &x, const double &y, const double &z)
It sets the value of the specified point.
te::dt::AbstractData * clone() const
It clones the circularstring.
An utility struct for representing 2D coordinates.
An exception class for the Geometry module.
const double & getX() const
It returns the Point x-coordinate value.
~CircularString()
Virtual destructor.
CircularString is a curve with circular interpolation between points.
CircularString(GeomType t, int srid=0, Envelope *mbr=0)
It initializes the circularstring with the specified spatial reference system id and envelope...