00001
00002
00004
00005 #ifndef TEMPLATENORMALSDRAWERSTATEVARIABLES_H
00006 #define TEMPLATENORMALSDRAWERSTATEVARIABLES_H
00007
00008 #include "MESH_SceneGraphTypes.h"
00009 #include "MESH_Mesh.h"
00010 #include "StateVariables.h"
00011
00012 #include <list>
00013
00014 namespace X3DTK {
00015 namespace MESH {
00016
00017
00018
00019 template<class MData, class VData, class EData, class FData>
00020 class MeshNormalsDrawerStateVariables : public StateVariables
00021 {
00022 public:
00024 MeshNormalsDrawerStateVariables();
00025
00026
00027 void init();
00028
00029 void finish();
00030
00032 void setAmplitude(float amplitude);
00034 inline float getAmplitude() const;
00035
00036
00037 void pushMatrix(const SFMatrix34f &transformation);
00038
00039 void popMatrix();
00040
00041 private:
00042 std::list<SFMatrix34f> _matrixStack;
00043 float _amplitude;
00044 };
00045
00046 }
00047 }
00048
00049 #include "MESH_MeshNormalsDrawerStateVariables.inl"
00050
00051 #endif