Developer Documentation
ACG::SceneGraph::GlutPrimitiveNode Class Reference

#include <ACG/Scenegraph/GlutPrimitiveNode.hh>

Inheritance diagram for ACG::SceneGraph::GlutPrimitiveNode:
ACG::SceneGraph::BaseNode

Classes

struct  Primitive
 

Public Types

enum  GlutPrimitiveType {
  CONE =0 , CUBE , DODECAHEDRON , ICOSAHEDRON ,
  OCTAHEDRON , SPHERE , TETRAHEDRON , TORUS
}
 Lists all available primivites. More...
 
- 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

 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...
 
Primitiveget_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...
 
- 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 Attributes

std::vector< Primitiveprimitives_
 
bool setColor_
 
ACG::GLSpheresphere_
 
ACG::GLConecone_
 

Detailed Description

This class is able to render all glut primitives (listed in GlutPrimitiveType).

Definition at line 82 of file GlutPrimitiveNode.hh.

Member Enumeration Documentation

◆ GlutPrimitiveType

Lists all available primivites.

Definition at line 88 of file GlutPrimitiveNode.hh.

Constructor & Destructor Documentation

◆ GlutPrimitiveNode() [1/2]

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

Definition at line 69 of file GlutPrimitiveNode.cc.

◆ GlutPrimitiveNode() [2/2]

ACG::SceneGraph::GlutPrimitiveNode::GlutPrimitiveNode ( GlutPrimitiveType  _type,
BaseNode _parent = 0,
const std::string &  _name = "<GlutPrimitive>" 
)

Definition at line 83 of file GlutPrimitiveNode.cc.

◆ ~GlutPrimitiveNode()

virtual ACG::SceneGraph::GlutPrimitiveNode::~GlutPrimitiveNode ( )
inlinevirtual

destructor

Definition at line 181 of file GlutPrimitiveNode.hh.

Member Function Documentation

◆ add_primitive()

size_t ACG::SceneGraph::GlutPrimitiveNode::add_primitive ( GlutPrimitiveType  _type,
Vec3d  _pos,
Vec3d  _axis,
ACG::Vec4f  _color 
)

Adds a primitive and returns its index.

Returns
the index of the new primitive.

Definition at line 296 of file GlutPrimitiveNode.cc.

◆ availableDrawModes()

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

return available draw modes

Reimplemented from ACG::SceneGraph::BaseNode.

Definition at line 158 of file GlutPrimitiveNode.cc.

◆ boundingBox()

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

update bounding box

Reimplemented from ACG::SceneGraph::BaseNode.

Definition at line 144 of file GlutPrimitiveNode.cc.

◆ clear()

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

Definition at line 195 of file GlutPrimitiveNode.hh.

◆ draw()

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

drawing the primitive

Reimplemented from ACG::SceneGraph::BaseNode.

Definition at line 172 of file GlutPrimitiveNode.cc.

◆ draw_obj()

void ACG::SceneGraph::GlutPrimitiveNode::draw_obj ( GLState _state,
size_t  _idx 
) const

Definition at line 307 of file GlutPrimitiveNode.cc.

◆ get_position()

const Vec3d ACG::SceneGraph::GlutPrimitiveNode::get_position ( int  _idx = 0) const

get position

Definition at line 111 of file GlutPrimitiveNode.cc.

◆ get_primitive()

Primitive & ACG::SceneGraph::GlutPrimitiveNode::get_primitive ( int  _idx)
inline

get a primitive

Definition at line 203 of file GlutPrimitiveNode.hh.

◆ get_size()

double ACG::SceneGraph::GlutPrimitiveNode::get_size ( int  _idx = 0) const

get size

Definition at line 133 of file GlutPrimitiveNode.cc.

◆ getRenderObjects()

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

Add the objects to the given renderer.

Parameters
_rendererThe renderer which will be used. Add your geometry into this class
_stateThe current GL State when this object is called
_drawModeThe active draw mode
_matCurrent material

Reimplemented from ACG::SceneGraph::BaseNode.

Definition at line 414 of file GlutPrimitiveNode.cc.

◆ pick()

void ACG::SceneGraph::GlutPrimitiveNode::pick ( GLState _state,
PickTarget  _target 
)
overridevirtual

picking

Reimplemented from ACG::SceneGraph::BaseNode.

Definition at line 380 of file GlutPrimitiveNode.cc.

◆ set_position()

void ACG::SceneGraph::GlutPrimitiveNode::set_position ( const Vec3d _p,
int  _idx = 0 
)

set position

Definition at line 101 of file GlutPrimitiveNode.cc.

◆ set_size()

void ACG::SceneGraph::GlutPrimitiveNode::set_size ( double  _s,
int  _idx = 0 
)

set size

Definition at line 123 of file GlutPrimitiveNode.cc.

◆ setColorInternal()

void ACG::SceneGraph::GlutPrimitiveNode::setColorInternal ( bool  _set)
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.

Member Data Documentation

◆ cone_

ACG::GLCone* ACG::SceneGraph::GlutPrimitiveNode::cone_
private

Definition at line 249 of file GlutPrimitiveNode.hh.

◆ primitives_

std::vector<Primitive> ACG::SceneGraph::GlutPrimitiveNode::primitives_
private

Definition at line 243 of file GlutPrimitiveNode.hh.

◆ setColor_

bool ACG::SceneGraph::GlutPrimitiveNode::setColor_
private

Definition at line 245 of file GlutPrimitiveNode.hh.

◆ sphere_

ACG::GLSphere* ACG::SceneGraph::GlutPrimitiveNode::sphere_
private

Definition at line 248 of file GlutPrimitiveNode.hh.


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