rag
graphic 2d engine
XFLParser.h
1 #ifndef Rag_XFLParser_h
2 #define Rag_XFLParser_h
3 
4 #include <rag/DisplayObject.h>
5 #include <rag/MovieClip.h>
6 #include <libxml/xmlmemory.h>
7 #include <libxml/parser.h>
8 
9 namespace rag
10 {
11 
13 
15 class XFLParser
16 {
17 
18 public:
19 
21  XFLParser();
22 
24  rag::DisplayObject* load(const std::string& rootFolder, const std::string& symbol);
25 
26 private:
27 
28  void parseRoot(xmlNode * root);
29  void parseLayers(xmlNode* layers);
30  void parseFrames(xmlNode * frames);
31  void parseElements(xmlNode * elements);
32  void parseScript(xmlNode * script);
33  void parseSymbol(xmlNode * node);
34  void parseBitmap(xmlNode * bitmap);
35  void parseText(xmlNode* node);
36 
37  void applyMatrix(rag::DisplayObject* displayObject, xmlNode* matrix);
38  void applyColor(rag::DisplayObject* displayObject, xmlNode* node);
39 
40  int getAsInt(xmlNode* node, const char* property, int defaultValue = 0);
41  float getAsFloat(xmlNode* node, const char* property, float defaultValue = .0f);
42  std::string getAsString(xmlNode* node, const char* property, std::string defaultValue = "");
43 
44  std::vector<xmlNode*> instanceLayers;
45  rag::DisplayObject* instance;
46  std::string rootFolder;
47  std::string fileName;
48 
49  std::vector<rag::MovieClip::Frame> frames;
50 
51 
52  // Binarization
53  void appendToBinary(float f);
54  void appendToBinary(int i);
55  void appendToBinary(char c);
56  void appendToBinary(const char* str);
57 
58  char* binaryBuffer;
59  int binaryBufferSize;
60 
61  struct DropShadowFilterData
62  {
63  float angle;
64  float distance;
65  float strength;
66  Color color;
67  };
68 
69 
70 
71 };
72 
73 } // rag
74 
75 #endif
XFLParser()
Creates the parser object.
Definition: XFLParser.cpp:434
Definition: Bitmap.h:8
Core object used to display things in screen.
Definition: DisplayObject.h:23
Represents RGBA color.
Definition: Color.h:11
Parser of XFL documents generated by the 3rd party editor tool FlashCS.
Definition: XFLParser.h:15
rag::DisplayObject * load(const std::string &rootFolder, const std::string &symbol)
Load a Flash CS symbol.
Definition: XFLParser.cpp:442