Developer Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ACG::SceneGraph::StatusNodeT< Mesh, Mod > Class Template Reference

#include <ACG/Scenegraph/StatusNodesT.hh>

Inheritance diagram for ACG::SceneGraph::StatusNodeT< Mesh, Mod >:
ACG::SceneGraph::MaterialNode ACG::SceneGraph::ACG::SceneGraph::BaseNode

Public Member Functions

 StatusNodeT (const Mesh &_mesh, BaseNode *_parent=0, const std::string &_name="<StatusNode>")
 constructor
 ~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)
DrawModes::DrawMode availableDrawModes () const
void boundingBox (Vec3d &_bbMin, Vec3d &_bbMax)
void draw (GLState &_state, const DrawModes::DrawMode &_drawMode)
void pick (GLState &, PickTarget)
- Public Member Functions inherited from ACG::SceneGraph::MaterialNode
 MaterialNode (BaseNode *_parent=0, const std::string &_name="<MaterialNode>", unsigned int _applyProperties=(All &~BackFaceCulling))
 Default constructor. Applies all properties.
virtual ~MaterialNode ()
 Destructor.
void read (std::istream &_is)
 read MaterialFile
float alpha_value ()
 get current alpha value for alpha_test
bool blending ()
GLenum blending_param1 ()
GLenum blending_param2 ()
void enable_blending (GLenum _p1=GL_SRC_ALPHA, GLenum _p2=GL_ONE_MINUS_SRC_ALPHA)
 enable blending with Parameters (_p1, _p2)
void disable_blending ()
 disable blending
bool backface_culling ()
void enable_backface_culling ()
 enable backface culling (not active by default, see applyProperties)
void disable_backface_culling ()
 disable backface culling (not active by default, see applyProperties)
unsigned int applyProperties () const
 get properties that will be applied (OR'ed ApplyProperties)
void applyProperties (unsigned int _applyProperties)
 set properties that will be applied (OR'ed ApplyProperties)
ACG::SceneGraph::Materialmaterial ()
 Get material object reference.
void set_material (const ACG::SceneGraph::Material &_m)
 Set material object.
 ACG_CLASSNAME (MaterialNode)
 set current GL-color and GL-material
void enter (GLState &_state, const DrawModes::DrawMode &_drawmode)
 set current GL-color and GL-material
void leave (GLState &_state, const DrawModes::DrawMode &_drawmode)
 restores original GL-color and GL-material
void enterPick (GLState &_state, PickTarget _target, const DrawModes::DrawMode &_drawMode)
 Do nothing in picking.
void leavePick (GLState &_state, PickTarget _target, const DrawModes::DrawMode &_drawMode)
 Do nothing in picking.
void set_color (const Vec4f &_c)
 set color (base, ambient, diffuse, specular) based on _c
void set_random_color ()
 Generates a random color and sets it.
void set_base_color (const Vec4f &_c)
 set the base color
const Vec4fbase_color () const
 get the base color
void set_ambient_color (const Vec4f &_a)
 set the ambient color.
const Vec4fambient_color () const
 get the ambient color.
void set_diffuse_color (const Vec4f &_d)
 set the diffuse color.
const Vec4fdiffuse_color () const
 get the diffuse color.
void set_specular_color (const Vec4f &_s)
 set the specular color
const Vec4fspecular_color () const
 get the specular color
void colorMaterial (const bool _cm)
 Set colorMaterial.
void enable_color_material ()
 Enable Color Material.
void disable_color_material ()
 Disable Color Material.
bool colorMaterial ()
 get colorMaterial state
void set_shininess (float _s)
 set shininess
float shininess () const
 get shininess
void set_reflectance (double _m)
 set reflectance
double reflectance () const
 get reflectance
void set_point_size (float _sz)
 set point size (default: 1.0)
float point_size () const
 get point size
void set_line_width (float _sz)
 set line width (default: 1.0)
float line_width () const
 get line width
void set_round_points (bool _b)
 set round points enabled
bool round_points () const
 get round points enabled
void set_line_smooth (bool _b)
 set: smooth lines enabled
bool line_smooth () const
 get: rsmooth lines enabled
void enable_alpha_test (float _clip)
 enable alpha test (draw pixels if alpha >= _clip)
void disable_alpha_test ()
 disable alpha test
bool alpha_test ()
 Return state of Alpha test.
void enable_multisampling ()
 Enable Multisampling.
void disable_multisampling ()
 enable alpha test (draw pixels if alpha >= _clip)
bool multiSampling ()
 Get state of multisampling.
void set_multisampling (bool _state)
 Set state of multisampling.
- Public Member Functions inherited from ACG::SceneGraph::ACG::SceneGraph::BaseNode
 BaseNode (BaseNode *_parent=0, std::string _name="<unknown>")
 Default constructor.
 BaseNode (BaseNode *_parent, BaseNode *_child, std::string _name="<unknown>")
 Put this node between _parent and _child.
virtual ~BaseNode ()
 Destructor.
void delete_subtree ()
 Delete the whole subtree of this node.
virtual const std::string & className () const =0
 Return class name (implemented by the ACG_CLASSNAME macro)
virtual void enter (GLState &, const DrawModes::DrawMode &)
virtual void draw (GLState &, const DrawModes::DrawMode &)
 Draw this node using the draw modes _drawMode.
virtual void getRenderObjects (IRenderer *, GLState &, const DrawModes::DrawMode &)
 Deferred draw call with shader based renderer.
virtual void leave (GLState &, const DrawModes::DrawMode &)
virtual void enterPick (GLState &_state, PickTarget _target, const DrawModes::DrawMode &_drawMode)
virtual void pick (GLState &, PickTarget)
virtual void leavePick (GLState &_state, PickTarget _target, const DrawModes::DrawMode &_drawMode)
void enablePicking (bool _enable)
bool pickingEnabled ()
virtual void mouseEvent (GLState &, QMouseEvent *)
 Handle mouse event (some interaction, e.g. modeling)
void setDirty (bool _dirty=true)
 mark node for redrawn
bool isDirty () const
 Check if node should be redrawn.
ChildIter childrenBegin ()
 Returns: begin-iterator of children.
ConstChildIter childrenBegin () const
 Same but cont.
ChildIter childrenEnd ()
 Returns: end-iterator of children.
ConstChildIter childrenEnd () const
 Same but const.
ChildRIter childrenRBegin ()
 Returns: reverse begin-iterator of children.
ConstChildRIter childrenRBegin () const
 Same but const.
ChildRIter childrenREnd ()
 Returns: reverse end-iterator of children.
ConstChildRIter childrenREnd () const
 Same but const.
void push_back (BaseNode *_node)
 Insert _node at the end of the list of children.
void remove (ChildIter _pos)
unsigned int nChildren () const
 number of children
ChildIter find (BaseNode *_node)
BaseNodefind (const std::string &_name)
BaseNodeparent ()
 Get the nodes parent node.
void set_parent (BaseNode *_parent)
 Set the parent of this node.
StatusMode status () const
 Get node's status.
void set_status (StatusMode _s)
 Set the status of this node.
void hide ()
 Hide Node: set status to HideNode.
void show ()
 Show node: set status to Active.
bool visible ()
 Is node visible (status == Active)?
bool hidden ()
 Is node not visible (status != Active)?
std::string name () const
 Returns: name of node (needs not be unique)
void name (const std::string &_name)
 rename a node
unsigned int id () const
DrawModes::DrawMode drawMode () const
 Return the own draw modes of this node.
void drawMode (DrawModes::DrawMode _drawMode)
unsigned int traverseMode () const
 Return how the node should be traversed.
void setTraverseMode (unsigned int _mode)
 Set traverse mode for node.
MultipassBitMask multipassStatus () const
 Get the current multipass settings for the nodes status functions.
void setMultipassStatus (const MultipassBitMask _passStatus)
 Set multipass settings for the nodes status functions.
void multipassStatusSetActive (const unsigned int _i, bool _active)
 Set multipass status to traverse in a specific pass.
bool multipassStatusActive (const unsigned int _i) const
 Get multipass status to traverse in a specific pass.
MultipassBitMask multipassNode () const
 Get the current multipass settings for the node.
void setMultipassNode (const MultipassBitMask _passNode)
 Set multipass settings for the node.
void multipassNodeSetActive (const unsigned int _i, bool _active)
 Set Node status to traverse in a specific pass.
bool multipassNodeActive (const unsigned int _i) const
 Get Node status to traverse in a specific pass.

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 Mesh & mesh_
std::vector< unsigned int > v_cache_
std::vector< unsigned int > e_cache_
std::vector< unsigned int > f_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_

Additional Inherited Members

- Public Types inherited from ACG::SceneGraph::MaterialNode
enum  ApplyProperties {
  None = 0, All = 0xffff, BaseColor = 1, Material = 2,
  PointSize = 4, LineWidth = 8, RoundPoints = 16, LineSmooth = 32,
  AlphaTest = 64, Blending = 128, BackFaceCulling = 256, ColorMaterial = 512,
  MultiSampling = 1024
}
 Apply which properties? Others will be ignored. Values may be OR'ed. More...

Detailed Description

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

Renders Status flags of Mesh Vertices/Faces/Edges

Definition at line 84 of file StatusNodesT.hh.

Member Function Documentation

template<class Mesh , class Mod >
DrawModes::DrawMode ACG::SceneGraph::StatusNodeT< Mesh, Mod >::availableDrawModes ( ) const
virtual

Return a list of available draw modes for this node: should be OR'ed from the items of the enum DrawModeIDs.

Reimplemented from ACG::SceneGraph::ACG::SceneGraph::BaseNode.

Definition at line 110 of file StatusNodesT.cc.

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

Compute the bounding box of this node and update the values _bbMin and _bbMax accordingly. Do not initialize _bbMin and _bbMax since they may already store values of previous nodes' bounding box computation.

Reimplemented from ACG::SceneGraph::ACG::SceneGraph::BaseNode.

Definition at line 97 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 124 of file StatusNodesT.cc.


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