te::gm Namespace Reference

Namespace for the Vector Geometry module of TerraLib. More...

Classes

class  AffineGT
 2D Affine Geometric transformation. More...
 
class  AffineGTFactory
 2D Affine Geometric transformation factory. More...
 
class  CircularString
 CircularString is a curve with circular interpolation between points. More...
 
class  CompoundCurve
 CompoundCurve is a curve that may have circular and linear segments. More...
 
struct  Coord2D
 An utility struct for representing 2D coordinates. More...
 
class  Curve
 Curve is an abstract class that represents 1-dimensional geometric objects stored as a sequence of coordinates. More...
 
class  CurvePolygon
 CurvePolygon is a planar surface defined by 1 exterior boundary and 0 or more interior boundaries. More...
 
struct  DistanceOrderFunctor
 This struct is used sorts a vector of points by distance. More...
 
class  Envelope
 An Envelope defines a 2D rectangular region. More...
 
class  FixGeometryTopology
 A static class with methods to fix geometry topology. More...
 
class  GeometricTransformation
 2D Geometric transformation base class. More...
 
class  Geometry
 Geometry is the root class of the geometries hierarchy, it follows OGC and ISO standards. More...
 
class  GeometryCollection
 It is a collection of other geometric objects. More...
 
class  GeometryFactory
 This is the Geometry factory for TerraLib geometries. More...
 
class  GeometryProperty
 Geometric property. More...
 
class  GEOSWriter
 A class that converts a TerraLib geometry to a GEOS geometry. More...
 
class  GTFactory
 2D Geometric transformation factory. More...
 
class  GTFilter
 2D Geometric transformation tie-points filter (outliers remotion). More...
 
class  GTModelParameters
 2D Geometric transformation model parameters. More...
 
class  GTParameters
 2D Geometric transformation parameters. More...
 
class  Line
 A Line is LineString with 2 points. More...
 
class  LinearRing
 A LinearRing is a LineString that is both closed and simple. More...
 
class  LineString
 LineString is a curve with linear interpolation between points. More...
 
class  Module
 This singleton defines the TerraLib Vector Geometry module entry.
More...
 
class  MultiCurve
 MultiCurve is a class that represents a 1-dimensional GeometryCollection whose elements are curves. More...
 
class  MultiLineString
 MultiLineString is a MultiCurve whose elements are LineStrings. More...
 
class  MultiPoint
 MultiPoint is a GeometryCollection whose elements are restricted to points. More...
 
class  MultiPolygon
 MultiPolygon is a MultiSurface whose elements are Polygons. More...
 
class  MultiSurface
 MultiSurface is a class that represents a 2-dimensional GeometryCollection whose elements are surfaces. More...
 
class  Point
 A point with x and y coordinate values. More...
 
class  Polygon
 Polygon is a subclass of CurvePolygon whose rings are defined by linear rings. More...
 
class  PolyhedralSurface
 PolyhedralSurface is a contiguous collection of polygons, which share common boundary segments. More...
 
class  ProjectiveGT
 2D Projective Geometric transformation. More...
 
class  ProjectiveGTFactory
 2D Projective Geometric transformation factory. More...
 
class  RSTGT
 2D Rotation/scale/translation(rigid body) Geometric transformation. More...
 
class  RSTGTFactory
 2D RST Geometric transformation factory. More...
 
class  SecondDegreePolynomialGT
 Second Degree Polynomial Geometric transformation. More...
 
class  SecondDegreePolynomialGTFactory
 2D Second Degree Polynomial Geometric transformation factory. More...
 
class  Surface
 Surface is an abstract class that represents a 2-dimensional geometric objects. More...
 
class  ThirdDegreePolynomialGT
 Third Degree Polynomial Geometric transformation. More...
 
class  ThirdDegreePolynomialGTFactory
 2D Third Degree Polynomial Geometric transformation factory. More...
 
class  TIN
 TIN (triangulated irregular network) is a PolyhedralSurface consisting only of Triangle patches. More...
 
struct  TopologyValidationError
 This struct contains informations about GEOS TopologyValidationError. More...
 
class  Triangle
 Triangle is a polygon with 3 distinct, non-collinear vertices and no interior boundary. More...
 
class  Visitor
 A visitor interface for the Geometry hierarchy. More...
 
class  WKBReader
 A class that deserializes a geometry from a valid WKB. More...
 
class  WKBSize
 A class that computes the number of bytes necessary to encode a geometry in WKB. More...
 
class  WKBWriter
 A class that serializes a geometry to the WKB format. More...
 
class  WKTActions
 A class that implements the Grammar Rules for well known text (WKT) format for Geometry. More...
 
class  WKTParser
 
class  WKTReader
 A class that deserializes a Geometry from a valid WKT. More...
 
class  WKTWriter
 A class that serializes a geometry to the WKT format. More...
 

Typedefs

typedef boost::shared_ptr< GeometryGeometryShrPtr
 

Enumerations

enum  BufferCapStyle { CapRoundType, CapButtType, CapSquareType }
 Buffer end cap style. More...
 
enum  Dimensionality { P = 0, L = 1, A = 2 }
 From Wikipedia: "in mathematics, the dimension of an object is an intrinsic property, independent of the space in which the object may happen to be embedded". More...
 
enum  GeomType {
  GeometryType = 0, GeometryZType = 1000, GeometryMType = 2000, GeometryZMType = 3000,
  PointType = 1, PointZType = 1001, PointMType = 2001, PointZMType = 3001,
  PointKdType = 0xFFFFFFFD, LineStringType = 2, LineStringZType = 1002, LineStringMType = 2002,
  LineStringZMType = 3002, CircularStringType = 8, CircularStringZType = 1008, CircularStringMType = 2008,
  CircularStringZMType = 3008, CompoundCurveType = 9, CompoundCurveZType = 1009, CompoundCurveMType = 2009,
  CompoundCurveZMType = 3009, PolygonType = 3, PolygonZType = 1003, PolygonMType = 2003,
  PolygonZMType = 3003, CurvePolygonType = 10, CurvePolygonZType = 1010, CurvePolygonMType = 2010,
  CurvePolygonZMType = 3010, GeometryCollectionType = 7, GeometryCollectionZType = 1007, GeometryCollectionMType = 2007,
  GeometryCollectionZMType = 3007, MultiPointType = 4, MultiPointZType = 1004, MultiPointMType = 2004,
  MultiPointZMType = 3004, MultiLineStringType = 5, MultiLineStringZType = 1005, MultiLineStringMType = 2005,
  MultiLineStringZMType = 3005, MultiPolygonType = 6, MultiPolygonZType = 1006, MultiPolygonMType = 2006,
  MultiPolygonZMType = 3006, MultiSurfaceType = 12, MultiSurfaceZType = 1012, MultiSurfaceMType = 2012,
  MultiSurfaceZMType = 3012, PolyhedralSurfaceType = 15, PolyhedralSurfaceZType = 1015, PolyhedralSurfaceMType = 2015,
  PolyhedralSurfaceZMType = 3015, TINType = 16, TINZType = 1016, TINMType = 2016,
  TINZMType = 3016, TriangleType = 17, TriangleZType = 1017, TriangleMType = 2017,
  TriangleZMType = 3017, UnknownGeometryType = 0xFFFFFFFF
}
 Each enumerated type is compatible with a Well-known Binary (WKB) type code. More...
 
enum  SpatialRelation {
  UNKNOWN_SPATIAL_RELATION = 0, INTERSECTS = 1, DISJOINT = 2, TOUCHES = 4,
  OVERLAPS = 8, CROSSES = 16, WITHIN = 32, CONTAINS = 64,
  COVERS = 128, COVEREDBY = 256, EQUALS = 512
}
 Spatial relations between geometric objects. More...
 

Functions

TEGEOMEXPORT LineStringAddIntersectionPoints (const te::sam::rtree::Index< std::size_t, 8 > &rtree, const std::vector< te::gm::LineString > &candidateSegments, const std::set< std::size_t > &setIndexesIgnored, const te::gm::LineString &lr_Reference, const bool &usePerpendicularDistance=false)
 Add intersection points in a LinearRing based on a Vector of LineString as reference. More...
 
TEGEOMEXPORT void AddLineString (te::gm::LineString *lineString, std::vector< te::gm::Geometry *> &pAdd)
 Add the linestring given to the vector. More...
 
TEGEOMEXPORT void AddPolygon (te::gm::Polygon *polygon, std::vector< te::gm::Geometry *> &pAdd)
 Add all line strings from the polygon given to the vector given. More...
 
TEGEOMEXPORT bool AdjustSegment (te::gm::Point *P0, te::gm::Point *P1, double d0, te::gm::Coord2D &P0out, te::gm::Coord2D &P1out)
 
TEGEOMEXPORT Envelope AdjustToCut (const Envelope &env, double bWidth, double bHeight)
 Finds the correspondent smallest box that allows a box to be cut in blocks of a given size. More...
 
TEGEOMEXPORT te::gm::GeometryCascadedPolygonUnion (const std::vector< te::gm::Polygon *> &polygonVector)
 Provides an efficient method of unioning a collection of Polygonal geometries. This algorithm is faster and likely more robust than the simple iterated approach of repeatedly unioning each polygon to a result geometry. More...
 
TEGEOMEXPORT bool CheckValidity (const Geometry *geom, te::gm::TopologyValidationError &error)
 It check geometry validity using GEOS. More...
 
TEGEOMEXPORT void ClosestPoints (te::gm::Geometry *geomA, te::gm::Geometry *geomB, te::gm::Coord2D &coordA, te::gm::Coord2D &coordB)
 Compute the the closest points of two geometries. More...
 
TEGEOMEXPORT te::gm::Envelope CreateEnvelope (double x1, double y1, double x2, double y2)
 Creates an envelope that fits the given coordinates. It makes all the adjustments needed to return a valid envelope. More...
 
TEGEOMEXPORT te::gm::Envelope CreateEnvelope (const te::gm::Point &p1, const te::gm::Point &p2)
 Creates an envelope that fits the given coordinates. It makes all the adjustments needed to return a valid envelope. More...
 
TEGEOMEXPORT te::gm::LineString CreateLine (const te::gm::Coord2D &startCoord, const te::gm::Coord2D &endCoord, const int &srid, const int &numberOfIntermediateCoords)
 Creates a LineString between the given startCoord and endCoord with the given number of intermediate coordinates. More...
 
TEGEOMEXPORT te::gm::Polygon CreatePolygon (const te::gm::Envelope &box, const int &srid, const int &numberOfIntermediateCoords)
 Creates a Polygon from the given envelope and with the given number of intermediate coordinates in each of its four borders lines. More...
 
TEGEOMEXPORT double GetAngle (te::gm::Coord2D coordA, te::gm::Coord2D coordB)
 
TEGEOMEXPORT std::vector< MultiLineString * > GetAsMultiLineStringVector (const te::gm::Geometry &geometry)
 Get the vector of MultLineStrings that compose the Geometry. More...
 
int GetCoordDimension (GeomType t)
 It returns the number of measurements or axes needed to describe a position in a coordinate system. More...
 
TEGEOMEXPORT std::unique_ptr< te::gm::GeometryGetGeometryUnion (const std::vector< te::gm::Geometry *> &geomVec)
 It returns the union of a geometry vector. More...
 
TEGEOMEXPORT GeometryGetGeomFromEnvelope (const Envelope *const e, int srid)
 It creates a Geometry (a polygon) from the given envelope. More...
 
TEGEOMEXPORT te::gm::LineGetIntersectionLine (te::gm::Geometry *geom, te::gm::Coord2D coord)
 
TEGEOMEXPORT std::vector< te::gm::PointGetIntersectionPointsByOperators (const te::gm::LineString &lsReference, const std::vector< te::gm::LineString > &candidates)
 Gets a vector of LineString reference points including intersection points using GEOS operators. More...
 
TEGEOMEXPORT std::vector< te::gm::PointGetIntersectionPointsByPerpendicularDistance (const te::gm::LineString &lsReference, const std::vector< te::gm::LineString > &candidates)
 Gets a vector of LineString reference points including intersection points using perpendicular distance. More...
 
TEGEOMEXPORT te::gm::GeomType GetMultiLineStringType (const te::gm::Geometry &geometry)
 Get the LineStrings that compose the Geometry. More...
 
TEGEOMEXPORT te::gm::GeomType GetMultiType (te::gm::GeomType geomType)
 Get the collection type of GeomType. More...
 
TEGEOMEXPORT te::gm::GeomType GetSimpleType (te::gm::GeomType geomType)
 Get the simple type of GeomType. More...
 
template<class T1 , class T2 >
bool Intersects (const T1 &o1, const T2 &o2)
 
template<>
TEGEOMEXPORT bool Intersects (const te::gm::Point &point, const te::gm::Envelope &e)
 
TEGEOMEXPORT bool IsEqual (const te::gm::Point &p1, const te::gm::Point &p2)
 Checks if a point p1 is exactly equal to the point p2. More...
 
TEGEOMEXPORT bool IsEqual (const te::gm::Point &p1, const te::gm::Point &p2, double tol)
 Checks if a point p1 is equal to the point p2 considering the given tolerance. More...
 
TEGEOMEXPORT bool IsMultiType (te::gm::GeomType geomType)
 Verifies if the geomType is a collection type. More...
 
TEGEOMEXPORT Coord2DlocateAlong (const LineString *line, double initial, double final, double target)
 Make the line interpolation to find a target. More...
 
TEGEOMEXPORT void Multi2Single (const te::gm::Geometry *g, std::vector< te::gm::Geometry *> &geoms)
 It will get a GeometryCollection and distribute in a vector. More...
 
TEGEOMEXPORT te::gm::GeometryMultiLineToDefinedType (const std::vector< te::gm::MultiLineString *> &multiLineStringVector, te::gm::GeomType geometryType)
 A geometry is built based on a Vector of MultiLineString and the origin geometry type. More...
 
TEGEOMEXPORT double PerpendicularDistance (const te::gm::Point &first, const te::gm::Point &last, te::gm::Point &pin, Point &pinter)
 Calculate the perpendicular distance of a point in a segment. More...
 
TEGEOMEXPORT void Polygonizer (te::gm::Geometry *g, std::vector< te::gm::Polygon *> &pols)
 It will get a list of polygons formed by the polygonization. More...
 
TEGEOMEXPORT te::gm::GeometryPrepareGeometriesToIntersection (const te::gm::Geometry *geom_A, te::gm::Geometry *geomB, bool &wasChanged)
 Prepares the geometry A with intersection points in geometry B. More...
 
TEGEOMEXPORT te::gm::GeometryPrepareGeometriesToIntersection (const te::gm::Geometry *geom_A, const std::vector< te::gm::Geometry *> &vecGeomB, bool &wasChanged)
 Prepares the geometry A with intersection points in geometry B. More...
 
TEGEOMEXPORT te::gm::MultiLineStringPrepareGeometriesToIntersection (const te::gm::MultiLineString &mline_A, const te::sam::rtree::Index< std::size_t, 8 > &rtree, std::vector< te::gm::LineString > &vecRtreeSegments, bool &wasChanged)
 Prepares the MultiLineString A with intersection points in MultiLineString B. More...
 
TEGEOMEXPORT te::gm::LineStringPrepareGeometriesToIntersection (const te::gm::LineString &ls_A, const te::sam::rtree::Index< std::size_t, 8 > &rtree, std::vector< te::gm::LineString > &vecRtreeSegments, bool &wasChanged)
 Prepares the LineString A with intersection points in LineString B. More...
 
TEGEOMEXPORT bool Rotate (te::gm::Coord2D pr, te::gm::LineString *l, double angle, te::gm::LineString *lOut)
 
TEGEOMEXPORT bool SatisfySpatialRelation (const Geometry *g1, const Geometry *g2, SpatialRelation relation)
 It returns if two geometries satisfy a given spatial relation. More...
 
TEGEOMEXPORT LineStringSnapLineToPoints (const te::sam::rtree::Index< std::size_t, 8 > &rtree, const std::vector< te::gm::LineString > &referenceSegments, const std::set< std::size_t > &setIndexesIgnored, const te::gm::LineString &linearRingToSnap, bool &wasChanged)
 Snaps a LinearRing based on a set of LineString. More...
 
TEGEOMEXPORT te::gm::GeometryUnaryUnion (te::gm::Geometry *geom)
 It will get the union of the input geometries. More...
 
TEGEOMEXPORT te::gm::GeometryValidate (te::gm::Geometry *geom)
 Get/create a valid version of the geometry given. If the geometry is a polygon or multi polygon, self intersections / inconsistencies are fixed. Otherwise the geometry is returned. More...
 
Geometry Methods

Methods related to Geometry conversion.

te::dt::AbstractDataGeometryToByteArrayConverter (te::dt::AbstractData *d) throw (Exception)
 It converts a Geometry data value to a ByteArray data value. More...
 
te::dt::AbstractDataGeometryToStringConverter (te::dt::AbstractData *d) throw (Exception)
 It converts a Geometry data value to a String data value. More...
 
te::dt::AbstractDataByteArrayToGeometryConverter (te::dt::AbstractData *d)
 It converts a ByteArray data value to a Geometry data value. More...
 
te::dt::AbstractDataStringToGeometryConverter (te::dt::AbstractData *d)
 It converts a String data value to a Geometry data value. More...
 

Detailed Description

Namespace for the Vector Geometry module of TerraLib.

Typedef Documentation

◆ GeometryShrPtr

typedef boost::shared_ptr<Geometry> te::gm::GeometryShrPtr

Definition at line 950 of file Geometry.h.

Enumeration Type Documentation

◆ BufferCapStyle

Buffer end cap style.

The end cap style specifies the buffer geometry that will be created at the ends of LineStrings.

Enumerator
CapRoundType 

A semi-circle (default).

CapButtType 

A straight line perpendicular to the end segment

CapSquareType 

A half-square

Definition at line 162 of file Enums.h.

◆ Dimensionality

From Wikipedia: "in mathematics, the dimension of an object is an intrinsic property, independent of the space in which the object may happen to be embedded".

Enumerator

Points are 0-dimensional.

Lines are 1-dimensional.

Polygons are 2-dimenional.

Definition at line 147 of file Enums.h.

◆ GeomType

Each enumerated type is compatible with a Well-known Binary (WKB) type code.

These are all WKB geometry types that TerraLib knows how to encode or decode. The values follows OGC Simple Feature Specification (SFS).

Enumerator
GeometryType 

Geometry is not instantiable but this is the general type for geometries in R2 (x, y).

GeometryZType 

Geometry is not instantiable but this is the general type for geometries in R3 (x, y, z).

GeometryMType 

Geometry is not instantiable but this is the general type for geometries in R3 (x, y, m).

GeometryZMType 

Geometry is not instantiable but this is the general type for geometries in R4 (x, y, z, m).

PointType 

A point in R2 with coordinate values for x and y.

PointZType 

A point in R3 with coordinate values for x, y and z.

PointMType 

A point in R3 with coordinate values for x, y and m.

PointZMType 

A point in R4 with coordinate values for x, y, z and m.

PointKdType 

A point in Rn with k coordinate values.

LineStringType 

A LineString in R2 with coordinate values for x and y.

LineStringZType 

A LineString in R3 with coordinate values for x, y and z.

LineStringMType 

A LineString in R3 with coordinate values for x, y and m.

LineStringZMType 

A LineString in R4 with coordinate values for x, y, z and m.

CircularStringType 

A CircularString in R2 with coordinate values for x and y.

CircularStringZType 

A CircularString in R3 with coordinate values for x, y and z.

CircularStringMType 

A CircularString in R3 with coordinate values for x, y and m.

CircularStringZMType 

A CircularString in R4 with coordinate values for x, y, z and m.

CompoundCurveType 

A CompoundCurve in R2 with coordinate values for x and y.

CompoundCurveZType 

A CompoundCurve in R3 with coordinate values for x, y and z.

CompoundCurveMType 

A CompoundCurve in R3 with coordinate values for x, y and m.

CompoundCurveZMType 

A CompoundCurve in R4 with coordinate values for x, y, z and m.

PolygonType 

A Polygon in R2 with coordinate values for x and y.

PolygonZType 

A Polygon in R3 with coordinate values for x, y and z.

PolygonMType 

A Polygon in R3 with coordinate values for x, y and m.

PolygonZMType 

A Polygon in R4 with coordinate values for x, y, z and m.

CurvePolygonType 

A CurvePolygon in R2 with coordinate values for x and y.

CurvePolygonZType 

A CurvePolygon in R3 with coordinate values for x, y and z.

CurvePolygonMType 

A CurvePolygon in R3 with coordinate values for x, y and m.

CurvePolygonZMType 

A CurvePolygon in R4 with coordinate values for x, y, z and m.

GeometryCollectionType 

A GeometryCollection in R2 with coordinate values for x and y.

GeometryCollectionZType 

A GeometryCollection in R3 with coordinate values for x, y and z.

GeometryCollectionMType 

A GeometryCollection in R3 with coordinate values for x, y and m.

GeometryCollectionZMType 

A GeometryCollection in R4 with coordinate values for x, y, z and m.

MultiPointType 

A MultiPoint in R2 with coordinate values for x and y.

MultiPointZType 

A MultiPoint in R3 with coordinate values for x, y and z.

MultiPointMType 

A MultiPoint in R3 with coordinate values for x, y and m.

MultiPointZMType 

A MultiPoint in R4 with coordinate values for x, y, z and m.

MultiLineStringType 

A MultiLineString in R2 with coordinate values for x and y.

MultiLineStringZType 

A MultiLineString in R3 with coordinate values for x, y and z.

MultiLineStringMType 

A MultiLineString in R3 with coordinate values for x, y and m.

MultiLineStringZMType 

A MultiLineString in R4 with coordinate values for x, y, z and m.

MultiPolygonType 

A MultiPolygon in R2 with coordinate values for x and y.

MultiPolygonZType 

A MultiPolygon in R3 with coordinate values for x, y and z.

MultiPolygonMType 

A MultiPolygon in R3 with coordinate values for x, y and m.

MultiPolygonZMType 

A MultiPolygon in R4 with coordinate values for x, y, z and m.

MultiSurfaceType 

A MultiSurface in R2 with coordinate values for x and y.

MultiSurfaceZType 

A MultiSurface in R3 with coordinate values for x, y and z.

MultiSurfaceMType 

A MultiSurface in R3 with coordinate values for x, y and m.

MultiSurfaceZMType 

A MultiSurface in R4 with coordinate values for x, y, z and m.

PolyhedralSurfaceType 

A PolyhedralSurface in R2 with coordinate values for x and y.

PolyhedralSurfaceZType 

A PolyhedralSurface in R3 with coordinate values for x, y and z.

PolyhedralSurfaceMType 

A PolyhedralSurface in R3 with coordinate values for x, y and m.

PolyhedralSurfaceZMType 

A PolyhedralSurface in R4 with coordinate values for x, y, z and m.

TINType 

A TIN in R2 with coordinate values for x and y.

TINZType 

A TIN in R3 with coordinate values for x, y and z.

TINMType 

A TIN in R3 with coordinate values for x, y and m.

TINZMType 

A TIN in R4 with coordinate values for x, y, z and m.

TriangleType 

A Triangle in R2 with coordinate values for x and y.

TriangleZType 

A Triangle in R3 with coordinate values for x, y and z.

TriangleMType 

A Triangle in R3 with coordinate values for x, y and m.

TriangleZMType 

A Triangle in R4 with coordinate values for x, y, z and m.

UnknownGeometryType 

Just a marker for an unknown geometry type.

Definition at line 41 of file Enums.h.

◆ SpatialRelation

Spatial relations between geometric objects.

Enumerator
UNKNOWN_SPATIAL_RELATION 
INTERSECTS 
DISJOINT 
TOUCHES 
OVERLAPS 
CROSSES 
WITHIN 
CONTAINS 
COVERS 
COVEREDBY 
EQUALS 

Definition at line 127 of file Enums.h.

Function Documentation

◆ AddIntersectionPoints()

TEGEOMEXPORT LineString* te::gm::AddIntersectionPoints ( const te::sam::rtree::Index< std::size_t, 8 > &  rtree,
const std::vector< te::gm::LineString > &  candidateSegments,
const std::set< std::size_t > &  setIndexesIgnored,
const te::gm::LineString lr_Reference,
const bool &  usePerpendicularDistance = false 
)

Add intersection points in a LinearRing based on a Vector of LineString as reference.

Parameters
rtreeThe R-tree contains the candidates envelopes as reference to snap.
candidateSegmentsA vector of LineString that is used as reference to snap.
setIndexesIgnoredA set of indexes of candidates that had must be ignored in the processing. This set is used for optimization purposes
wasChangedThis is an output value to inform if the geometry has been changed or not during the prepare
lr_ReferenceA LinearRing that will be added new points of intersection.
usePerpendicularDistanceTrue if the new points are added by perpendicular distance algorithm.
Returns

◆ AddLineString()

TEGEOMEXPORT void te::gm::AddLineString ( te::gm::LineString lineString,
std::vector< te::gm::Geometry *> &  pAdd 
)

Add the linestring given to the vector.

Parameters
linestringline string
pAddA reference to a vector of geometries.

◆ AddPolygon()

TEGEOMEXPORT void te::gm::AddPolygon ( te::gm::Polygon polygon,
std::vector< te::gm::Geometry *> &  pAdd 
)

Add all line strings from the polygon given to the vector given.

Parameters
polygonpolygon from which to extract line strings
pAddA reference to a vector of geometries.

◆ AdjustSegment()

TEGEOMEXPORT bool te::gm::AdjustSegment ( te::gm::Point P0,
te::gm::Point P1,
double  d0,
te::gm::Coord2D P0out,
te::gm::Coord2D P1out 
)

◆ AdjustToCut()

TEGEOMEXPORT Envelope te::gm::AdjustToCut ( const Envelope env,
double  bWidth,
double  bHeight 
)

Finds the correspondent smallest box that allows a box to be cut in blocks of a given size.

Parameters
envReference envelope
bWidthBlock width
bHeightBlock height
Returns
It returns a adjusted envelope

◆ ByteArrayToGeometryConverter()

te::dt::AbstractData* te::gm::ByteArrayToGeometryConverter ( te::dt::AbstractData d)

It converts a ByteArray data value to a Geometry data value.

Parameters
dThe input data value.
Returns
A new data value converted to Geometry type. The caller will take the ownership of the returned data.
Note
This method consider that the ByteArray data value contains a geometry encoded using WKB format.
Exceptions
Itthrows an exception if the input abstract data is not a ByteArray type.
Itthrows an exception if the conversion can be not done.

◆ CascadedPolygonUnion()

TEGEOMEXPORT te::gm::Geometry* te::gm::CascadedPolygonUnion ( const std::vector< te::gm::Polygon *> &  polygonVector)

Provides an efficient method of unioning a collection of Polygonal geometries. This algorithm is faster and likely more robust than the simple iterated approach of repeatedly unioning each polygon to a result geometry.

Parameters
polygonVectorA vector of polygons.
Returns
a Geometry containing the union.

◆ CheckValidity()

TEGEOMEXPORT bool te::gm::CheckValidity ( const Geometry geom,
te::gm::TopologyValidationError error 
)

It check geometry validity using GEOS.

Parameters
geomGeometry that will be verified.
errorTopologyValidationError struct.
Returns
True if geometry is valid.

◆ ClosestPoints()

TEGEOMEXPORT void te::gm::ClosestPoints ( te::gm::Geometry geomA,
te::gm::Geometry geomB,
te::gm::Coord2D coordA,
te::gm::Coord2D coordB 
)

Compute the the closest points of two geometries.

Parameters
geomAInput Geometry A.
geomBInput Geometry B.
coordAOutput coord on Geometry A.
coordBOutput coord on Geometry B.

◆ CreateEnvelope() [1/2]

TEGEOMEXPORT te::gm::Envelope te::gm::CreateEnvelope ( double  x1,
double  y1,
double  x2,
double  y2 
)

Creates an envelope that fits the given coordinates. It makes all the adjustments needed to return a valid envelope.

Parameters
x1The coordinate X of the first point
y1The coordinate Y of the first point
x2The coordinate X of the second point
y2The coordinate Y of the second point
Returns
A valid envelope containing the two given points

◆ CreateEnvelope() [2/2]

TEGEOMEXPORT te::gm::Envelope te::gm::CreateEnvelope ( const te::gm::Point p1,
const te::gm::Point p2 
)

Creates an envelope that fits the given coordinates. It makes all the adjustments needed to return a valid envelope.

Parameters
p1The first point
p2The second point
Returns
A valid envelope containing the two given points

◆ CreateLine()

TEGEOMEXPORT te::gm::LineString te::gm::CreateLine ( const te::gm::Coord2D startCoord,
const te::gm::Coord2D endCoord,
const int &  srid,
const int &  numberOfIntermediateCoords 
)

Creates a LineString between the given startCoord and endCoord with the given number of intermediate coordinates.

Parameters
startCoordThe first coordinate of the line
endCoordThe last coordinate of the line
sridThe srid of the line
numberOfIntermediateCoordsThe number of intermediate coordinates of the line
Returns
A LineString between startCoord and endCoord with the given number of intermediate coordinates

◆ CreatePolygon()

TEGEOMEXPORT te::gm::Polygon te::gm::CreatePolygon ( const te::gm::Envelope box,
const int &  srid,
const int &  numberOfIntermediateCoords 
)

Creates a Polygon from the given envelope and with the given number of intermediate coordinates in each of its four borders lines.

Parameters
boxThe envelope from which the polygon will be created
sridThe srid of the polygon
numberOfIntermediateCoordsThe number of intermediate coordinates of each border line
Returns
A LineString between startCoord and endCoord with the given number of intermediate coordinates in each border line

◆ GeometryToByteArrayConverter()

te::dt::AbstractData* te::gm::GeometryToByteArrayConverter ( te::dt::AbstractData d)
throw (Exception
)

It converts a Geometry data value to a ByteArray data value.

Parameters
dThe input data value.
Returns
A new data value converted to ByteArray type. The caller will take the ownership of the returned data.
Note
The ByteArray data value will contains the Geometry encoded using WKB format.
Exceptions
Itthrows an exception if the input abstract data is not a Geometry type.

◆ GeometryToStringConverter()

te::dt::AbstractData* te::gm::GeometryToStringConverter ( te::dt::AbstractData d)
throw (Exception
)

It converts a Geometry data value to a String data value.

Parameters
dThe input data value.
Returns
A new data value converted to String type. The caller will take the ownership of the returned data.
Note
The String data value will contains the Geometry encoded using WKT format.
Exceptions
Itthrows an exception if the input abstract data is not a Geometry type.

◆ GetAngle()

TEGEOMEXPORT double te::gm::GetAngle ( te::gm::Coord2D  coordA,
te::gm::Coord2D  coordB 
)

◆ GetAsMultiLineStringVector()

TEGEOMEXPORT std::vector<MultiLineString *> te::gm::GetAsMultiLineStringVector ( const te::gm::Geometry geometry)

Get the vector of MultLineStrings that compose the Geometry.

Parameters
geometryUsed to get lineStrings.

return A vector of MultiLineString based on geometry parameter.

◆ GetCoordDimension()

int te::gm::GetCoordDimension ( GeomType  t)
inline

It returns the number of measurements or axes needed to describe a position in a coordinate system.

It returns:

  • 2 for a coordinate with x, y;
  • 3 for a coordinate with x, y and z or x, y and m;
  • 4 for a coordinate with x, y, z and m.
Parameters
tThe geomeytric type.
Returns
The number of measurements or axes needed to describe a position in a coordinate system.

Definition at line 104 of file Utils.h.

◆ GetGeometryUnion()

TEGEOMEXPORT std::unique_ptr<te::gm::Geometry> te::gm::GetGeometryUnion ( const std::vector< te::gm::Geometry *> &  geomVec)

It returns the union of a geometry vector.

Parameters
itemsVector of itens that represents a group.
Returns
Union of the geometry.

◆ GetGeomFromEnvelope()

TEGEOMEXPORT Geometry* te::gm::GetGeomFromEnvelope ( const Envelope *const  e,
int  srid 
)

It creates a Geometry (a polygon) from the given envelope.

Parameters
eThe envelope to extract the coordinates. Don't call with a NULL envelope.
sridThe Spatial Reference System ID to be associated to the polygon.
Returns
A polygon (in counter-clock-wise) with rectangle coordinates: [(MINX, MINY), (MAXX, MINY), (MAXX, MAXY), (MINX, MAXY), (MINX, MINY)].
Note
The caller of this method will take the ownership of the returned geometry.

Referenced by te::rst::LineIterator< T >::LineIterator(), and te::rst::PointSetIterator< T >::PointSetIterator().

◆ GetIntersectionLine()

TEGEOMEXPORT te::gm::Line* te::gm::GetIntersectionLine ( te::gm::Geometry geom,
te::gm::Coord2D  coord 
)

◆ GetIntersectionPointsByOperators()

TEGEOMEXPORT std::vector<te::gm::Point> te::gm::GetIntersectionPointsByOperators ( const te::gm::LineString lsReference,
const std::vector< te::gm::LineString > &  candidates 
)

Gets a vector of LineString reference points including intersection points using GEOS operators.

Parameters
lsReferenceLineString used as reference.
candidatesA Vector of LineString used to intersects the lsReference.
Returns
A vector of LineString reference points including intersection points using GEOS operators.

◆ GetIntersectionPointsByPerpendicularDistance()

TEGEOMEXPORT std::vector<te::gm::Point> te::gm::GetIntersectionPointsByPerpendicularDistance ( const te::gm::LineString lsReference,
const std::vector< te::gm::LineString > &  candidates 
)

Gets a vector of LineString reference points including intersection points using perpendicular distance.

Parameters
lsReferenceLineString used as reference.
candidatesA Vector of LineString used to intersects the lsReference.
Returns
A vector of LineString reference points including intersection points using perpendicular distance.

◆ GetMultiLineStringType()

TEGEOMEXPORT te::gm::GeomType te::gm::GetMultiLineStringType ( const te::gm::Geometry geometry)

Get the LineStrings that compose the Geometry.

Parameters
geometryUsed to get lineStrings.

return A LineString based on parameter geometry.

◆ GetMultiType()

TEGEOMEXPORT te::gm::GeomType te::gm::GetMultiType ( te::gm::GeomType  geomType)

Get the collection type of GeomType.

Parameters
geomTypeenum te::gm::GeomType.

return A collection type of GeomType.

◆ GetSimpleType()

TEGEOMEXPORT te::gm::GeomType te::gm::GetSimpleType ( te::gm::GeomType  geomType)

Get the simple type of GeomType.

Parameters
geomTypeenum te::gm::GeomType.

return A simple type of GeomType.

◆ Intersects() [1/2]

template<class T1 , class T2 >
bool te::gm::Intersects ( const T1 &  o1,
const T2 &  o2 
)

◆ Intersects() [2/2]

template<>
TEGEOMEXPORT bool te::gm::Intersects ( const te::gm::Point point,
const te::gm::Envelope e 
)

◆ IsEqual() [1/2]

TEGEOMEXPORT bool te::gm::IsEqual ( const te::gm::Point p1,
const te::gm::Point p2 
)

Checks if a point p1 is exactly equal to the point p2.

Parameters
p1The first point
p2The second point
Returns
TRUE if the points are equal. FALSE otherwise

◆ IsEqual() [2/2]

TEGEOMEXPORT bool te::gm::IsEqual ( const te::gm::Point p1,
const te::gm::Point p2,
double  tol 
)

Checks if a point p1 is equal to the point p2 considering the given tolerance.

Parameters
p1The first point
p2The second point
tolThe tolerance to be used
Returns
TRUE if the points are equal. FALSE otherwise

◆ IsMultiType()

TEGEOMEXPORT bool te::gm::IsMultiType ( te::gm::GeomType  geomType)

Verifies if the geomType is a collection type.

Parameters
geomTypeenum te::gm::GeomType.

return True if the geomType is a collection type.

◆ locateAlong()

TEGEOMEXPORT Coord2D* te::gm::locateAlong ( const LineString line,
double  initial,
double  final,
double  target 
)

Make the line interpolation to find a target.

Parameters
lineLineString to make the interpolation
initialInitial value
finalFinal value
targetTarget value
Returns
It returns a target Coord2D in the line.

◆ Multi2Single()

TEGEOMEXPORT void te::gm::Multi2Single ( const te::gm::Geometry g,
std::vector< te::gm::Geometry *> &  geoms 
)

It will get a GeometryCollection and distribute in a vector.

Parameters
gInput GeometryCollection.
geomsOutput Geometry Vector.
Note
If the geomSource is not a te::gm::GeometryCollectionType it will return vector with the input geometry.

Referenced by te::rst::PolygonIterator< T >::getScanLineIntersectionRanges().

◆ MultiLineToDefinedType()

TEGEOMEXPORT te::gm::Geometry* te::gm::MultiLineToDefinedType ( const std::vector< te::gm::MultiLineString *> &  multiLineStringVector,
te::gm::GeomType  geometryType 
)

A geometry is built based on a Vector of MultiLineString and the origin geometry type.

Parameters
multiLineStringVectorA vector of multiLineString that have all lines of a Geometry.

return A geometry built based on a Vector of MultiLineString and the origin geometry type.

◆ PerpendicularDistance()

TEGEOMEXPORT double te::gm::PerpendicularDistance ( const te::gm::Point first,
const te::gm::Point last,
te::gm::Point pin,
Point pinter 
)

Calculate the perpendicular distance of a point in a segment.

Parameters
firstThe first segment point.
lastThe last segment point.
pinThe point to be calculated.
pinterA intern point calculated based on pin projected intersection with the segment.
Returns
The perpendicular distance.

◆ Polygonizer()

TEGEOMEXPORT void te::gm::Polygonizer ( te::gm::Geometry g,
std::vector< te::gm::Polygon *> &  pols 
)

It will get a list of polygons formed by the polygonization.

Parameters
gInput Polygon.
polsOutput Polygon Vector.

◆ PrepareGeometriesToIntersection() [1/4]

TEGEOMEXPORT te::gm::Geometry* te::gm::PrepareGeometriesToIntersection ( const te::gm::Geometry geom_A,
te::gm::Geometry geomB,
bool &  wasChanged 
)

Prepares the geometry A with intersection points in geometry B.

Parameters
geom_AGeometry used to be inserted new points of intersection.
geomBThe geometry to be used to intersect with Geometry B.
wasChangedThis is an output value to inform if the geometry has been changed or not during the prepare
Returns
A new geometry based on geometry A with intersection points in geometry B.

◆ PrepareGeometriesToIntersection() [2/4]

TEGEOMEXPORT te::gm::Geometry* te::gm::PrepareGeometriesToIntersection ( const te::gm::Geometry geom_A,
const std::vector< te::gm::Geometry *> &  vecGeomB,
bool &  wasChanged 
)

Prepares the geometry A with intersection points in geometry B.

Parameters
geom_AGeometry used to be inserted new points of intersection.
vecGeomBThe list of Geometries used to intersects with Geometry A.
wasChangedThis is an output value to inform if the geometry has been changed or not during the prepare
Returns
A new geometry based on geometry A with intersection points in geometry B.

◆ PrepareGeometriesToIntersection() [3/4]

TEGEOMEXPORT te::gm::MultiLineString* te::gm::PrepareGeometriesToIntersection ( const te::gm::MultiLineString mline_A,
const te::sam::rtree::Index< std::size_t, 8 > &  rtree,
std::vector< te::gm::LineString > &  vecRtreeSegments,
bool &  wasChanged 
)

Prepares the MultiLineString A with intersection points in MultiLineString B.

Parameters
mline_AMultiLineString used to be inserted new points of intersection.
rtreeRtree indexing all the segments that must be used in the prepare algorithm.
vecRtreeSegmentsAll the segments indexed in the rtree
wasChangedThis is an output value to inform if the geometry has been changed or not during the prepare
Returns
A new MultiLineString based on MultiLineString A with intersection points in MultiLineString B.

◆ PrepareGeometriesToIntersection() [4/4]

TEGEOMEXPORT te::gm::LineString* te::gm::PrepareGeometriesToIntersection ( const te::gm::LineString ls_A,
const te::sam::rtree::Index< std::size_t, 8 > &  rtree,
std::vector< te::gm::LineString > &  vecRtreeSegments,
bool &  wasChanged 
)

Prepares the LineString A with intersection points in LineString B.

Parameters
ls_ALineString used to be inserted new points of intersection.
rtreeRtree indexing all the segments that must be used in the prepare algorithm.
vecRtreeSegmentsAll the segments indexed in the rtree
wasChangedThis is an output value to inform if the geometry has been changed or not during the prepare
Returns
A new LineString based on LineString A with intersection points in LineString B.

◆ Rotate()

TEGEOMEXPORT bool te::gm::Rotate ( te::gm::Coord2D  pr,
te::gm::LineString l,
double  angle,
te::gm::LineString lOut 
)

◆ SatisfySpatialRelation()

TEGEOMEXPORT bool te::gm::SatisfySpatialRelation ( const Geometry g1,
const Geometry g2,
SpatialRelation  relation 
)

It returns if two geometries satisfy a given spatial relation.

Parameters
g1The first geometry
g2The second geometry
rA given spatial relation to be tested
Returns
It returns true if the given two geometries satisfy the spatial relation. Otherwise, it returns false.
Exceptions
ExceptionIt throws an exception if the spatial relation is not valid or if the test can not be evaluated.

Referenced by te::rst::LineIterator< T >::LineIterator(), and te::rst::PointSetIterator< T >::PointSetIterator().

◆ SnapLineToPoints()

TEGEOMEXPORT LineString* te::gm::SnapLineToPoints ( const te::sam::rtree::Index< std::size_t, 8 > &  rtree,
const std::vector< te::gm::LineString > &  referenceSegments,
const std::set< std::size_t > &  setIndexesIgnored,
const te::gm::LineString linearRingToSnap,
bool &  wasChanged 
)

Snaps a LinearRing based on a set of LineString.

Parameters
rtreeThe R-tree contains the candidates envelopes as reference to snap.
referenceSegmentsA vector of LineString that is used as reference to snap.
setIndexesIgnoredA set of indexes of candidates that had must be ignored in the processing. This set is used for optimization purposes
wasChangedThis is an output value to inform if the geometry has been changed or not during the prepare
linearRingToSnapA LinearRing that will be snapped.
Returns
A new snapped LinearRing.

◆ StringToGeometryConverter()

te::dt::AbstractData* te::gm::StringToGeometryConverter ( te::dt::AbstractData d)

It converts a String data value to a Geometry data value.

Parameters
dThe input data value.
Returns
A new data value converted to Geometry type. The caller will take the ownership of the returned data.
Note
This method consider that the String data value contains a geometry encoded using WKT format.
Exceptions
Itthrows an exception if the input abstract data is not a String type.
Itthrows an exception if the conversion can be not done.

◆ UnaryUnion()

TEGEOMEXPORT te::gm::Geometry* te::gm::UnaryUnion ( te::gm::Geometry geom)

It will get the union of the input geometries.

Parameters
geomInput Geometry.
Returns
a Geometry containing the union.
Note
If no input geometries were provided, an EMPTY POINTER is returned.

◆ Validate()

TEGEOMEXPORT te::gm::Geometry* te::gm::Validate ( te::gm::Geometry geom)

Get/create a valid version of the geometry given. If the geometry is a polygon or multi polygon, self intersections / inconsistencies are fixed. Otherwise the geometry is returned.

Parameters
geom
Returns
a geometry