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 |
![]() | |
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 | |
SplatCloudNode (const SplatCloud &_splatCloud, BaseNode *_parent=0, std::string _name="<SplatCloudNode>") | |
constructor More... | |
~SplatCloudNode () | |
destructor More... | |
ACG_CLASSNAME (SplatCloudNode) | |
DrawModes::DrawMode | availableDrawModes () const override |
return available draw modes More... | |
void | boundingBox (ACG::Vec3d &_bbMin, ACG::Vec3d &_bbMax) override |
update bounding box More... | |
void | draw (GLState &_state, const DrawModes::DrawMode &_drawMode) override |
draw the SplatCloud More... | |
void | getRenderObjects (IRenderer *_renderer, GLState &_state, const DrawModes::DrawMode &_drawMode, const Material *_mat) override |
create render objects More... | |
void | pick (GLState &_state, PickTarget _target) override |
picking More... | |
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 More... | |
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 |
![]() | |
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) |
BaseNode * | find (const std::string &_name) |
BaseNode * | parent () |
Get the nodes parent node. More... | |
const BaseNode * | parent () 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::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 More... | |
bool | vboStructureModified () const |
returns true iff the internal block structure of the VBO has to be changed More... | |
void | createVBO () |
void | destroyVBO () |
void | rebuildVBO (GLState &_state) |
void | rebuildVBOPositions () |
void | rebuildVBOColors () |
void | rebuildVBONormals () |
void | rebuildVBOPointsizes () |
void | rebuildVBOSelections () |
void | rebuildVBOPickColors (GLState &_state) |
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.
Definition at line 96 of file SplatCloudNode.hh.
typedef SplatCloud::Index ACG::SceneGraph::SplatCloudNode::Index |
Definition at line 99 of file SplatCloudNode.hh.
Definition at line 97 of file SplatCloudNode.hh.
typedef SplatCloud::Pointsize ACG::SceneGraph::SplatCloudNode::Pointsize |
Definition at line 98 of file SplatCloudNode.hh.
Definition at line 95 of file SplatCloudNode.hh.
typedef SplatCloud::Selection ACG::SceneGraph::SplatCloudNode::Selection |
Definition at line 101 of file SplatCloudNode.hh.
typedef SplatCloud::Viewlist ACG::SceneGraph::SplatCloudNode::Viewlist |
Definition at line 100 of file SplatCloudNode.hh.
ACG::SceneGraph::SplatCloudNode::SplatCloudNode | ( | const SplatCloud & | _splatCloud, |
BaseNode * | _parent = 0 , |
||
std::string | _name = "<SplatCloudNode>" |
||
) |
constructor
Definition at line 83 of file SplatCloudNode.cc.
ACG::SceneGraph::SplatCloudNode::~SplatCloudNode | ( | ) |
destructor
Definition at line 122 of file SplatCloudNode.cc.
|
inlineoverridevirtual |
return available draw modes
Reimplemented from ACG::SceneGraph::BaseNode.
Definition at line 116 of file SplatCloudNode.hh.
|
overridevirtual |
update bounding box
Reimplemented from ACG::SceneGraph::BaseNode.
Definition at line 131 of file SplatCloudNode.cc.
|
private |
Definition at line 599 of file SplatCloudNode.cc.
|
inline |
Definition at line 162 of file SplatCloudNode.hh.
|
inline |
Definition at line 163 of file SplatCloudNode.hh.
|
inline |
Definition at line 164 of file SplatCloudNode.hh.
|
private |
Definition at line 616 of file SplatCloudNode.cc.
|
overridevirtual |
draw the SplatCloud
Reimplemented from ACG::SceneGraph::BaseNode.
Definition at line 158 of file SplatCloudNode.cc.
|
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.
|
inline |
Definition at line 183 of file SplatCloudNode.hh.
|
inline |
Definition at line 168 of file SplatCloudNode.hh.
|
inline |
Definition at line 184 of file SplatCloudNode.hh.
|
inline |
Definition at line 171 of file SplatCloudNode.hh.
|
inline |
Definition at line 169 of file SplatCloudNode.hh.
|
inline |
Definition at line 170 of file SplatCloudNode.hh.
|
inline |
Definition at line 182 of file SplatCloudNode.hh.
|
inline |
if the data array exists, the entry with the given index is returned, otherwise the default value is returned
Definition at line 167 of file SplatCloudNode.hh.
|
overridevirtual |
create render objects
Reimplemented from ACG::SceneGraph::BaseNode.
Definition at line 320 of file SplatCloudNode.cc.
|
inline |
Definition at line 173 of file SplatCloudNode.hh.
|
inline |
Definition at line 172 of file SplatCloudNode.hh.
|
inline |
Definition at line 146 of file SplatCloudNode.hh.
|
inline |
Definition at line 140 of file SplatCloudNode.hh.
|
inline |
Definition at line 141 of file SplatCloudNode.hh.
|
inline |
Definition at line 144 of file SplatCloudNode.hh.
|
inline |
Definition at line 142 of file SplatCloudNode.hh.
|
inline |
Definition at line 139 of file SplatCloudNode.hh.
|
inline |
Definition at line 143 of file SplatCloudNode.hh.
|
overridevirtual |
picking
Reimplemented from ACG::SceneGraph::BaseNode.
Definition at line 568 of file SplatCloudNode.cc.
|
private |
Definition at line 632 of file SplatCloudNode.cc.
|
private |
Definition at line 812 of file SplatCloudNode.cc.
|
private |
Definition at line 841 of file SplatCloudNode.cc.
|
private |
Definition at line 923 of file SplatCloudNode.cc.
|
private |
Definition at line 870 of file SplatCloudNode.cc.
|
private |
Definition at line 782 of file SplatCloudNode.cc.
|
private |
Definition at line 897 of file SplatCloudNode.cc.
|
inline |
Definition at line 179 of file SplatCloudNode.hh.
|
inline |
Definition at line 158 of file SplatCloudNode.hh.
|
inline |
Definition at line 159 of file SplatCloudNode.hh.
|
inline |
Definition at line 160 of file SplatCloudNode.hh.
|
inline |
Definition at line 180 of file SplatCloudNode.hh.
|
inline |
Definition at line 178 of file SplatCloudNode.hh.
|
inline |
Definition at line 135 of file SplatCloudNode.hh.
|
inlineprivate |
return true iff any of the data values in the VBO has to be changed
Definition at line 207 of file SplatCloudNode.hh.
|
inlineprivate |
returns true iff the internal block structure of the VBO has to be changed
Definition at line 255 of file SplatCloudNode.hh.
|
private |
Definition at line 284 of file SplatCloudNode.hh.
|
private |
Definition at line 200 of file SplatCloudNode.hh.
|
staticprivate |
Definition at line 277 of file SplatCloudNode.hh.
|
staticprivate |
Definition at line 276 of file SplatCloudNode.hh.
|
staticprivate |
Definition at line 279 of file SplatCloudNode.hh.
|
staticprivate |
Definition at line 278 of file SplatCloudNode.hh.
|
private |
the default values will be used when the specific array is not present
Definition at line 220 of file SplatCloudNode.hh.
|
private |
Definition at line 221 of file SplatCloudNode.hh.
|
private |
Definition at line 222 of file SplatCloudNode.hh.
|
private |
Definition at line 227 of file SplatCloudNode.hh.
|
private |
Definition at line 285 of file SplatCloudNode.hh.
|
private |
Definition at line 201 of file SplatCloudNode.hh.
|
private |
Definition at line 204 of file SplatCloudNode.hh.
|
private |
Definition at line 235 of file SplatCloudNode.hh.
|
private |
Definition at line 232 of file SplatCloudNode.hh.
|
private |
Definition at line 228 of file SplatCloudNode.hh.
|
private |
Definition at line 283 of file SplatCloudNode.hh.
|
private |
Definition at line 202 of file SplatCloudNode.hh.
|
private |
marks if parts of the data has been modified
Definition at line 199 of file SplatCloudNode.hh.
|
private |
Definition at line 203 of file SplatCloudNode.hh.
|
private |
reference to class containing all the data
Definition at line 194 of file SplatCloudNode.hh.
|
private |
Definition at line 226 of file SplatCloudNode.hh.
|
private |
Definition at line 246 of file SplatCloudNode.hh.
|
private |
Definition at line 241 of file SplatCloudNode.hh.
|
private |
Definition at line 252 of file SplatCloudNode.hh.
|
private |
Definition at line 239 of file SplatCloudNode.hh.
|
private |
Definition at line 247 of file SplatCloudNode.hh.
|
private |
Definition at line 240 of file SplatCloudNode.hh.
|
private |
Definition at line 250 of file SplatCloudNode.hh.
|
private |
Definition at line 248 of file SplatCloudNode.hh.
|
private |
offsets relative to vboData_ or -1 if not present in VBO
Definition at line 245 of file SplatCloudNode.hh.
|
private |
Definition at line 249 of file SplatCloudNode.hh.
|
private |
Definition at line 242 of file SplatCloudNode.hh.