Developer Documentation
ACG::SceneGraph::StatusNodeT< Mesh, Mod > Class Template Reference

#include <ACG/Scenegraph/StatusNodesT.hh>

Inheritance diagram for ACG::SceneGraph::StatusNodeT< Mesh, Mod >:
ACG::SceneGraph::StatusNodeBaseT< Mesh, Mod,::StatusNodes_ModTraits< Mod >::StaticUsage >

Public Types

typedef StatusNodeBaseT< Mesh, Mod,::StatusNodes_ModTraits< Mod >::StaticUsage > BaseClass
 
typedef Mod ModType
 

Public Member Functions

 StatusNodeT (const Mesh &_mesh, BaseNode *_parent=0, const std::string &_name="<StatusNode>")
 constructor
 
virtual ~StatusNodeT ()
 destructor
 
 ACG_CLASSNAME (StatusNode)
 
void updateGeometry ()
 set geometry invalid, topology and selection is kept
 
void updateTopology ()
 set topology invalid (updates everything)
 
void updateSelection ()
 set selection invalid (Only selection changed, rest is kept)
 
void setDrawMesh (DrawMeshT< Mesh > *_drawmesh)
 Set drawmesh. More...
 
void getRenderObjects (IRenderer *_renderer, GLState &_state, const DrawModes::DrawMode &_drawMode, const class Material *_mat)
 support for shader-pipeline More...
 
DrawModes::DrawMode availableDrawModes () const
 
void boundingBox (Vec3d &_bbMin, Vec3d &_bbMax)
 
void draw (GLState &_state, const DrawModes::DrawMode &_drawMode)
 
void pick (GLState &, PickTarget)
 

Private Types

typedef Mesh::Face Face
 
typedef Mesh::Vertex Vertex
 
typedef Mesh::Halfedge Halfedge
 
typedef Mesh::Edge Edge
 
typedef Mesh::FaceHandle FaceHandle
 
typedef Mesh::HalfedgeHandle HalfedgeHandle
 
typedef Mesh::Point Point
 
typedef Mesh::Normal Normal
 

Private Member Functions

void update_cache ()
 
void draw_points ()
 
void draw_edges ()
 
void draw_halfedges ()
 
void draw_faces (bool _per_vertex)
 
Point halfedge_point (const HalfedgeHandle _heh)
 

Private Attributes

const Meshmesh_
 
DrawMeshT< Mesh > * drawMesh_
 
std::vector< unsigned int > v_cache_
 
std::vector< unsigned int > e_cache_
 
std::vector< unsigned int > f_cache_
 
std::vector< unsigned int > poly_cache_
 
std::vector< FaceHandle > fh_cache_
 
std::vector< Point > he_points_
 
std::vector< Normal > he_normals_
 
Vec3d bbMin_
 
Vec3d bbMax_
 
bool invalidGeometry_
 State variables.
 
bool vertexIndexInvalid_
 
bool halfedgeCacheInvalid_
 
bool edgeIndexInvalid_
 
bool faceIndexInvalid_
 
VertexDeclaration pointVertexDecl_
 
VertexDeclaration halfedgeVertexDecl_
 

Detailed Description

template<class Mesh, class Mod>
class ACG::SceneGraph::StatusNodeT< Mesh, Mod >

Renders Status flags of Mesh Vertices/Faces/Edges

Definition at line 183 of file StatusNodesT.hh.

Member Function Documentation

template<class Mesh , class Mod >
void ACG::SceneGraph::StatusNodeT< Mesh, Mod >::getRenderObjects ( IRenderer _renderer,
GLState _state,
const DrawModes::DrawMode _drawMode,
const class Material _mat 
)

support for shader-pipeline

Parameters
_rendererRender-Interface, collector for Renderobjects
_statecurrent OpenGL state
_drawModeactive Drawmode
_matactive Material

Definition at line 589 of file StatusNodesT.cc.

template<class Mesh, class Mod >
void ACG::SceneGraph::StatusNodeT< Mesh, Mod >::setDrawMesh ( DrawMeshT< Mesh > *  _drawmesh)

Set drawmesh.

Selections are then rendered with gpu buffers gathered fro the meshnode for improved performance

Parameters
_drawmeshPointer to the drawmesh for which this status node will work

Definition at line 750 of file StatusNodesT.cc.

template<class Mesh , class Mod >
void ACG::SceneGraph::StatusNodeT< Mesh, Mod >::update_cache ( )
private

build/update cache of active vertices/edges/faces. This function automatically enables caching.

Definition at line 132 of file StatusNodesT.cc.


The documentation for this class was generated from the following files: