Flair
Framework Libre Air
Parser.h
1 // %flair:license{
2 // This file is part of the Flair framework distributed under the
3 // CECILL-C License, Version 1.0.
4 // %flair:license}
5 // created: 2013/08/02
6 // filename: Parser.h
7 //
8 // author: César Richard
9 // Copyright Heudiasyc UMR UTC/CNRS 7253
10 //
11 // version: $Id: $
12 //
13 // purpose: classe chargeant un XML decrivant une map
14 //
15 /*********************************************************************/
16 
17 #ifndef PARSER_H
18 #define PARSER_H
19 
20 #include <Gui.h>
21 #include <Vector3D.h>
22 #include <SColor.h>
23 
24 //todo make a pimpl to remove these forward declaration
25 typedef struct _xmlNode xmlNode;
26 typedef unsigned char xmlChar;
27 typedef struct _xmlDoc xmlDoc;
28 
29 namespace flair {
30 namespace simulator {
31 class Parser : public Gui {
32 
33  /*can create:
34  - cylinders: in y axis
35  - fixed cameras
36 
37  */
38 public:
39  Parser(int app_width, int app_height, int scene_width,
40  int scene_height, std::string media_path, std::string xmlFile);
41  ~Parser();
42 
43 private:
44  xmlDoc *doc;
45  std::string media_path;
46  void processElements(xmlNode *a_node);
47  void processObjects(xmlNode *a_node);
48  void processParams(xmlNode *a_node);
49  irr::video::SColor getScolor(xmlNode *mesh_node);
50  irr::core::vector3df getMeshVect(xmlNode *mesh_node, xmlChar *param);
51  irr::core::vector3df getSceneVect(xmlNode *mesh_node, xmlChar *param,
52  bool isScale = false);
53  core::Vector3Df getMeshVector3D(xmlNode *mesh_node, xmlChar *param);
54 };
55 }
56 }
57 #endif // PARSER_H
namespace of the flair Framework
Definition: Ahrs.h:19
Class defining a 3D vector.
Definition: Gui.h:54
Definition: Parser.h:31