Developer Documentation
|
#include <ObjectTypes/SplatCloud/SplatCloudNode.hh>
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::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 override |
return available draw modes | |
void | boundingBox (ACG::Vec3d &_bbMin, ACG::Vec3d &_bbMax) override |
update bounding box | |
void | draw (GLState &_state, const DrawModes::DrawMode &_drawMode) override |
draw the SplatCloud | |
void | getRenderObjects (IRenderer *_renderer, GLState &_state, const DrawModes::DrawMode &_drawMode, const Material *_mat) override |
create render objects | |
void | pick (GLState &_state, PickTarget _target) override |
picking | |
void | enterPick (GLState &_state, PickTarget _target, const DrawModes::DrawMode &_drawMode) override |
const SplatCloud & | splatCloud () 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 Color & | defaultColor () const |
const Normal & | defaultNormal () const |
const Pointsize & | defaultPointsize () const |
const Position & | getPosition (int _idx) const |
if the data array exists, the entry with the given index is returned, otherwise the default value is returned | |
const Color & | getColor (int _idx) const |
const Normal & | getNormal (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::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 | leave (GLState &, const DrawModes::DrawMode &) |
virtual void | leave (IRenderer *, GLState &_state, const DrawModes::DrawMode &_drawMode) |
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) |
BaseNode * | find (const std::string &_name) |
BaseNode * | parent () |
Get the nodes parent node. | |
const BaseNode * | parent () 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::UniformPool * | getRenderObjectUniformPool () |
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... | |
RenderObjectModifier * | getRenderObjectModifier () |
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 SplatCloud & | splatCloud_ |
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 |
This class is able to render a SplatCloud as splats, dots or points
Definition at line 89 of file SplatCloudNode.hh.
|
inlineoverridevirtual |
This function is called when traversing the scene graph during picking and arriving at this node. It can be used to store GL states that will be changed in order to restore then in the leavePick() function. Its default implementation will call the enter() function.
Reimplemented from ACG::SceneGraph::BaseNode.
Definition at line 131 of file SplatCloudNode.hh.