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