26 #ifndef __TERRALIB_GEOMETRY_INTERNAL_GEOMETRY_H 
   27 #define __TERRALIB_GEOMETRY_INTERNAL_GEOMETRY_H 
   30 #include "../common/BaseVisitable.h" 
   31 #include "../common/Enums.h" 
   32 #include "../datatype/AbstractData.h" 
   43 #include <boost/shared_ptr.hpp> 
  148         int getCoordinateDimension() 
const throw();
 
  167         virtual const std::string& getGeometryType() 
const throw() = 0;
 
  189         int getSRID() 
const throw() { 
return m_srid; }
 
  200         virtual void setSRID(
int srid) 
throw() = 0;
 
  230         Geometry* getEnvelope() 
const throw();
 
  246         const 
Envelope* getMBR() const throw();
 
  261         virtual 
void computeMBR(
bool cascade) const throw() = 0;
 
  268         std::
string asText() const throw();
 
  284         char* asBinary(std::
size_t& size) const throw(Exception);
 
  297         std::
size_t getWkbSize() const throw();
 
  313         void getWkb(
char* wkb, te::common::
MachineByteOrder byteOrder) const throw(Exception);
 
  327         virtual 
bool isEmpty() const throw(std::exception);
 
  341         virtual 
bool isSimple() const throw(std::exception);
 
  352         virtual 
bool isValid() const throw(std::exception);
 
  359         bool is3D() const throw();
 
  366         bool isMeasured() const throw();
 
  380         virtual 
Geometry* getBoundary() const throw(std::exception);
 
  389         virtual std::
size_t getNPoints() const throw() = 0;
 
  413         virtual 
bool equals(const 
Geometry* const rhs, const 
bool exact = false) const throw(std::exception);
 
  428         virtual 
bool disjoint(const 
Geometry* const rhs) const throw(std::exception);
 
  443         virtual 
bool intersects(const 
Geometry* const rhs) const throw(std::exception);
 
  458         virtual 
bool touches(const 
Geometry* const rhs) const throw(std::exception);
 
  473         virtual 
bool crosses(const 
Geometry* const rhs) const throw(std::exception);
 
  488         virtual 
bool within(const 
Geometry* const rhs) const throw(std::exception);
 
  503         virtual 
bool contains(const 
Geometry* const rhs) const throw(std::exception);
 
  518         virtual 
bool overlaps(const 
Geometry* const rhs) const throw(std::exception);
 
  538         virtual 
bool relate(const 
Geometry* const rhs, const std::
string& matrix) const throw(std::exception);
 
  557         virtual std::
string relate(const 
Geometry* const rhs) const throw(std::exception);
 
  576         virtual 
bool covers(const 
Geometry* const rhs) const throw(std::exception);
 
  595         virtual 
bool coveredBy(const 
Geometry* const rhs) const throw(std::exception);
 
  611         virtual 
Geometry* locateAlong(const 
double& mValue) const throw(Exception) { 
return locateBetween(mValue, mValue); };
 
  628         virtual Geometry* locateBetween(
const double& mStart, 
const double& mEnd) 
const throw(Exception);
 
  648         virtual double distance(
const Geometry* 
const rhs) 
const throw(std::exception);       
 
  663         virtual Geometry* buffer(
const double& distance) 
const throw(std::exception);
 
  681         virtual Geometry* buffer(
const double& distance, 
int quadrantSegments) 
const throw(std::exception);
 
  704         virtual Geometry* buffer(
const double& distance,
 
  705                                  int quadrantSegments,
 
  719         virtual Geometry* convexHull() 
const throw(std::exception);
 
  736         virtual 
Geometry* intersection(const 
Geometry* const rhs) const throw(std::exception);
 
  753         virtual 
Geometry* Union(const 
Geometry* const rhs) const throw(std::exception);       
 
  770         virtual 
Geometry* difference(const 
Geometry* const rhs) const throw(std::exception);
 
  787         virtual 
Geometry* symDifference(const 
Geometry* const rhs) const throw(std::exception);
 
  803         virtual 
bool dWithin(const 
Geometry* const rhs, const 
double& distance) const throw(std::exception);
 
  821         static 
GeomType getGeomTypeId(const std::
string& gtype);
 
  830         static 
bool isGeomType(const std::
string& stype);
 
  837         static 
void loadGeomTypeId();
 
  851         int getTypeCode() const;
 
  858         std::
string toString()
 const { 
return asText(); }
 
  876 #endif  // __TERRALIB_GEOMETRY_INTERNAL_GEOMETRY_H 
#define TEGEOMEXPORT
You can use this macro in order to export/import classes and functions from this module. 
 
A visitor interface for the Geometry hierarchy. 
 
int getSRID() const 
It returns the Spatial Reference System ID associated to this geometric object. 
 
This class is designed to declare objects to be thrown as exceptions by TerraLib. ...
 
GeomType m_gType
Internal geometry type. 
 
An exception class for the Geometry module. 
 
#define TE_DEFINE_VISITABLE
 
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". 
 
MachineByteOrder
Endianness. 
 
int m_srid
The Spatial Reference System code associated to the Geometry. 
 
Geometry is the root class of the geometries hierarchy, it follows OGC and ISO standards. 
 
GeomType
Each enumerated type is compatible with a Well-known Binary (WKB) type code. 
 
static std::map< std::string, GeomType > sm_geomTypeMap
A set of geometry type names (in UPPER CASE). 
 
GeomType getGeomTypeId() const 
It returns the geometry subclass type identifier. 
 
boost::shared_ptr< Geometry > GeometryShrPtr
 
A base class for values that can be retrieved from the data access module. 
 
BufferCapStyle
Buffer end cap style. 
 
Envelope * m_mbr
The geometry minimum bounding rectangle. 
 
An Envelope defines a 2D rectangular region. 
 
The root of all hierarchies that can be visited.