#ifndef MESH_DRAWER_H #define MESH_DRAWER_H #include "MESH_DrawerStateVariables.h" #include #include namespace X3DTK { enum SelectedType {NOTHING, VERTICES, EDGES, FACES}; namespace MESH { // Processor drawing the mesh from the Mesh scene graph. class Drawer : public X3DOnePassProcessor { public: Drawer(); virtual ~Drawer(); void changeDrawPoints(); void changeDrawEdges(); void changeDrawFaces(); void changeOneColorPerMesh(); void setSelectedType(SelectedType selectedType); void setSelectedMesh(int selectedMesh); void setSelectedId(int selectedId); inline SelectedType getSelectedType() const {return selectedType;}; inline int getSelectedMesh() const {return selectedMesh;}; inline int getSelectedId() const {return selectedId;}; void drawMesh(X3DNode *N, bool selection = false); void drawSelected(); private: bool drawPoints, drawEdges, drawFaces; SelectedType selectedType; int selectedMesh; int selectedId; // Draw methods. void drawVertex(const SFVertex *vertex); void drawEdge(SFEdge *edge); void drawFace(const SFFace *face); }; } } #endif