Developer Documentation
ACG::SceneGraph::CameraNode Class Reference

#include <ACG/Scenegraph/CameraNode.hh>

Inheritance diagram for ACG::SceneGraph::CameraNode:
ACG::SceneGraph::BaseNode

Public Member Functions

 CameraNode (BaseNode *_parent=0, std::string _name="<CameraVis>")
 Default constructor. More...
 
virtual ~CameraNode ()
 Destructor. More...
 
 ACG_CLASSNAME (CameraNode)
 
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 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 setModelView (ACG::GLMatrixd _modelView)
 set model view matrix More...
 
const ACG::GLMatrixdmodelview () const
 Returns the modelview matrix. More...
 
void setProjection (ACG::GLMatrixd _projection)
 Set projection Matrix ( used to calculate frustum ... ) More...
 
const ACG::GLMatrixdprojection () const
 Returns the projection matrix. More...
 
void setSize (int _w, int _h)
 Set viewport size ( This will be used to compute the aspect ratio ) More...
 
void setEncodedView (QString _encodedView)
 Return encoded view string. More...
 
void setFarPlane (double _far)
 Set distance to far plane ( e.g. scene radius ) More...
 
void setNearPlane (double _near)
 Set distance to near plane. More...
 
QString getEncodedView ()
 Return encoded view string. More...
 
void showFrustum (bool _showFrustum)
 Set if viewing frustum should be shown or not. More...
 
bool showFrustum ()
 Returns true if camera renders its whole frustum. 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 updateVBO ()
 
void updateBoundingBoxes ()
 
void updateFrustumWS ()
 

Private Attributes

OpenMesh::Vec3d bbmin_
 
OpenMesh::Vec3d bbmax_
 
ACG::GLMatrixd modelView_
 
ACG::GLMatrixd modelViewInv_
 
ACG::GLMatrixd projection_
 
GLCylindercylinder_
 
GLConecone_
 
float axis_length_
 
GeometryBuffer vbo_
 
IndexBuffer ibo_
 
VertexDeclaration vdecl_
 
bool update_vbo_
 
std::vector< Vec4fvboData_
 
int offsetTris_
 
int offsetLines_
 
int offsetFront_
 
QString encodedView_
 
bool showFrustum_
 

Additional Inherited Members

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

Detailed Description

This class is able to render spheres colorcoding the vertex CameraVis

Definition at line 90 of file CameraNode.hh.

Constructor & Destructor Documentation

◆ CameraNode()

ACG::SceneGraph::CameraNode::CameraNode ( BaseNode _parent = 0,
std::string  _name = "<CameraVis>" 
)

Default constructor.

Definition at line 78 of file CameraNode.cc.

◆ ~CameraNode()

ACG::SceneGraph::CameraNode::~CameraNode ( )
virtual

Destructor.

Definition at line 102 of file CameraNode.cc.

Member Function Documentation

◆ availableDrawModes()

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

return available draw modes

Reimplemented from ACG::SceneGraph::BaseNode.

Definition at line 117 of file CameraNode.cc.

◆ boundingBox()

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

update bounding box

Reimplemented from ACG::SceneGraph::BaseNode.

Definition at line 110 of file CameraNode.cc.

◆ draw()

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

drawing

Reimplemented from ACG::SceneGraph::BaseNode.

Definition at line 127 of file CameraNode.cc.

◆ getEncodedView()

QString ACG::SceneGraph::CameraNode::getEncodedView ( )
inline

Return encoded view string.

Definition at line 145 of file CameraNode.hh.

◆ getRenderObjects()

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

create render objects

Reimplemented from ACG::SceneGraph::BaseNode.

Definition at line 260 of file CameraNode.cc.

◆ modelview()

const ACG::GLMatrixd & ACG::SceneGraph::CameraNode::modelview ( ) const
inline

Returns the modelview matrix.

Definition at line 121 of file CameraNode.hh.

◆ pick()

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

picking

Reimplemented from ACG::SceneGraph::BaseNode.

Definition at line 398 of file CameraNode.cc.

◆ projection()

const ACG::GLMatrixd & ACG::SceneGraph::CameraNode::projection ( ) const
inline

Returns the projection matrix.

Definition at line 127 of file CameraNode.hh.

◆ setEncodedView()

void ACG::SceneGraph::CameraNode::setEncodedView ( QString  _encodedView)
inline

Return encoded view string.

Definition at line 134 of file CameraNode.hh.

◆ setFarPlane()

void ACG::SceneGraph::CameraNode::setFarPlane ( double  _far)
inline

Set distance to far plane ( e.g. scene radius )

Definition at line 138 of file CameraNode.hh.

◆ setModelView()

void ACG::SceneGraph::CameraNode::setModelView ( ACG::GLMatrixd  _modelView)
inline

set model view matrix

Definition at line 118 of file CameraNode.hh.

◆ setNearPlane()

void ACG::SceneGraph::CameraNode::setNearPlane ( double  _near)
inline

Set distance to near plane.

Definition at line 142 of file CameraNode.hh.

◆ setProjection()

void ACG::SceneGraph::CameraNode::setProjection ( ACG::GLMatrixd  _projection)
inline

Set projection Matrix ( used to calculate frustum ... )

Definition at line 124 of file CameraNode.hh.

◆ setSize()

void ACG::SceneGraph::CameraNode::setSize ( int  _w,
int  _h 
)
inline

Set viewport size ( This will be used to compute the aspect ratio )

Definition at line 131 of file CameraNode.hh.

◆ showFrustum() [1/2]

bool ACG::SceneGraph::CameraNode::showFrustum ( )
inline

Returns true if camera renders its whole frustum.

Definition at line 151 of file CameraNode.hh.

◆ showFrustum() [2/2]

void ACG::SceneGraph::CameraNode::showFrustum ( bool  _showFrustum)
inline

Set if viewing frustum should be shown or not.

Definition at line 148 of file CameraNode.hh.

◆ updateBoundingBoxes()

void ACG::SceneGraph::CameraNode::updateBoundingBoxes ( )
private

Definition at line 660 of file CameraNode.cc.

◆ updateFrustumWS()

void ACG::SceneGraph::CameraNode::updateFrustumWS ( )
private

Definition at line 682 of file CameraNode.cc.

◆ updateVBO()

void ACG::SceneGraph::CameraNode::updateVBO ( )
private

Definition at line 606 of file CameraNode.cc.

Member Data Documentation

◆ axis_length_

float ACG::SceneGraph::CameraNode::axis_length_
private

Definition at line 172 of file CameraNode.hh.

◆ bbmax_

OpenMesh::Vec3d ACG::SceneGraph::CameraNode::bbmax_
private

Definition at line 164 of file CameraNode.hh.

◆ bbmin_

OpenMesh::Vec3d ACG::SceneGraph::CameraNode::bbmin_
private

Definition at line 163 of file CameraNode.hh.

◆ cone_

GLCone* ACG::SceneGraph::CameraNode::cone_
private

Definition at line 171 of file CameraNode.hh.

◆ cylinder_

GLCylinder* ACG::SceneGraph::CameraNode::cylinder_
private

Definition at line 170 of file CameraNode.hh.

◆ encodedView_

QString ACG::SceneGraph::CameraNode::encodedView_
private

Definition at line 183 of file CameraNode.hh.

◆ ibo_

IndexBuffer ACG::SceneGraph::CameraNode::ibo_
private

Definition at line 175 of file CameraNode.hh.

◆ modelView_

ACG::GLMatrixd ACG::SceneGraph::CameraNode::modelView_
private

Definition at line 166 of file CameraNode.hh.

◆ modelViewInv_

ACG::GLMatrixd ACG::SceneGraph::CameraNode::modelViewInv_
private

Definition at line 167 of file CameraNode.hh.

◆ offsetFront_

int ACG::SceneGraph::CameraNode::offsetFront_
private

Definition at line 181 of file CameraNode.hh.

◆ offsetLines_

int ACG::SceneGraph::CameraNode::offsetLines_
private

Definition at line 180 of file CameraNode.hh.

◆ offsetTris_

int ACG::SceneGraph::CameraNode::offsetTris_
private

Definition at line 179 of file CameraNode.hh.

◆ projection_

ACG::GLMatrixd ACG::SceneGraph::CameraNode::projection_
private

Definition at line 168 of file CameraNode.hh.

◆ showFrustum_

bool ACG::SceneGraph::CameraNode::showFrustum_
private

Definition at line 185 of file CameraNode.hh.

◆ update_vbo_

bool ACG::SceneGraph::CameraNode::update_vbo_
private

Definition at line 177 of file CameraNode.hh.

◆ vbo_

GeometryBuffer ACG::SceneGraph::CameraNode::vbo_
private

Definition at line 174 of file CameraNode.hh.

◆ vboData_

std::vector<Vec4f> ACG::SceneGraph::CameraNode::vboData_
private

Definition at line 178 of file CameraNode.hh.

◆ vdecl_

VertexDeclaration ACG::SceneGraph::CameraNode::vdecl_
private

Definition at line 176 of file CameraNode.hh.


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