00001 #ifndef X3DTK_MESH_NORMALSDRAWERSTATEVARIABLES_H 00002 #define X3DTK_MESH_NORMALSDRAWERSTATEVARIABLES_H 00003 00004 #include "MESH_SceneGraphTypes.h" 00005 #include "MESH_Mesh.h" 00006 #include "StateVariables.h" 00007 00008 #include <list> 00009 00010 namespace X3DTK { 00011 namespace MESH { 00012 00019 template<class MData, class VData, class EData, class FData, bool RW> 00020 class TemplateNormalsDrawerStateVariables : public StateVariables 00021 { 00022 public: 00024 TemplateNormalsDrawerStateVariables(); 00025 00026 // Initializes the traversal. 00027 void init(); 00028 // Finishes the traversal. 00029 void finish(); 00030 00032 void setAmplitude(float amplitude); 00034 inline float getAmplitude() const; 00035 00036 // Pushes the transformation matrix. 00037 void pushMatrix(const SFMatrix34f &transformation); 00038 // Pops the transformation matrix. 00039 void popMatrix(); 00040 00041 private: 00042 std::list<SFMatrix34f> _matrixStack; 00043 float _amplitude; 00044 }; 00045 00046 } 00047 } 00048 00049 #include "MESH_NormalsDrawerStateVariables.inl" 00050 00051 #endif