27 #include "../core/translator/Translator.h" 28 #include "../srs/Converter.h" 43 #ifdef TERRALIB_GEOS_ENABLED 45 #include <geos/geom/Geometry.h> 46 #include <geos/util/GEOSException.h> 52 :
Curve(t, srid, mbr),
61 :
Curve(t, srid, mbr),
69 m_zA = static_cast<double*>(malloc(8 * size));
72 m_mA = static_cast<double*>(malloc(8 * size));
76 assert(
m_zA ==
nullptr);
77 assert(
m_mA ==
nullptr);
79 m_zA =
static_cast<double*
>(malloc(8 * size));
80 m_mA =
static_cast<double*
>(malloc(8 * size));
100 m_zA =
static_cast<double*
>(malloc(8 * rhs.
m_nPts));
106 m_mA =
static_cast<double*
>(malloc(8 * rhs.
m_nPts));
138 m_zA =
static_cast<double*
>(malloc(
sizeof(
double ) * rhs.
m_nPts));
148 m_mA =
static_cast<double*
>(malloc(
sizeof(
double ) * rhs.
m_nPts));
179 #ifdef TERRALIB_MOD_SRS_ENABLED 185 converter->setSourceSRID(
getSRID());
187 converter->setTargetSRID(srid);
191 converter->convert(pt, &(pt[1]), static_cast<long>(
size()), 2);
199 #endif // TERRALIB_MOD_SRS_ENABLED 209 const std::size_t nPts =
size();
219 for(std::size_t i = 1; i < nPts; ++i)
276 double* zA =
static_cast<double*
>(malloc(8 * size));
284 double* mA =
static_cast<double*
>(malloc(8 * size));
292 double* zA =
static_cast<double*
>(malloc(8 * size));
297 double* mA =
static_cast<double*
>(malloc(8 * size));
323 if ((
m_gType & 0xF00) == 0x000)
329 if ((
m_gType & 0xF00) == 0x300)
void setZ(std::size_t i, const double &z)
It sets the n-th z coordinate value.
std::unique_ptr< Point > getEndPoint() const
It returns the curve end point.
void makeInvalid()
It will invalidated the envelope.
GeomType
Each enumerated type is compatible with a Well-known Binary (WKB) type code.
LineString(GeomType t, int srid=0, Envelope *mbr=0)
It initializes the linestring with the specified spatial reference system id and envelope.
void computeMBR(bool cascade) const
It computes the minimum bounding rectangle for the linestring.
void setX(std::size_t i, const double &x)
It sets the n-th x coordinate value.
static const std::string sm_typeName
Configuration flags for the Vector Geometry Model of TerraLib.
Base exception class for plugin module.
Curve is an abstract class that represents 1-dimensional geometric objects stored as a sequence of co...
virtual te::dt::AbstractData * clone() const
It clones the linestring.
void makeEmpty()
It clears all the coordinates.
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.
std::unique_ptr< Point > getPointN(std::size_t i) const
It returns the specified point in this LineString.
virtual ~LineString()
Virtual destructor.
An utility struct for representing 2D coordinates.
virtual Curve & operator=(const Curve &rhs)
Assignment operator.
#define TE_TR(message)
It marks a string in order to get translated.
double * m_zA
A pointer to z values.
bool isClosed() const
It returns true if the curve is closed (startPoint = endPoint).
std::size_t m_nPts
The number of coordinates of the LineString.
const double & getY(std::size_t i) const
It returns the n-th y coordinate value.
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.
LineString is a curve with linear interpolation between points.
double * getM() const
It returns a pointer to the internal array of m-values.
const double & getY() const
It returns the Point y-coordinate value.
A point with x and y coordinate values.
void setPoint(std::size_t i, const double &x, const double &y)
It sets the value of the specified point.
An Envelope defines a 2D rectangular region.
const double & getX(std::size_t i) const
It returns the n-th x coordinate value.
void setNumCoordinates(std::size_t size)
It reserves room for the number of coordinates in this LineString.
A base class for values that can be retrieved from the data access module.
Coord2D * m_coords
A pointer to x, y values.
void setPointZ(std::size_t i, const double &x, const double &y, const double &z)
It sets the value of the specified point.
virtual LineString & operator=(const LineString &rhs)
Assignment operator.
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.
Envelope * m_mbr
The geometry minimum bounding rectangle.
A class that converts a TerraLib geometry to a GEOS geometry.
double m_lly
Lower left corner y-coordinate.
void setM(std::size_t i, const double &m)
It sets the n-th m measure value.
A Converter is responsible for the conversion of coordinates between different Coordinate Systems (CS...
Geometry * locateBetween(const double &mStart, const double &mEnd) const
It returns a derived geometry collection value according to the range of coordinate values inclusivel...
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.
double m_ury
Upper right corner y-coordinate.
void setSRID(int srid)
It sets the Spatial Reference System ID of the linestring.
const double & getM() const
It returns the Point m-coordinate value, if it has one or DoubleNotANumber otherwise.
void setPointM(std::size_t i, const double &x, const double &y, const double &m)
It sets the value of the specified point.
GeomType m_gType
Internal geometry type.
LineString is a curve with linear interpolation between points.
void setPointN(std::size_t i, const Point &p)
It sets the value of the specified point to this new one.
void setY(std::size_t i, const double &y)
It sets the n-th y coordinate value.
An utility struct for representing 2D coordinates.
An exception class for the Geometry module.
double * getZ() const
It returns a pointer to the internal array of z-values.
std::unique_ptr< Point > getStartPoint() const
The length of this Curve in its associated spatial reference.
const double & getX() const
It returns the Point x-coordinate value.
double * m_mA
A pointer to m values.
void transform(int srid)
It converts the coordinate values of the linestring to the new spatial reference system.
std::size_t size() const
It returns the number of points (vertexes) in the geometry.
const std::string & getGeometryType() const
The name of instantiable subtype is: LineString.