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 > ACG::SceneGraph::StatusNodesBase

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

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)
 
void updateIBOData (GLuint &bufferName_, size_t numberOfElements_, size_t sizeOfElements_, void *data_)
 
void updateHEVBOPoints (size_t numberOfElements_, size_t sizeOfElements_, void *data_)
 

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. More...
 
bool vertexIndexInvalid_
 
bool halfedgeCacheInvalid_
 
bool edgeIndexInvalid_
 
bool faceIndexInvalid_
 
VertexDeclaration pointVertexDecl_
 
VertexDeclaration halfedgeVertexDecl_
 
- Private Attributes inherited from ACG::SceneGraph::StatusNodesBase
GLuint heVBO_
 
GLuint eIBO_
 
GLuint fIBO_
 
GLuint vIBO_
 
GLuint pIBO_
 

Detailed Description

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

Renders Status flags of Mesh Vertices/Faces/Edges

Definition at line 207 of file StatusNodesT.hh.

Member Typedef Documentation

◆ BaseClass

template<class Mesh , class Mod >
typedef StatusNodeBaseT<Mesh, Mod, ::StatusNodes_ModTraits<Mod>::StaticUsage> ACG::SceneGraph::StatusNodeT< Mesh, Mod >::BaseClass

Definition at line 212 of file StatusNodesT.hh.

◆ Edge

template<class Mesh , class Mod >
typedef Mesh::Edge ACG::SceneGraph::StatusNodeT< Mesh, Mod >::Edge
private

Definition at line 272 of file StatusNodesT.hh.

◆ Face

template<class Mesh , class Mod >
typedef Mesh::Face ACG::SceneGraph::StatusNodeT< Mesh, Mod >::Face
private

Definition at line 269 of file StatusNodesT.hh.

◆ FaceHandle

template<class Mesh , class Mod >
typedef Mesh::FaceHandle ACG::SceneGraph::StatusNodeT< Mesh, Mod >::FaceHandle
private

Definition at line 273 of file StatusNodesT.hh.

◆ Halfedge

template<class Mesh , class Mod >
typedef Mesh::Halfedge ACG::SceneGraph::StatusNodeT< Mesh, Mod >::Halfedge
private

Definition at line 271 of file StatusNodesT.hh.

◆ HalfedgeHandle

template<class Mesh , class Mod >
typedef Mesh::HalfedgeHandle ACG::SceneGraph::StatusNodeT< Mesh, Mod >::HalfedgeHandle
private

Definition at line 274 of file StatusNodesT.hh.

◆ ModType

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

Definition at line 213 of file StatusNodesT.hh.

◆ Normal

template<class Mesh , class Mod >
typedef Mesh::Normal ACG::SceneGraph::StatusNodeT< Mesh, Mod >::Normal
private

Definition at line 277 of file StatusNodesT.hh.

◆ Point

template<class Mesh , class Mod >
typedef Mesh::Point ACG::SceneGraph::StatusNodeT< Mesh, Mod >::Point
private

Definition at line 276 of file StatusNodesT.hh.

◆ Vertex

template<class Mesh , class Mod >
typedef Mesh::Vertex ACG::SceneGraph::StatusNodeT< Mesh, Mod >::Vertex
private

Definition at line 270 of file StatusNodesT.hh.

Constructor & Destructor Documentation

◆ StatusNodeT()

template<class Mesh , class Mod >
ACG::SceneGraph::StatusNodeT< Mesh, Mod >::StatusNodeT ( const Mesh _mesh,
BaseNode _parent = 0,
const std::string &  _name = "<StatusNode>" 
)

constructor

Definition at line 69 of file StatusNodesT_impl.hh.

◆ ~StatusNodeT()

template<class Mesh , class Mod >
virtual ACG::SceneGraph::StatusNodeT< Mesh, Mod >::~StatusNodeT ( )
inlinevirtual

destructor

Definition at line 221 of file StatusNodesT.hh.

Member Function Documentation

◆ availableDrawModes()

template<class Mesh , class Mod >
DrawModes::DrawMode ACG::SceneGraph::StatusNodeT< Mesh, Mod >::availableDrawModes
override

Definition at line 106 of file StatusNodesT_impl.hh.

◆ boundingBox()

template<class Mesh , class Mod >
void ACG::SceneGraph::StatusNodeT< Mesh, Mod >::boundingBox ( Vec3d _bbMin,
Vec3d _bbMax 
)
override

Definition at line 93 of file StatusNodesT_impl.hh.

◆ draw()

template<class Mesh , class Mod >
void ACG::SceneGraph::StatusNodeT< Mesh, Mod >::draw ( GLState _state,
const DrawModes::DrawMode _drawMode 
)
override

Definition at line 313 of file StatusNodesT_impl.hh.

◆ draw_edges()

template<class Mesh , class Mod >
void ACG::SceneGraph::StatusNodeT< Mesh, Mod >::draw_edges
private

Definition at line 462 of file StatusNodesT_impl.hh.

◆ draw_faces()

template<class Mesh , class Mod >
void ACG::SceneGraph::StatusNodeT< Mesh, Mod >::draw_faces ( bool  _per_vertex)
private

Definition at line 499 of file StatusNodesT_impl.hh.

◆ draw_halfedges()

template<class Mesh , class Mod >
void ACG::SceneGraph::StatusNodeT< Mesh, Mod >::draw_halfedges
private

Definition at line 478 of file StatusNodesT_impl.hh.

◆ draw_points()

template<class Mesh , class Mod >
void ACG::SceneGraph::StatusNodeT< Mesh, Mod >::draw_points
private

Definition at line 446 of file StatusNodesT_impl.hh.

◆ getRenderObjects()

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

support for shader-pipeline

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

Definition at line 598 of file StatusNodesT_impl.hh.

◆ halfedge_point()

template<class Mesh , class Mod >
Mesh::Point ACG::SceneGraph::StatusNodeT< Mesh, Mod >::halfedge_point ( const HalfedgeHandle  _heh)
private

Definition at line 567 of file StatusNodesT_impl.hh.

◆ pick()

template<class Mesh , class Mod >
void ACG::SceneGraph::StatusNodeT< Mesh, Mod >::pick ( GLState ,
PickTarget   
)
inlineoverride

Definition at line 259 of file StatusNodesT.hh.

◆ setDrawMesh()

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 765 of file StatusNodesT_impl.hh.

◆ update_cache()

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 121 of file StatusNodesT_impl.hh.

◆ updateGeometry()

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

set geometry invalid, topology and selection is kept

Definition at line 741 of file StatusNodesT_impl.hh.

◆ updateSelection()

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

set selection invalid (Only selection changed, rest is kept)

Definition at line 756 of file StatusNodesT_impl.hh.

◆ updateTopology()

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

set topology invalid (updates everything)

Definition at line 747 of file StatusNodesT_impl.hh.

Member Data Documentation

◆ bbMax_

template<class Mesh , class Mod >
Vec3d ACG::SceneGraph::StatusNodeT< Mesh, Mod >::bbMax_
private

Definition at line 302 of file StatusNodesT.hh.

◆ bbMin_

template<class Mesh , class Mod >
Vec3d ACG::SceneGraph::StatusNodeT< Mesh, Mod >::bbMin_
private

Definition at line 301 of file StatusNodesT.hh.

◆ drawMesh_

template<class Mesh , class Mod >
DrawMeshT<Mesh>* ACG::SceneGraph::StatusNodeT< Mesh, Mod >::drawMesh_
private

Definition at line 290 of file StatusNodesT.hh.

◆ e_cache_

template<class Mesh , class Mod >
std::vector<unsigned int> ACG::SceneGraph::StatusNodeT< Mesh, Mod >::e_cache_
private

Definition at line 293 of file StatusNodesT.hh.

◆ edgeIndexInvalid_

template<class Mesh , class Mod >
bool ACG::SceneGraph::StatusNodeT< Mesh, Mod >::edgeIndexInvalid_
private

Definition at line 309 of file StatusNodesT.hh.

◆ f_cache_

template<class Mesh , class Mod >
std::vector<unsigned int> ACG::SceneGraph::StatusNodeT< Mesh, Mod >::f_cache_
private

Definition at line 293 of file StatusNodesT.hh.

◆ faceIndexInvalid_

template<class Mesh , class Mod >
bool ACG::SceneGraph::StatusNodeT< Mesh, Mod >::faceIndexInvalid_
private

Definition at line 310 of file StatusNodesT.hh.

◆ fh_cache_

template<class Mesh , class Mod >
std::vector<FaceHandle> ACG::SceneGraph::StatusNodeT< Mesh, Mod >::fh_cache_
private

Definition at line 294 of file StatusNodesT.hh.

◆ halfedgeCacheInvalid_

template<class Mesh , class Mod >
bool ACG::SceneGraph::StatusNodeT< Mesh, Mod >::halfedgeCacheInvalid_
private

Definition at line 308 of file StatusNodesT.hh.

◆ halfedgeVertexDecl_

template<class Mesh , class Mod >
VertexDeclaration ACG::SceneGraph::StatusNodeT< Mesh, Mod >::halfedgeVertexDecl_
private

Definition at line 315 of file StatusNodesT.hh.

◆ he_normals_

template<class Mesh , class Mod >
std::vector<Normal> ACG::SceneGraph::StatusNodeT< Mesh, Mod >::he_normals_
private

Definition at line 298 of file StatusNodesT.hh.

◆ he_points_

template<class Mesh , class Mod >
std::vector<Point> ACG::SceneGraph::StatusNodeT< Mesh, Mod >::he_points_
private

Definition at line 297 of file StatusNodesT.hh.

◆ invalidGeometry_

template<class Mesh , class Mod >
bool ACG::SceneGraph::StatusNodeT< Mesh, Mod >::invalidGeometry_
private

State variables.

Definition at line 305 of file StatusNodesT.hh.

◆ mesh_

template<class Mesh , class Mod >
const Mesh& ACG::SceneGraph::StatusNodeT< Mesh, Mod >::mesh_
private

Definition at line 289 of file StatusNodesT.hh.

◆ pointVertexDecl_

template<class Mesh , class Mod >
VertexDeclaration ACG::SceneGraph::StatusNodeT< Mesh, Mod >::pointVertexDecl_
private

Definition at line 314 of file StatusNodesT.hh.

◆ poly_cache_

template<class Mesh , class Mod >
std::vector<unsigned int> ACG::SceneGraph::StatusNodeT< Mesh, Mod >::poly_cache_
private

Definition at line 293 of file StatusNodesT.hh.

◆ v_cache_

template<class Mesh , class Mod >
std::vector<unsigned int> ACG::SceneGraph::StatusNodeT< Mesh, Mod >::v_cache_
private

Definition at line 293 of file StatusNodesT.hh.

◆ vertexIndexInvalid_

template<class Mesh , class Mod >
bool ACG::SceneGraph::StatusNodeT< Mesh, Mod >::vertexIndexInvalid_
private

Definition at line 307 of file StatusNodesT.hh.


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