17 #ifndef __H__OBJ_PARSER_GRAMMAR__H__
18 #define __H__OBJ_PARSER_GRAMMAR__H__
20 #include "OBJGrammarSkipper.hpp"
21 #include "OBJStructs.hpp"
37 class OBJGrammar :
public qi::grammar<OBJIterator, OBJSkipper>
49 void setupDataRules();
50 void setupGroupRules();
51 void setupVertexRules();
52 void setupFaceRules();
53 void setupFreeFormRules();
54 void setupFreeFormStart();
55 void setupFreeFormBody();
56 void setupFreeFormEnd();
57 void setupFreeFormAttributes();
58 void setupFreeFormConnections();
59 void setupMaterialRules();
60 void setupRenderStateRules();
70 qi::rule<OBJIterator, OBJSkipper> ruleStart;
71 qi::rule<OBJIterator, OBJSkipper> ruleVertices;
72 qi::rule<OBJIterator, OBJSkipper> ruleFaces;
73 qi::rule<OBJIterator, OBJSkipper> ruleFreeForms;
74 qi::rule<OBJIterator, OBJSkipper> ruleMaterials;
75 qi::rule<OBJIterator, OBJSkipper> ruleRenderState;
76 qi::rule<OBJIterator, OBJSkipper> ruleEmptyLine;
82 qi::rule<OBJIterator, OBJSkipper> ruleGroup;
83 qi::rule<OBJIterator, std::string(), OBJSkipper> ruleGroupName;
89 qi::rule<OBJIterator, OBJVector2(), OBJSkipper> ruleVector2Data;
90 qi::rule<OBJIterator, OBJVector3(), OBJSkipper> ruleVector3Data;
91 qi::rule<OBJIterator, OBJVector4(), OBJSkipper> ruleVector4Data;
92 qi::rule<OBJIterator, OBJVertexGroup(), OBJSkipper> ruleVertexGroupData;
93 qi::rule<OBJIterator, int32_t(), OBJSkipper> ruleIndexValue;
94 qi::rule<OBJIterator, std::vector<OBJVertexGroup>(),
OBJSkipper> ruleIndexList;
95 qi::rule<OBJIterator, std::string(), OBJSkipper> ruleName;
101 qi::rule<OBJIterator, OBJSkipper> ruleVertexSpatial;
102 qi::rule<OBJIterator, OBJSkipper> ruleVertexTexture;
103 qi::rule<OBJIterator, OBJSkipper> ruleVertexNormal;
104 qi::rule<OBJIterator, OBJSkipper> ruleVertexParameter;
110 qi::rule<OBJIterator, OBJFace(), OBJSkipper> ruleFaceData;
111 qi::rule<OBJIterator, OBJSkipper> ruleFace;
113 qi::rule<OBJIterator, OBJSkipper> ruleLine;
114 qi::rule<OBJIterator, OBJSkipper> rulePoint;
122 qi::rule<OBJIterator, OBJSkipper> ruleFreeFormStart;
124 qi::rule<OBJIterator, OBJSkipper> ruleFreeFormCurve;
125 qi::rule<OBJIterator, OBJCurve(), OBJSkipper> ruleFreeFormCurveData;
127 qi::rule<OBJIterator, OBJSkipper> ruleFreeFormCurve2D;
128 qi::rule<OBJIterator, std::vector<int32_t>(),
OBJSkipper> ruleFreeFormCurve2DData;
130 qi::rule<OBJIterator, OBJSkipper> ruleFreeFormSurface;
131 qi::rule<OBJIterator, OBJSurface(), OBJSkipper> ruleFreeFormSurfaceData;
135 qi::rule<OBJIterator, OBJSkipper> ruleFreeFormBody;
137 qi::rule<OBJIterator, OBJSkipper> ruleFreeFormParameter;
138 qi::rule<OBJIterator, OBJSkipper> ruleFreeFormTrim;
139 qi::rule<OBJIterator, OBJSkipper> ruleFreeFormHole;
140 qi::rule<OBJIterator, OBJSkipper> ruleFreeFormSpecialCurve;
141 qi::rule<OBJIterator, OBJSkipper> ruleFreeFormSpecialPoint;
145 qi::rule<OBJIterator, OBJSkipper> ruleFreeFormEnd;
149 qi::rule<OBJIterator, OBJSkipper> ruleFreeFormAttributes;
151 qi::rule<OBJIterator, OBJSkipper> ruleFreeFormType;
152 qi::rule<OBJIterator, OBJSkipper> ruleFreeFormDegree;
153 qi::rule<OBJIterator, OBJSkipper> ruleFreeFormStep;
154 qi::rule<OBJIterator, OBJSkipper> ruleFreeFormBasisMatrix;
155 qi::rule<OBJIterator, OBJSkipper> ruleFreeFormMergeGroup;
159 qi::rule<OBJIterator, OBJSkipper> ruleFreeFormConnection;
165 qi::rule<OBJIterator, OBJSkipper> ruleMaterialLibrary;
166 qi::rule<OBJIterator, OBJSkipper> ruleMaterialUse;
174 qi::rule<OBJIterator, OBJSkipper> ruleBevelInterp;
175 qi::rule<OBJIterator, OBJSkipper> ruleColorInterp;
176 qi::rule<OBJIterator, OBJSkipper> ruleDissolveInterp;
180 qi::rule<OBJIterator, OBJSkipper> ruleSmoothing;
181 qi::rule<OBJIterator, OBJSkipper> ruleLOD;
182 qi::rule<OBJIterator, OBJSkipper> ruleTextureMapLibrary;
183 qi::rule<OBJIterator, OBJSkipper> ruleTextureMap;
184 qi::rule<OBJIterator, OBJSkipper> ruleShadowObj;
185 qi::rule<OBJIterator, OBJSkipper> ruleTraceObj;
189 qi::rule<OBJIterator, OBJSkipper> ruleFreeFormCurveTech;
190 qi::rule<OBJIterator, OBJSkipper> ruleFreeFormSurfaceTech;
Definition: OBJGrammarSkipper.hpp:30
Definition: OBJGrammar.hpp:37
Definition: OBJState.hpp:37