Developer Documentation
ACG::SceneGraph::PointNode Class Reference

#include <ACG/Scenegraph/PointNode.hh>

Inheritance diagram for ACG::SceneGraph::PointNode:
ACG::SceneGraph::BaseNode

Public Types

typedef std::vector< ACG::Vec3dPointVector
 
typedef PointVector::iterator PointIter
 
typedef PointVector::const_iterator ConstPointIter
 
typedef std::vector< ACG::Vec4fColorVector
 
typedef ColorVector::iterator ColorIter
 
typedef ColorVector::const_iterator ConstColorIter
 
- Public Types inherited from ACG::SceneGraph::BaseNode
enum  StatusMode { Active = 0x1 , HideNode = 0x2 , HideChildren = 0x4 , HideSubtree = 0x8 }
 Status modi. More...
 
enum  TraverseMode { NodeFirst = 0x1 , ChildrenFirst = 0x2 , SecondPass = 0x4 }
 Node traverse types. More...
 
typedef std::vector< BaseNode * >::const_iterator ConstChildIter
 allows to iterate over children More...
 
typedef std::vector< BaseNode * >::iterator ChildIter
 allows to iterate over children More...
 
typedef std::vector< BaseNode * >::const_reverse_iterator ConstChildRIter
 allows to reverse iterate over children More...
 
typedef std::vector< BaseNode * >::reverse_iterator ChildRIter
 allows to reverse iterate over children More...
 
enum  PASSES {
  NOPASS = 0 , ALLPASSES = 1 << 0 , PASS_1 = 1 << 1 , PASS_2 = 1 << 2 ,
  PASS_3 = 1 << 3 , PASS_4 = 1 << 4 , PASS_5 = 1 << 5 , PASS_6 = 1 << 6 ,
  PASS_7 = 1 << 7 , PASS_8 = 1 << 8
}
 This enum should be used to enable rendering of a node in different. More...
 
typedef unsigned int MultipassBitMask
 Multipass pass bit mask type. More...
 

Public Member Functions

 PointNode (BaseNode *_parent=0, const std::string &_name="<PointNode>")
 default constructor More...
 
 ~PointNode ()
 destructor More...
 
 ACG_CLASSNAME (PointNode)
 static name of this class
 
DrawModes::DrawMode availableDrawModes () const override
 return available draw modes More...
 
void boundingBox (Vec3d &_bbMin, Vec3d &_bbMax) override
 update bounding box More...
 
void draw (GLState &_state, const DrawModes::DrawMode &_drawMode) override
 draw points and normals More...
 
void getRenderObjects (IRenderer *_renderer, GLState &_state, const DrawModes::DrawMode &_drawMode, const Material *_mat) override
 draw points and normals via renderer plugin More...
 
void reserve (unsigned int _np, unsigned int _nn, unsigned int _nc)
 reserve mem for _np points and _nn normals More...
 
void add_point (const ACG::Vec3d &_p)
 add point More...
 
void add_normal (const ACG::Vec3d &_n)
 add normal More...
 
void add_color (const ACG::Vec4f &_c)
 add color More...
 
size_t n_points () const
 how many points? More...
 
void clear_points ()
 clear points More...
 
void clear_normals ()
 clear normals More...
 
void clear_colors ()
 clear colors More...
 
void clear ()
 clear points and normals and colors More...
 
const PointVector & points () const
 get point container More...
 
const PointVector & normals () const
 get normal container More...
 
const ColorVector & colors () const
 get color container More...
 
- Public Member Functions inherited from ACG::SceneGraph::BaseNode
 BaseNode (BaseNode *_parent=0, std::string _name="<unknown>")
 Default constructor. More...
 
 BaseNode (BaseNode *_parent, BaseNode *_child, std::string _name="<unknown>")
 Put this node between _parent and _child. More...
 
virtual ~BaseNode ()
 Destructor. More...
 
void delete_subtree ()
 Delete the whole subtree of this node. More...
 
virtual const std::string & className () const =0
 Return class name (implemented by the ACG_CLASSNAME macro)
 
virtual DrawModes::DrawMode availableDrawModes () const
 
virtual void boundingBox (Vec3d &, Vec3d &)
 
virtual void enter (GLState &, const DrawModes::DrawMode &)
 
virtual void enter (IRenderer *, GLState &_state, const DrawModes::DrawMode &_drawMode)
 
virtual void draw (GLState &, const DrawModes::DrawMode &)
 Draw this node using the draw modes _drawMode. More...
 
virtual void getRenderObjects (IRenderer *_renderer, GLState &_state, const DrawModes::DrawMode &_drawMode, const Material *_mat)
 Deferred draw call with shader based renderer. More...
 
virtual void leave (GLState &, const DrawModes::DrawMode &)
 
virtual void leave (IRenderer *, GLState &_state, const DrawModes::DrawMode &_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) More...
 
void setDirty (bool _dirty=true)
 mark node for redrawn More...
 
bool isDirty () const
 Check if node should be redrawn. More...
 
ChildIter childrenBegin ()
 Returns: begin-iterator of children. More...
 
ConstChildIter childrenBegin () const
 Same but cont. More...
 
ChildIter childrenEnd ()
 Returns: end-iterator of children. More...
 
ConstChildIter childrenEnd () const
 Same but const. More...
 
ChildRIter childrenRBegin ()
 Returns: reverse begin-iterator of children. More...
 
ConstChildRIter childrenRBegin () const
 Same but const. More...
 
ChildRIter childrenREnd ()
 Returns: reverse end-iterator of children. More...
 
ConstChildRIter childrenREnd () const
 Same but const. More...
 
void push_back (BaseNode *_node)
 Insert _node at the end of the list of children. More...
 
void remove (ChildIter _pos)
 
size_t nChildren () const
 number of children More...
 
ChildIter find (BaseNode *_node)
 
BaseNodefind (const std::string &_name)
 
BaseNodeparent ()
 Get the nodes parent node. More...
 
const BaseNodeparent () const
 Get the nodes parent node. More...
 
void set_parent (BaseNode *_parent)
 Set the parent of this node. More...
 
StatusMode status () const
 Get node's status. More...
 
void set_status (StatusMode _s)
 Set the status of this node. More...
 
void hide ()
 Hide Node: set status to HideNode. More...
 
void show ()
 Show node: set status to Active. More...
 
bool visible ()
 Is node visible (status == Active)? More...
 
bool hidden ()
 Is node not visible (status != Active)? More...
 
std::string name () const
 Returns: name of node (needs not be unique) More...
 
void name (const std::string &_name)
 rename a node More...
 
unsigned int id () const
 
DrawModes::DrawMode drawMode () const
 Return the own draw modes of this node. More...
 
void drawMode (DrawModes::DrawMode _drawMode)
 
unsigned int traverseMode () const
 Return how the node should be traversed. More...
 
void setTraverseMode (unsigned int _mode)
 Set traverse mode for node. More...
 
MultipassBitMask multipassStatus () const
 Get the current multipass settings for the nodes status functions. More...
 
void setMultipassStatus (const MultipassBitMask _passStatus)
 Set multipass settings for the nodes status functions. More...
 
void multipassStatusSetActive (const unsigned int _i, bool _active)
 Set multipass status to traverse in a specific pass. More...
 
bool multipassStatusActive (const unsigned int _i) const
 Get multipass status to traverse in a specific pass. More...
 
MultipassBitMask multipassNode () const
 Get the current multipass settings for the node. More...
 
void setMultipassNode (const MultipassBitMask _passNode)
 Set multipass settings for the node. More...
 
void multipassNodeSetActive (const unsigned int _i, bool _active)
 Set Node status to traverse in a specific pass. More...
 
bool multipassNodeActive (const unsigned int _i) const
 Get Node status to traverse in a specific pass. More...
 
void setRenderObjectShaders (const std::string &_vertexShaderFile, const std::string &_geometryShaderFile, const std::string &_fragmentShaderFile, bool _relativePaths=true, DrawModes::DrawModePrimitive _primitiveType=DrawModes::PRIMITIVE_POLYGON)
 Set custom shaders. More...
 
void setRenderObjectShaders (const std::string &_vertexShaderFile, const std::string &_tessControlShaderFile, const std::string &_tessEvalShaderFile, const std::string &_geometryShaderFile, const std::string &_fragmentShaderFile, bool _relativePaths=true, DrawModes::DrawModePrimitive _primitiveType=DrawModes::PRIMITIVE_POLYGON)
 Set custom shaders. More...
 
void setRenderObjectUniformPool (const GLSL::UniformPool *_pool)
 Set uniforms for shader based rendering. More...
 
const GLSL::UniformPoolgetRenderObjectUniformPool ()
 Get uniforms for shader based rendering. More...
 
void setRenderObjectTexture (int _samplerSlot, GLuint _texId, GLenum _texType=GL_TEXTURE_2D)
 Set textures for shader based rendering. More...
 
void setRenderObjectModifier (RenderObjectModifier *_modifier)
 Set modifier for render objects. More...
 
RenderObjectModifiergetRenderObjectModifier ()
 Get render-object modifier. More...
 
void applyRenderObjectSettings (DrawModes::DrawModePrimitive _primitive, RenderObject *_obj) const
 Set shaders, textures and uniforms as provided by user to a render-object. More...
 

Private Member Functions

void update_vbo ()
 

Private Attributes

PointVector points_
 
PointVector normals_
 
ColorVector colors_
 
GLuint vbo_ = 0
 
std::vector< float > vbo_data_
 
bool vbo_needs_update_ = true
 
VertexDeclaration vertexDecl_
 

Detailed Description

PointNode renders points and normals.

These elements are internally stored in arrays and rendered using OpenGL vertex and normal arrays.

Definition at line 82 of file PointNode.hh.

Member Typedef Documentation

◆ ColorIter

typedef ColorVector::iterator ACG::SceneGraph::PointNode::ColorIter

Definition at line 91 of file PointNode.hh.

◆ ColorVector

typedef std::vector<ACG::Vec4f> ACG::SceneGraph::PointNode::ColorVector

Definition at line 90 of file PointNode.hh.

◆ ConstColorIter

typedef ColorVector::const_iterator ACG::SceneGraph::PointNode::ConstColorIter

Definition at line 92 of file PointNode.hh.

◆ ConstPointIter

typedef PointVector::const_iterator ACG::SceneGraph::PointNode::ConstPointIter

Definition at line 89 of file PointNode.hh.

◆ PointIter

typedef PointVector::iterator ACG::SceneGraph::PointNode::PointIter

Definition at line 88 of file PointNode.hh.

◆ PointVector

typedef std::vector<ACG::Vec3d> ACG::SceneGraph::PointNode::PointVector

Definition at line 87 of file PointNode.hh.

Constructor & Destructor Documentation

◆ PointNode()

ACG::SceneGraph::PointNode::PointNode ( BaseNode _parent = 0,
const std::string &  _name = "<PointNode>" 
)
inline

default constructor

Definition at line 96 of file PointNode.hh.

◆ ~PointNode()

ACG::SceneGraph::PointNode::~PointNode ( )
inline

destructor

Definition at line 102 of file PointNode.hh.

Member Function Documentation

◆ add_color()

void ACG::SceneGraph::PointNode::add_color ( const ACG::Vec4f _c)
inline

add color

Definition at line 129 of file PointNode.hh.

◆ add_normal()

void ACG::SceneGraph::PointNode::add_normal ( const ACG::Vec3d _n)
inline

add normal

Definition at line 127 of file PointNode.hh.

◆ add_point()

void ACG::SceneGraph::PointNode::add_point ( const ACG::Vec3d _p)
inline

add point

Definition at line 125 of file PointNode.hh.

◆ availableDrawModes()

DrawModes::DrawMode ACG::SceneGraph::PointNode::availableDrawModes ( ) const
overridevirtual

return available draw modes

Reimplemented from ACG::SceneGraph::BaseNode.

Definition at line 84 of file PointNode.cc.

◆ boundingBox()

void ACG::SceneGraph::PointNode::boundingBox ( Vec3d _bbMin,
Vec3d _bbMax 
)
overridevirtual

update bounding box

Reimplemented from ACG::SceneGraph::BaseNode.

Definition at line 69 of file PointNode.cc.

◆ clear()

void ACG::SceneGraph::PointNode::clear ( )
inline

clear points and normals and colors

Definition at line 141 of file PointNode.hh.

◆ clear_colors()

void ACG::SceneGraph::PointNode::clear_colors ( )
inline

clear colors

Definition at line 139 of file PointNode.hh.

◆ clear_normals()

void ACG::SceneGraph::PointNode::clear_normals ( )
inline

clear normals

Definition at line 137 of file PointNode.hh.

◆ clear_points()

void ACG::SceneGraph::PointNode::clear_points ( )
inline

clear points

Definition at line 135 of file PointNode.hh.

◆ colors()

const ColorVector & ACG::SceneGraph::PointNode::colors ( ) const
inline

get color container

Definition at line 148 of file PointNode.hh.

◆ draw()

void ACG::SceneGraph::PointNode::draw ( GLState _state,
const DrawModes::DrawMode _drawMode 
)
overridevirtual

draw points and normals

Reimplemented from ACG::SceneGraph::BaseNode.

Definition at line 97 of file PointNode.cc.

◆ getRenderObjects()

void ACG::SceneGraph::PointNode::getRenderObjects ( IRenderer _renderer,
GLState _state,
const DrawModes::DrawMode _drawMode,
const Material _mat 
)
overridevirtual

draw points and normals via renderer plugin

Reimplemented from ACG::SceneGraph::BaseNode.

Definition at line 208 of file PointNode.cc.

◆ n_points()

size_t ACG::SceneGraph::PointNode::n_points ( ) const
inline

how many points?

Definition at line 132 of file PointNode.hh.

◆ normals()

const PointVector & ACG::SceneGraph::PointNode::normals ( ) const
inline

get normal container

Definition at line 146 of file PointNode.hh.

◆ points()

const PointVector & ACG::SceneGraph::PointNode::points ( ) const
inline

get point container

Definition at line 144 of file PointNode.hh.

◆ reserve()

void ACG::SceneGraph::PointNode::reserve ( unsigned int  _np,
unsigned int  _nn,
unsigned int  _nc 
)
inline

reserve mem for _np points and _nn normals

Definition at line 120 of file PointNode.hh.

◆ update_vbo()

void ACG::SceneGraph::PointNode::update_vbo ( )
private

Definition at line 151 of file PointNode.cc.

Member Data Documentation

◆ colors_

ColorVector ACG::SceneGraph::PointNode::colors_
private

Definition at line 155 of file PointNode.hh.

◆ normals_

PointVector ACG::SceneGraph::PointNode::normals_
private

Definition at line 154 of file PointNode.hh.

◆ points_

PointVector ACG::SceneGraph::PointNode::points_
private

Definition at line 154 of file PointNode.hh.

◆ vbo_

GLuint ACG::SceneGraph::PointNode::vbo_ = 0
private

Definition at line 157 of file PointNode.hh.

◆ vbo_data_

std::vector<float> ACG::SceneGraph::PointNode::vbo_data_
private

Definition at line 158 of file PointNode.hh.

◆ vbo_needs_update_

bool ACG::SceneGraph::PointNode::vbo_needs_update_ = true
private

Definition at line 159 of file PointNode.hh.

◆ vertexDecl_

VertexDeclaration ACG::SceneGraph::PointNode::vertexDecl_
private

Definition at line 161 of file PointNode.hh.


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