Developer Documentation
PlaneNode Class Reference
Inheritance diagram for PlaneNode:
ACG::SceneGraph::BaseNode

Public Types

using Plane = ACG::Geometry::Plane
 
- 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

 PlaneNode (Plane &_plane, BaseNode *_parent=0, std::string _name="<PlaneNode>")
 Construct a plane rendering node. More...
 
 ~PlaneNode ()
 destructor More...
 
 ACG_CLASSNAME (PlaneNode)
 static name of this class
 
ACG::SceneGraph::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 (ACG::GLState &_state, const ACG::SceneGraph::DrawModes::DrawMode &_drawMode) override
 draw Plane More...
 
void pick (ACG::GLState &_state, ACG::SceneGraph::PickTarget _target) override
 draw Plane for object picking More...
 
ACG::Vec3d position ()
 get center position of the plane More...
 
ACG::Vec3d normal ()
 get current normal More...
 
ACG::Vec3d xDirection ()
 local x direction (multiplied with width) More...
 
ACG::Vec3d yDirection ()
 local y direction (multiplied with height) More...
 
PlanegetPlane ()
 Get the currently rendered plane. More...
 
void setPlane (Plane plane)
 Set a new plane for rendering. More...
 
void getRenderObjects (ACG::IRenderer *_renderer, ACG::GLState &_state, const ACG::SceneGraph::DrawModes::DrawMode &_drawMode, const ACG::SceneGraph::Material *_mat) override
 Add the objects to the given renderer. More...
 
void update ()
 updates the plane before the next render call 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 Member Functions

void drawPlane (ACG::GLState &_state)
 
void drawManipulator (ACG::GLState &_state)
 
void drawManipulatorPick (ACG::GLState &_state)
 
void updateVBO ()
 create and update VBO More...
 
void addSphereAt (ACG::Vec3d _pos, ACG::IRenderer *_renderer, ACG::GLState &_state, ACG::RenderObject *_ro)
 

Private Attributes

Planeplane_
 
unsigned int vbo_
 VBO used to render the plane. More...
 
bool vboNeedsUpdate_
 
ACG::VertexDeclaration vertexDecl_
 
ACG::GLSpheresphere_
 

Detailed Description

Definition at line 74 of file PlaneNode.hh.

Member Typedef Documentation

◆ Plane

Definition at line 77 of file PlaneNode.hh.

Constructor & Destructor Documentation

◆ PlaneNode()

PlaneNode::PlaneNode ( Plane _plane,
BaseNode _parent = 0,
std::string  _name = "<PlaneNode>" 
)

Construct a plane rendering node.

Parameters
_parentThe parent node in the scenegraph
_nameThe name of the new node (visible in the scenegraph dialogs)
_planeA pointer to an existing plane

Definition at line 60 of file PlaneNode.cc.

◆ ~PlaneNode()

PlaneNode::~PlaneNode ( )

destructor

Definition at line 76 of file PlaneNode.cc.

Member Function Documentation

◆ addSphereAt()

void PlaneNode::addSphereAt ( ACG::Vec3d  _pos,
ACG::IRenderer _renderer,
ACG::GLState _state,
ACG::RenderObject _ro 
)
private

Definition at line 443 of file PlaneNode.cc.

◆ availableDrawModes()

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

return available draw modes

Reimplemented from ACG::SceneGraph::BaseNode.

Definition at line 112 of file PlaneNode.cc.

◆ boundingBox()

void PlaneNode::boundingBox ( ACG::Vec3d _bbMin,
ACG::Vec3d _bbMax 
)
overridevirtual

update bounding box

Reimplemented from ACG::SceneGraph::BaseNode.

Definition at line 80 of file PlaneNode.cc.

◆ draw()

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

draw Plane

Reimplemented from ACG::SceneGraph::BaseNode.

Definition at line 194 of file PlaneNode.cc.

◆ drawPlane()

void PlaneNode::drawPlane ( ACG::GLState _state)
private

Definition at line 122 of file PlaneNode.cc.

◆ getPlane()

PlaneNode::Plane & PlaneNode::getPlane ( )

Get the currently rendered plane.

Definition at line 432 of file PlaneNode.cc.

◆ getRenderObjects()

void PlaneNode::getRenderObjects ( ACG::IRenderer _renderer,
ACG::GLState _state,
const ACG::SceneGraph::DrawModes::DrawMode _drawMode,
const ACG::SceneGraph::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

quads are not accepted here in opengl core. this has to be updated

quads are not accepted here in opengl core. this has to be updated

Reimplemented from ACG::SceneGraph::BaseNode.

Definition at line 537 of file PlaneNode.cc.

◆ normal()

ACG::Vec3d PlaneNode::normal ( )

get current normal

Definition at line 420 of file PlaneNode.cc.

◆ pick()

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

draw Plane for object picking

Reimplemented from ACG::SceneGraph::BaseNode.

Definition at line 222 of file PlaneNode.cc.

◆ position()

ACG::Vec3d PlaneNode::position ( )

get center position of the plane

Definition at line 416 of file PlaneNode.cc.

◆ setPlane()

void PlaneNode::setPlane ( Plane  plane)

Set a new plane for rendering.

Definition at line 436 of file PlaneNode.cc.

◆ update()

void PlaneNode::update ( )

updates the plane before the next render call

Definition at line 465 of file PlaneNode.cc.

◆ updateVBO()

void PlaneNode::updateVBO ( )
private

create and update VBO

Definition at line 478 of file PlaneNode.cc.

◆ xDirection()

ACG::Vec3d PlaneNode::xDirection ( )

local x direction (multiplied with width)

Definition at line 424 of file PlaneNode.cc.

◆ yDirection()

ACG::Vec3d PlaneNode::yDirection ( )

local y direction (multiplied with height)

Definition at line 428 of file PlaneNode.cc.

Member Data Documentation

◆ plane_

Plane& PlaneNode::plane_
private

Definition at line 146 of file PlaneNode.hh.

◆ sphere_

ACG::GLSphere* PlaneNode::sphere_
private

Definition at line 155 of file PlaneNode.hh.

◆ vbo_

unsigned int PlaneNode::vbo_
private

VBO used to render the plane.

Definition at line 149 of file PlaneNode.hh.

◆ vboNeedsUpdate_

bool PlaneNode::vboNeedsUpdate_
private

Definition at line 151 of file PlaneNode.hh.

◆ vertexDecl_

ACG::VertexDeclaration PlaneNode::vertexDecl_
private

Definition at line 153 of file PlaneNode.hh.


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