29 #ifndef __TERRALIB_GEOMETRY_INTERNAL_WKTPARSER_H 
   30 #define __TERRALIB_GEOMETRY_INTERNAL_WKTPARSER_H 
   36 #include <boost/bind/bind.hpp> 
   37 #include <boost/spirit/include/qi.hpp> 
   44 namespace qi    = boost::spirit::qi;
 
   45 namespace ascii = boost::spirit::ascii;
 
   61     template<
typename Iterator>
 
   62     class WKTParser : 
public qi::grammar<Iterator, ascii::space_type>
 
   95           empty = no_case[
"empty"] >> !char_;
 
  188 #if BOOST_VERSION < 106000 
  566         qi::rule<Iterator, ascii::space_type> 
empty;
 
Geometry is the root class of the geometries hierarchy, it follows OGC and ISO standards.
 
A class that implements the Grammar Rules for well known text (WKT) format for Geometry.
 
void createMultiPolygonM()
 
void createMultiPolygonZM()
 
void createMultiPointZM()
 
void createPolyhedralSurfaceM()
 
void createMultiLineStringZ()
 
void createPolyhedralSurface()
 
void createMultiPolygon()
 
Geometry * getGeometry()
It returns the geometry generated by the parser process.
 
void createMultiLineString()
 
void createGeometryCollectionZM()
 
void createGeometryCollectionZ()
 
void reset()
This method resets the Action class to original state.
 
void createGeometryCollection()
 
void createMultiLineStringZM()
 
void createMultiLineStringM()
 
void createPolyhedralSurfaceZM()
 
void createMultiPolygonZ()
 
void createGeometryCollectionM()
 
void createPolyhedralSurfaceZ()
 
void createLinearRingZM()
 
qi::rule< Iterator, ascii::space_type > multiLineStringZTxt
 
qi::rule< Iterator, ascii::space_type > polyhedralSurfaceTxt
 
void initCoordinates()
Initializes coordinates rules.
 
qi::rule< Iterator, ascii::space_type > geometryCollectionTxt
 
qi::rule< Iterator, ascii::space_type > multiPolygonTagged
 
qi::rule< Iterator, ascii::space_type > polygonMTxt
 
qi::rule< Iterator, ascii::space_type > triangleZTagged
 
qi::rule< Iterator, ascii::space_type > multiPolygonZMTagged
 
qi::rule< Iterator, ascii::space_type > lineStringZMTagged
 
qi::rule< Iterator, ascii::space_type > tinZTagged
 
qi::rule< Iterator, ascii::space_type > multiLineStringZMTagged
 
qi::rule< Iterator, ascii::space_type > tinZMTagged
 
qi::rule< Iterator, ascii::space_type > triangleZMTagged
 
void initTriangle()
Initializes triangle rules.
 
qi::rule< Iterator, ascii::space_type > tinMTagged
 
void initTIN()
Initializes TIN rules.
 
void initGeometryCollection()
Initializes geometry collection rules.
 
qi::rule< Iterator, ascii::space_type > multiPointTagged
 
void initMultiLine()
Initializes multi line rules.
 
void initGeometriesZ()
Initializes geometries z tagged rules.
 
qi::rule< Iterator, ascii::space_type > geometryCollectionMTagged
 
qi::rule< Iterator, ascii::space_type > linearRingZTxt
 
qi::rule< Iterator, ascii::space_type > linearRingTxt
 
qi::rule< Iterator, ascii::space_type > tinMTxt
 
qi::rule< Iterator, ascii::space_type > multiPointZTagged
 
qi::rule< Iterator, ascii::space_type > pointZMTxt
 
qi::rule< Iterator, ascii::space_type > polyhedralSurfaceZMTxt
 
qi::rule< Iterator, ascii::space_type > geometryCollectionZMTagged
 
qi::rule< Iterator, ascii::space_type > polyhedralSurfaceMTagged
 
qi::rule< Iterator, ascii::space_type > pointMTxt
 
void initMultiPolygon()
Initializes multi polygon rules.
 
void initPolygon()
Initializes polygon rules.
 
void initPolyhedralSurface()
Initializes polyhedral surface rules.
 
qi::rule< Iterator, ascii::space_type > lineStringTagged
 
qi::rule< Iterator, ascii::space_type > multiPolygonZTagged
 
qi::rule< Iterator, ascii::space_type > geometryTagged
 
qi::rule< Iterator, ascii::space_type > triangleZTxt
 
qi::rule< Iterator, ascii::space_type > pointMTagged
 
qi::rule< Iterator, ascii::space_type > polygonZTxt
 
qi::rule< Iterator, ascii::space_type > multiPolygonZMTxt
 
qi::rule< Iterator, ascii::space_type > polygonZMTagged
 
qi::rule< Iterator, ascii::space_type > polygonZTagged
 
qi::rule< Iterator, ascii::space_type > tinTagged
 
qi::rule< Iterator, ascii::space_type > multiPointTxt
 
qi::rule< Iterator, ascii::space_type > polyhedralSurfaceTagged
 
qi::rule< Iterator, ascii::space_type > triangleZMTxt
 
qi::rule< Iterator, ascii::space_type > polyhedralSurfaceMTxt
 
qi::rule< Iterator, ascii::space_type > pointZMTagged
 
qi::rule< Iterator, ascii::space_type > multiPolygonTxt
 
qi::rule< Iterator, ascii::space_type > multiLineStringZMTxt
 
qi::rule< Iterator, ascii::space_type > tinTxt
 
qi::rule< Iterator, ascii::space_type > tinZTxt
 
qi::rule< Iterator, ascii::space_type > geometry
 
qi::rule< Iterator, ascii::space_type > lineStringZTagged
 
qi::rule< Iterator, ascii::space_type > lineStringZTxt
 
qi::rule< Iterator, ascii::space_type > multiPointZTxt
 
qi::rule< Iterator, ascii::space_type > geometryCollectionZTagged
 
qi::rule< Iterator, ascii::space_type > polygonZMTxt
 
qi::rule< Iterator, ascii::space_type > polygonMTagged
 
qi::rule< Iterator, ascii::space_type > pointZTagged
 
WKTParser()
Default constructor.
 
qi::rule< Iterator, ascii::space_type > geometryZTagged
 
qi::rule< Iterator, ascii::space_type > linearRingMTxt
 
qi::rule< Iterator, ascii::space_type > coordinateZM
 
qi::rule< Iterator, ascii::space_type > multiLineStringZTagged
 
qi::rule< Iterator, ascii::space_type > lineStringZMTxt
 
qi::rule< Iterator, ascii::space_type > polyhedralSurfaceZTagged
 
qi::rule< Iterator, ascii::space_type > polyhedralSurfaceZTxt
 
qi::rule< Iterator, ascii::space_type > geometryZMTagged
 
qi::rule< Iterator, ascii::space_type > empty
 
qi::rule< Iterator, ascii::space_type > coordinateM
 
qi::rule< Iterator, ascii::space_type > pointTagged
 
qi::rule< Iterator, ascii::space_type > polygonTxt
 
qi::rule< Iterator, ascii::space_type > multiPolygonMTagged
 
qi::rule< Iterator, ascii::space_type > lineStringMTxt
 
qi::rule< Iterator, ascii::space_type > triangleTagged
 
qi::rule< Iterator, ascii::space_type > multiPolygonMTxt
 
qi::rule< Iterator, ascii::space_type > multiPolygonZTxt
 
qi::rule< Iterator, ascii::space_type > tinZMTxt
 
qi::rule< Iterator, ascii::space_type > triangleMTxt
 
qi::rule< Iterator, ascii::space_type > lineStringTxt
 
qi::rule< Iterator, ascii::space_type > multiLineStringMTagged
 
qi::rule< Iterator, ascii::space_type > multiPointZMTagged
 
qi::rule< Iterator, ascii::space_type > linearRingZMTxt
 
qi::rule< Iterator, ascii::space_type > pointZTxt
 
void initGeometriesZM()
Initializes geometries zm tagged rules.
 
void reset()
This method resets the Parser to original state.
 
qi::rule< Iterator, ascii::space_type > coordinateZ
 
qi::rule< Iterator, ascii::space_type > geometryMTagged
 
qi::rule< Iterator, ascii::space_type > geometryCollectionTagged
 
qi::rule< Iterator, ascii::space_type > triangleTxt
 
void initPoint()
Initializes point rules.
 
void initMultiPoint()
Initializes multi point rules.
 
void initGeometriesM()
Initializes geometries m tagged rules.
 
qi::rule< Iterator, ascii::space_type > triangleMTagged
 
qi::rule< Iterator, ascii::space_type > multiLineStringTxt
 
qi::rule< Iterator, ascii::space_type > geometryCollectionZMTxt
 
qi::rule< Iterator, ascii::space_type > geometryCollectionZTxt
 
qi::rule< Iterator, ascii::space_type > multiPointMTxt
 
qi::rule< Iterator, ascii::space_type > coordinate
 
qi::rule< Iterator, ascii::space_type > pointTxt
 
void initGeometries()
Initializes geometry tagged rules.
 
qi::rule< Iterator, ascii::space_type > multiPointZMTxt
 
qi::rule< Iterator, ascii::space_type > multiLineStringTagged
 
qi::rule< Iterator, ascii::space_type > lineStringMTagged
 
qi::rule< Iterator, ascii::space_type > geometryCollectionMTxt
 
Geometry * getGeometry()
It returns the geometry generated by the parser process.
 
qi::rule< Iterator, ascii::space_type > multiPointMTagged
 
void initLine()
Initializes line rules.
 
qi::rule< Iterator, ascii::space_type > polyhedralSurfaceZMTagged
 
qi::rule< Iterator, ascii::space_type > polygonTagged
 
qi::rule< Iterator, ascii::space_type > multiLineStringMTxt
 
A class that implements the semanthic actions to grammar rules for well known text (WKT) format for S...