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

MESH_StatsCalculator.h

Go to the documentation of this file.
00001 #ifndef X3DTK_MESH_STATSCALCULATOR_H
00002 #define X3DTK_MESH_STATSCALCULATOR_H
00003 
00004 #include "MESH_StatsCalculatorStateVariables.h"
00005 #include "X3DOnePassProcessor.h"
00006 #include "MESH_SceneGraphTypes.h"
00007 #include "DFSGraphTraversal.h"
00008 #include "MESH_StatsCalculatorCoreVisitor.h"
00009 #include "MESH_Mesh.h"
00010 #include "MESH_MeshData.h"
00011 
00012 namespace X3DTK {
00013 namespace MESH {
00014 
00021 template<class MData, class VData, class EData, class FData, bool readOnly>
00022 class StatsCalculator : public X3DOnePassProcessor
00023 {
00024 public:
00026   StatsCalculator();
00028   virtual ~StatsCalculator();
00029   
00031   void calculate(X3DNode *N);
00032   
00034   inline unsigned int getModelFaces() const;
00036   inline unsigned int getModelVertices() const;
00038   inline unsigned int getModelEdges() const;
00039   
00041   inline unsigned int getFacesOf(X3DNode *N) const;
00043   inline unsigned int getVerticesOf(X3DNode *N) const;
00045   inline unsigned int getEdgesOf(X3DNode *N) const;
00047   const SFMatrix34f &getMatrixOf(X3DNode *N);
00048   
00050   inline const MeshInfo<MData, VData, EData, FData, readOnly> &getModelMeshInfo() const;
00052   inline const std::list<std::pair<X3DNode *, MeshInfo<MData, VData, EData, FData, readOnly> > > &getMeshInfoList() const;
00054   inline const VertexInfo<VData, EData, FData, readOnly> &getModelVertexInfo() const;
00056   inline const std::list<std::pair<X3DNode *, VertexInfo<VData, EData, FData, readOnly> > > &getVertexInfoList() const;
00057   
00059   void setSelectedNodes(const MFNode &selectedNodes);
00061   MFNode getSelectedNodes() const;
00062     
00063 protected:
00064   StatsCalculatorStateVariables<MData, VData, EData, FData, readOnly>* stateVariables;
00065 };
00066 
00068 typedef StatsCalculator<MeshData, VertexData, EdgeData, FaceData, true> DefStatsCalculator;
00069 
00070 }
00071 }
00072 
00073 #include "MESH_StatsCalculator.inl"
00074 
00075 #endif
00076 

Generated on Wed Apr 7 12:15:20 2004 for X3DToolKit by doxygen 1.3.3