Developer Documentation
|
#include <ACG/Scenegraph/GlutPrimitiveNode.hh>
Classes | |
struct | Primitive |
Public Types | |
enum | GlutPrimitiveType { CONE =0 , CUBE , DODECAHEDRON , ICOSAHEDRON , OCTAHEDRON , SPHERE , TETRAHEDRON , TORUS } |
Lists all available primivites. More... | |
![]() | |
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 | |
GlutPrimitiveNode (BaseNode *_parent=0, const std::string &_name="<GlutPrimitive>") | |
GlutPrimitiveNode (GlutPrimitiveType _type, BaseNode *_parent=0, const std::string &_name="<GlutPrimitive>") | |
virtual | ~GlutPrimitiveNode () |
destructor More... | |
size_t | add_primitive (GlutPrimitiveType _type, Vec3d _pos, Vec3d _axis, ACG::Vec4f _color) |
void | clear () |
void | set_position (const Vec3d &_p, int _idx=0) |
set position More... | |
const Vec3d | get_position (int _idx=0) const |
get position More... | |
Primitive & | get_primitive (int _idx) |
get a primitive More... | |
void | set_size (double _s, int _idx=0) |
set size More... | |
double | get_size (int _idx=0) const |
get size More... | |
ACG_CLASSNAME (GlutPrimitiveNode) | |
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 |
drawing the primitive More... | |
void | draw_obj (GLState &_state, size_t _idx) const |
void | pick (GLState &_state, PickTarget _target) override |
picking More... | |
void | setColorInternal (bool _set) |
Disable internal color processing. More... | |
void | getRenderObjects (IRenderer *_renderer, GLState &_state, const DrawModes::DrawMode &_drawMode, const Material *_mat) override |
Add the objects to the given renderer. More... | |
![]() | |
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 Attributes | |
std::vector< Primitive > | primitives_ |
bool | setColor_ |
ACG::GLSphere * | sphere_ |
ACG::GLCone * | cone_ |
This class is able to render all glut primitives (listed in GlutPrimitiveType).
Definition at line 82 of file GlutPrimitiveNode.hh.
Lists all available primivites.
Definition at line 88 of file GlutPrimitiveNode.hh.
ACG::SceneGraph::GlutPrimitiveNode::GlutPrimitiveNode | ( | BaseNode * | _parent = 0 , |
const std::string & | _name = "<GlutPrimitive>" |
||
) |
Definition at line 69 of file GlutPrimitiveNode.cc.
ACG::SceneGraph::GlutPrimitiveNode::GlutPrimitiveNode | ( | GlutPrimitiveType | _type, |
BaseNode * | _parent = 0 , |
||
const std::string & | _name = "<GlutPrimitive>" |
||
) |
Definition at line 83 of file GlutPrimitiveNode.cc.
|
inlinevirtual |
destructor
Definition at line 181 of file GlutPrimitiveNode.hh.
size_t ACG::SceneGraph::GlutPrimitiveNode::add_primitive | ( | GlutPrimitiveType | _type, |
Vec3d | _pos, | ||
Vec3d | _axis, | ||
ACG::Vec4f | _color | ||
) |
Adds a primitive and returns its index.
Definition at line 296 of file GlutPrimitiveNode.cc.
|
overridevirtual |
return available draw modes
Reimplemented from ACG::SceneGraph::BaseNode.
Definition at line 158 of file GlutPrimitiveNode.cc.
|
overridevirtual |
update bounding box
Reimplemented from ACG::SceneGraph::BaseNode.
Definition at line 144 of file GlutPrimitiveNode.cc.
|
inline |
Definition at line 195 of file GlutPrimitiveNode.hh.
|
overridevirtual |
drawing the primitive
Reimplemented from ACG::SceneGraph::BaseNode.
Definition at line 172 of file GlutPrimitiveNode.cc.
void ACG::SceneGraph::GlutPrimitiveNode::draw_obj | ( | GLState & | _state, |
size_t | _idx | ||
) | const |
Definition at line 307 of file GlutPrimitiveNode.cc.
const Vec3d ACG::SceneGraph::GlutPrimitiveNode::get_position | ( | int | _idx = 0 | ) | const |
get position
Definition at line 111 of file GlutPrimitiveNode.cc.
|
inline |
get a primitive
Definition at line 203 of file GlutPrimitiveNode.hh.
double ACG::SceneGraph::GlutPrimitiveNode::get_size | ( | int | _idx = 0 | ) | const |
get size
Definition at line 133 of file GlutPrimitiveNode.cc.
|
overridevirtual |
Add the objects to the given renderer.
_renderer | The renderer which will be used. Add your geometry into this class |
_state | The current GL State when this object is called |
_drawMode | The active draw mode |
_mat | Current material |
Reimplemented from ACG::SceneGraph::BaseNode.
Definition at line 414 of file GlutPrimitiveNode.cc.
|
overridevirtual |
picking
Reimplemented from ACG::SceneGraph::BaseNode.
Definition at line 380 of file GlutPrimitiveNode.cc.
void ACG::SceneGraph::GlutPrimitiveNode::set_position | ( | const Vec3d & | _p, |
int | _idx = 0 |
||
) |
set position
Definition at line 101 of file GlutPrimitiveNode.cc.
void ACG::SceneGraph::GlutPrimitiveNode::set_size | ( | double | _s, |
int | _idx = 0 |
||
) |
set size
Definition at line 123 of file GlutPrimitiveNode.cc.
|
inline |
Disable internal color processing.
Disables the internal color processing of the primitives. If disabled, a Materialnodes settings will apply here.
Definition at line 230 of file GlutPrimitiveNode.hh.
|
private |
Definition at line 249 of file GlutPrimitiveNode.hh.
|
private |
Definition at line 243 of file GlutPrimitiveNode.hh.
|
private |
Definition at line 245 of file GlutPrimitiveNode.hh.
|
private |
Definition at line 248 of file GlutPrimitiveNode.hh.