Main Page   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

MESH_MeshFacesDrawerStateVariables.h

Go to the documentation of this file.
00001 
00002 //                            MESH_MeshFacesDrawerStateVariables.h            //
00004 
00005 #ifndef MESHFACESDRAWERSTATEVARIABLES_H
00006 #define MESHFACESDRAWERSTATEVARIABLES_H
00007 
00008 #include "MESH_SceneGraphTypes.h"
00009 #include "MESH_Mesh.h"
00010 
00011 #include <list>
00012 #include <vector>
00013 
00014 namespace X3DTK {
00015 namespace MESH {
00016 
00017 // State variables for the Drawer processor.
00018 
00019 template<class MData, class VData, class EData, class FData>
00020 class MeshFacesDrawerStateVariables : public StateVariables
00021 {
00022 public:
00024   MeshFacesDrawerStateVariables();
00025 
00027   void init();
00029   void finish();
00030 
00031   // Pushes the transformation matrix.
00032   void pushMatrix(const SFMatrix34f &transformation);
00033   // Pops the transformation matrix.
00034   void popMatrix();
00035   // Saves current matrix state and returns index in saved vector.
00036   // Call storeMesh() before calling ths function
00037   int getCurrentMeshId();
00038   
00039   // Saves mesh and associated current matrix.
00040   void storeMesh(Mesh<MData, VData, EData, FData> *mesh);
00041   
00042   // Get i Mesh of the model.
00043   inline Mesh<MData, VData, EData, FData> *getMesh(int i) const;
00044   // Gets stored transformation matrix associated with a given Mesh.
00045   inline const SFMatrix34f &getMatrix(int i) const;
00046 
00047   // Whether or not primitive IDs are pushed.
00048   inline void setSelectionMode(bool selectionMode);
00049   inline bool getSelectionMode() const;
00050     
00051   // Whether each mesh is displayed with a specific color
00052   void changeOneColorPerMesh();
00053   inline bool getOneColorPerMesh() const;
00054   
00055 private: 
00056   std::list<SFMatrix34f> _matrixStack;
00057   std::vector<SFMatrix34f> _matrixVector;
00058   std::vector<Mesh<MData, VData, EData, FData> *> _meshVector;
00059   bool _selectionMode;
00060   bool _oneColorPerMesh;
00061 };
00062 
00063 }
00064 }
00065 
00066 #include "MESH_MeshFacesDrawerStateVariables.inl"
00067 
00068 #endif

Generated on Mon Jan 19 10:32:04 2004 for X3DToolKit by doxygen1.2.18