Developer Documentation
ACG::SceneGraph::SplatCloudNode Class Reference

#include <ObjectTypes/SplatCloud/SplatCloudNode.hh>

Inheritance diagram for ACG::SceneGraph::SplatCloudNode:
ACG::SceneGraph::ACG::SceneGraph::BaseNode

Public Types

typedef SplatCloud::Position Position
 
typedef SplatCloud::Color Color
 
typedef SplatCloud::Normal Normal
 
typedef SplatCloud::Pointsize Pointsize
 
typedef SplatCloud::Index Index
 
typedef SplatCloud::Viewlist Viewlist
 
typedef SplatCloud::Selection Selection
 
- Public Types inherited from ACG::SceneGraph::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
 
typedef std::vector< BaseNode * >::iterator ChildIter
 allows to iterate over children
 
typedef std::vector< BaseNode * >::const_reverse_iterator ConstChildRIter
 allows to reverse iterate over children
 
typedef std::vector< BaseNode * >::reverse_iterator ChildRIter
 allows to reverse iterate over children
 
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.
 
typedef unsigned int MultipassBitMask
 Multipass pass bit mask type.
 

Public Member Functions

 SplatCloudNode (const SplatCloud &_splatCloud, BaseNode *_parent=0, std::string _name="<SplatCloudNode>")
 constructor
 
 ~SplatCloudNode ()
 destructor
 
 ACG_CLASSNAME (SplatCloudNode)
 
DrawModes::DrawMode availableDrawModes () const
 return available draw modes
 
void boundingBox (ACG::Vec3d &_bbMin, ACG::Vec3d &_bbMax)
 update bounding box
 
void draw (GLState &_state, const DrawModes::DrawMode &_drawMode)
 draw the SplatCloud
 
void getRenderObjects (IRenderer *_renderer, GLState &_state, const DrawModes::DrawMode &_drawMode, const Material *_mat)
 create render objects
 
void pick (GLState &_state, PickTarget _target)
 picking
 
void enterPick (GLState &_state, PickTarget _target, const DrawModes::DrawMode &_drawMode)
 
const SplatCloudsplatCloud () const
 
void modifiedPositions ()
 
void modifiedColors ()
 
void modifiedNormals ()
 
void modifiedPointsizes ()
 
void modifiedSelections ()
 
void modifiedPickColors ()
 
void modifiedAll ()
 
void setDefaultColor (const Color &_color)
 
void setDefaultNormal (const Normal &_normal)
 
void setDefaultPointsize (const Pointsize &_pointsize)
 
const ColordefaultColor () const
 
const NormaldefaultNormal () const
 
const Pointsize & defaultPointsize () const
 
const PositiongetPosition (int _idx) const
 if the data array exists, the entry with the given index is returned, otherwise the default value is returned
 
const ColorgetColor (int _idx) const
 
const NormalgetNormal (int _idx) const
 
const Pointsize & getPointsize (int _idx) const
 
const Index & getIndex (int _idx) const
 
const Viewlist & getViewlist (int _idx) const
 
const Selection & getSelection (int _idx) const
 
void setPointsizeScale (float _scale)
 
void setBackfaceCulling (bool _enable)
 
void setGeometryShaderQuads (bool _enable)
 
float getPointsizeScale () const
 
bool getBackfaceCulling () const
 
bool getGeometryShaderQuads () const
 
- 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. More...
 
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 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)
 
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)
 
size_t nChildren () const
 number of children
 
ChildIter find (BaseNode *_node)
 
BaseNodefind (const std::string &_name)
 
BaseNodeparent ()
 Get the nodes parent node.
 
const BaseNodeparent () const
 Get the nodes parent node.
 
void set_parent (BaseNode *_parent)
 Set the parent of this node. More...
 
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. 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

bool vboModified () const
 return true iff any of the data values in the VBO has to be changed
 
bool vboStructureModified () const
 returns true iff the internal block structure of the VBO has to be changed
 
void createVBO ()
 
void destroyVBO ()
 
void rebuildVBO (GLState &_state)
 
void rebuildVBOPositions ()
 
void rebuildVBOColors ()
 
void rebuildVBONormals ()
 
void rebuildVBOPointsizes ()
 
void rebuildVBOSelections ()
 
void rebuildVBOPickColors (GLState &_state)
 

Private Attributes

const SplatCloudsplatCloud_
 reference to class containing all the data
 
bool positionsModified_
 marks if parts of the data has been modified
 
bool colorsModified_
 
bool normalsModified_
 
bool pointsizesModified_
 
bool selectionsModified_
 
bool pickColorsModified_
 
Color defaultColor_
 the default values will be used when the specific array is not present
 
Normal defaultNormal_
 
Pointsize defaultPointsize_
 
DrawModes::DrawMode splatsDrawMode_
 
DrawModes::DrawMode dotsDrawMode_
 
DrawModes::DrawMode pointsDrawMode_
 
unsigned int pickingBaseIndex_
 
DrawModes::DrawMode pickDrawMode_
 
GLuint vboGlId_
 
unsigned int vboNumSplats_
 
unsigned char * vboData_
 
unsigned int vboStride_
 
int vboPositionsOffset_
 offsets relative to vboData_ or -1 if not present in VBO
 
int vboColorsOffset_
 
int vboNormalsOffset_
 
int vboPointsizesOffset_
 
int vboSelectionsOffset_
 
int vboPickColorsOffset_
 
ACG::VertexDeclaration vboDecl_
 
float pointsizeScale_
 
bool backfaceCulling_
 
bool geometryShaderQuads_
 

Static Private Attributes

static const Position DEFAULT_POSITION
 
static const Index DEFAULT_INDEX
 
static const Viewlist DEFAULT_VIEWLIST
 
static const Selection DEFAULT_SELECTION
 

Detailed Description

This class is able to render a SplatCloud as splats, dots or points

Definition at line 89 of file SplatCloudNode.hh.


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