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

Public Types

enum  DrawStyle { DS_3D = 1, DS_2D = 2 }
 
enum  ColorMode { CM_Axis = 1, CM_Sign = 2 }
 
typedef PrincipalComponent PrincipalComponentT
 
- Public Types inherited from ACG::SceneGraph::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
 
typedef std::vector< BaseNode * >::iterator ChildIter
 allows to iterate over children
 
typedef std::vector< BaseNode * >::const_reverse_iterator ConstChildRIter
 allows to reverse iterate over children
 
typedef std::vector< BaseNode * >::reverse_iterator ChildRIter
 allows to reverse iterate over children
 
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.
 
typedef unsigned int MultipassBitMask
 Multipass pass bit mask type.
 

Public Member Functions

 PrincipalAxisNode (BaseNode *_parent=0, const std::string &_name="<PrincipalAxis>")
 Default constructor.
 
virtual ~PrincipalAxisNode ()
 destructor
 
void show_options_dialog ()
 
void set_draw_style (DrawStyle _ds)
 
void set_color_mode (ColorMode _cm)
 
void show_tensor_component (unsigned int _i, unsigned char _show)
 
size_t size ()
 
void resize (size_t _n)
 
void clear ()
 
void enable (size_t _i)
 
void disable (size_t _i)
 
void disable_all ()
 
template<class VectorT >
void set_vector (unsigned int _i, const Vec3d _p, const VectorT &_v)
 
template<class MatrixT >
void set_matrix (unsigned int _i, const Vec3d _p, const MatrixT &_m)
 
void set (size_t _i, const PrincipalComponent &_pc)
 
void get (size_t _i, PrincipalComponent &_pc)
 
void add (const PrincipalComponent &_pc, bool _enable=true)
 
void set_auto_range (bool _b)
 
void set_min_abs_value (double _v)
 
void set_max_abs_value (double _v)
 
void set_min_draw_radius (double _v)
 
void set_max_draw_radius (double _v)
 
double get_min_draw_radius () const
 
double get_max_draw_radius () const
 
double get_min_spacing () const
 
bool is_default_radius () const
 Indicates whether the min/max draw radius has been changed from its default setting.
 
void auto_update_range ()
 
void update_bounding_box ()
 
 ACG_CLASSNAME (PrincipalAxisNode)
 
DrawModes::DrawMode availableDrawModes () const
 return available draw modes
 
void boundingBox (Vec3d &_bbMin, Vec3d &_bbMax)
 update bounding box
 
void draw (GLState &_state, const DrawModes::DrawMode &_drawMode)
 drawing the primitive
 
void draw_principal_component (const PrincipalComponent &_pc)
 
void draw_arrow (const Vec3d &_axis, double _r)
 
void draw_line (const Vec3d &_axis, double _w)
 
void pick (GLState &_state, PickTarget _target)
 picking
 
void set_draw_quality (double _q)
 
void set_cylinder_radius_scale (double _s)
 
void set_axes_colors (const Vec4f colors[3])
 
void get_axes_colors (Vec4f out_colors[3]) const
 
void getRenderObjects (IRenderer *_renderer, GLState &_state, const DrawModes::DrawMode &_drawMode, const ACG::SceneGraph::Material *_mat)
 Overriding BaseNode::getRenderObjects.
 
GLMatrixd axisTransform (const PrincipalComponent &_pc, int _axis, double *_outSize=0) const
 world transform of an axis (orientation and translation)
 
Vec3d axisScaled (const PrincipalComponent &_pc, int _axis) const
 scaled axis
 
void emitIndividualRenderobjects (IRenderer *_renderer, GLState &_state, const DrawModes::DrawMode &_drawMode, const ACG::SceneGraph::Material *_mat)
 emit individual objects for each axis for each principal component (slow if tensor count high)
 
void updateVBO ()
 
- Public Member Functions inherited from ACG::SceneGraph::ACG::SceneGraph::BaseNode
 BaseNode (BaseNode *_parent=0, std::string _name="<unknown>")
 Default constructor.
 
 BaseNode (BaseNode *_parent, BaseNode *_child, std::string _name="<unknown>")
 Put this node between _parent and _child.
 
virtual ~BaseNode ()
 Destructor.
 
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 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)
 
void setDirty (bool _dirty=true)
 mark node for redrawn
 
bool isDirty () const
 Check if node should be redrawn.
 
ChildIter childrenBegin ()
 Returns: begin-iterator of children.
 
ConstChildIter childrenBegin () const
 Same but cont.
 
ChildIter childrenEnd ()
 Returns: end-iterator of children.
 
ConstChildIter childrenEnd () const
 Same but const.
 
ChildRIter childrenRBegin ()
 Returns: reverse begin-iterator of children.
 
ConstChildRIter childrenRBegin () const
 Same but const.
 
ChildRIter childrenREnd ()
 Returns: reverse end-iterator of children.
 
ConstChildRIter childrenREnd () const
 Same but const.
 
void push_back (BaseNode *_node)
 Insert _node at the end of the list of children.
 
void remove (ChildIter _pos)
 
size_t nChildren () const
 number of children
 
ChildIter find (BaseNode *_node)
 
BaseNodefind (const std::string &_name)
 
BaseNodeparent ()
 Get the nodes parent node.
 
const BaseNodeparent () const
 Get the nodes parent node.
 
void set_parent (BaseNode *_parent)
 Set the parent of this node. More...
 
StatusMode status () const
 Get node's status.
 
void set_status (StatusMode _s)
 Set the status of this node.
 
void hide ()
 Hide Node: set status to HideNode.
 
void show ()
 Show node: set status to Active.
 
bool visible ()
 Is node visible (status == Active)?
 
bool hidden ()
 Is node not visible (status != Active)?
 
std::string name () const
 Returns: name of node (needs not be unique)
 
void name (const std::string &_name)
 rename a node
 
unsigned int id () const
 
DrawModes::DrawMode drawMode () const
 Return the own draw modes of this node.
 
void drawMode (DrawModes::DrawMode _drawMode)
 
unsigned int traverseMode () const
 Return how the node should be traversed.
 
void setTraverseMode (unsigned int _mode)
 Set traverse mode for node.
 
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 createVBO ()
 creates the vbo only if update was requested
 
void diagonalize (const double(&A)[3][3], double(&Q)[3][3], double(&D)[3][3])
 

Private Attributes

std::vector< PrincipalComponentpc_
 
std::vector< bool > draw_pc_
 
bool auto_range_
 
double max_abs_value_
 
double min_abs_value_
 
double max_draw_radius_
 
double min_draw_radius_
 
bool default_radius_
 Indicates whether the min/max draw radius has been changed from its default setting.
 
Vec3d bbMin_
 
Vec3d bbMax_
 
int slices_
 
double cylinder_radius_scale_
 
double min_spacing_
 
DrawStyle draw_style_
 
ColorMode color_mode_
 
unsigned char show_tensor_component_ [3]
 
const float cone_height_factor_
 
GLCylinder cylinder_
 
GLCone cone_
 
GeometryBuffer lineBuffer_
 
VertexDeclaration lineDecl_
 
VertexDeclaration lineDeclInstanced_
 
GeometryBuffer lineInstanceBuffer_
 
bool invalidateInstanceData_
 
VertexDeclaration cylinderDeclInstanced_
 
int supportsInstancing_
 
GLfloat axes_colors [3][4]
 
unsigned int vbo_
 
ACG::VertexDeclaration vertexDecl_
 
bool updateVBO_
 
std::string nodeName_
 

Friends

class ACG::QtPrincipalAxisDialog
 

Detailed Description

Definition at line 141 of file PrincipalAxisNode.hh.


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