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;
575 #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
Geometry * getGeometry()
It returns the geometry generated by the parser process.
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
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