libvrml1++/SubStack.hh

Go to the documentation of this file.
00001 
00020 #ifndef SUBSTACK_H_
00021 #define SUBSTACK_H_
00022 
00023 #include <vector>
00024 #include "Node.hh"
00025 #include "Attribute.hh"
00026 
00027 using namespace std;
00028 
00029 namespace vrml1 {
00030         
00031 class SubStack
00032 {
00033 public:
00034         SubStack(SubStack *Parent);
00035         virtual ~SubStack();
00036         
00037         SubStack* down();
00038         SubStack* up();
00039         
00040         void pushNodeSeparator();
00041         void pushNodeSwitch();
00042         void pushNodeUse(string id);
00043         void pushNodeCube();
00044         void pushNodeCone();
00045         void pushNodeSphere();
00046         void pushNodeCylinder();
00047         void pushNodeMaterial();
00048         void pushNodeMaterialBinding();
00049         void pushNodeTranslation();
00050         void pushNodeRotation();
00051         void pushNodeScale();
00052         void pushNodeMatrixTransform();
00053         void pushNodeTransform();
00054         void pushNodeOrthographicCamera();
00055         void pushNodePerspectiveCamera();
00056         void pushNodePointLight();
00057         void pushNodeSpotLight();
00058         void pushNodeDirectionalLight();
00059         void pushNodeTexture2Transform();
00060         void pushNodeShapeHints();
00061         void pushNodeNormalBinding();
00062         void pushNodeFontStyle();
00063         void pushNodeLOD();
00064         void pushNodeNormal();
00065         void pushNodeCoordinate3();
00066         void pushNodeTextureCoordinate2();
00067         void pushNodePointSet();
00068         void pushNodeIndexedLineSet();
00069         void pushNodeIndexedFaceSet();
00070         void pushNodeTexture2();
00071         void pushNodeWWWInline();
00072         void pushNodeWWWAnchor();
00073         void pushNodeAsciiText();
00074 
00075         bool pushAttributeSFImage(string name);
00076         void pushAttributeSFString(string name);
00077         void pushAttributeSFBitmask(string name);
00078         void pushAttributeSFMatrix(string name);
00079         void pushAttributeSFRotation(string name);
00080         void pushAttributeSFVec2f(string name);
00081         void pushAttributeMFVec2f(string name);
00082         void pushAttributeSFVec3f(string name);
00083         void pushAttributeMFVec3f(string name);
00084         void pushAttributeSFColor(string name);
00085         void pushAttributeMFColor(string name);
00086         void pushAttributeSFFloat(string name);
00087         void pushAttributeMFFloat(string name);
00088         void pushAttributeSFLong(string name);
00089         void pushAttributeMFLong(string name);
00090         void pushAttributeSFBool(string name);
00091         
00092         void pushString(string s);
00093         void pushFloat(float f);
00094         void pushInteger(int i);
00095         void pushBool(bool b);
00096         
00097         string popString();
00098         Node* lastNode();
00099         
00100         Node* getFirstNode();
00101         Attribute* getFirstAttribute();
00102         
00103 private:
00104         SubStack *m_Parent;
00105         SubStack *m_Child;
00106 
00107         vector<Node*> m_Nodes;
00108         vector<Attribute*> m_Attributes;        
00109 
00110         vector<string> m_Strings;
00111         vector<float> m_Floats;
00112         vector<int> m_Integers;
00113         vector<bool> m_Bools;
00114 };
00115 
00116 }
00117 
00118 #endif /*SUBSTACK_H_*/

Generated on Mon Jul 21 23:57:09 2008 for libvrml1++ by  doxygen 1.5.4