Developer Documentation
|
Public Types | |
enum | BSplineDrawMode { NORMAL = 0 , FANCY = 1 } |
enum | BSplineSelectionDrawMode { NONE = 0 , CONTROLPOINT = 1 , KNOTVECTOR = 2 } |
typedef BSplineCurve::Point | Point |
![]() | |
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 | |
BSplineCurveNodeT (BSplineCurve &_bsc, BaseNode *_parent=0, std::string _name="<BSplineCurveNode>") | |
Constructor. More... | |
~BSplineCurveNodeT () | |
Destructor. More... | |
BSplineCurve & | bsplineCurve () |
void | set_pick_radius (double _pr) |
ACG_CLASSNAME (BSplineCurveNodeT) | |
static name of this class | |
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 |
draw lines and normals More... | |
void | pick (GLState &_state, PickTarget _target) override |
picking More... | |
void | set_rendering_resolution (int _res) |
void | render_control_polygon (bool _render) |
bool | render_control_polygon () |
void | render_bspline_curve (bool _render) |
bool | render_bspline_curve () |
void | set_selection_draw_mode (BSplineSelectionDrawMode _mode) |
BSplineSelectionDrawMode | get_selection_draw_mode () const |
void | set_bspline_draw_mode (BSplineDrawMode _mode) |
void | updateGeometry () |
int & | pick_texture_res () |
Should be a power of 2. More... | |
void | cpSelectionTextureValid (bool _valid) |
void | knotSelectionTextureValid (bool _valid) |
![]() | |
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 Member Functions | |
void | pick_vertices (GLState &_state) |
void | pick_spline (GLState &_state, unsigned int _offset) |
void | draw_cylinder (const Point &_p0, const Point &_axis, double _r, GLState &_state) |
void | draw_sphere (const Point &_p0, double _r, GLState &_state, GLSphere *_sphere) |
BSplineCurveNodeT (const BSplineCurveNodeT &_rhs) | |
Copy constructor (not used) | |
BSplineCurveNodeT & | operator= (const BSplineCurveNodeT &_rhs) |
Assignment operator (not used) | |
void | render (GLState &_state, bool _fill, DrawModes::DrawMode _drawMode) |
void | getRenderObjects (IRenderer *_renderer, GLState &_state, const DrawModes::DrawMode &_drawMode, const Material *_mat) override |
Deferred draw call with shader based renderer. More... | |
void | drawControlPolygon (DrawModes::DrawMode _drawMode, GLState &_state) |
Renders the control polygon. More... | |
void | drawFancyControlPolygon (DrawModes::DrawMode _drawMode, GLState &_state) |
Renders the control polygon using cylinders and spheres to include shading effects. More... | |
void | drawCurve (GLState &_state) |
Renders the spline curve using gluNurbsRenderer. More... | |
void | drawFancyCurve (GLState &_state) |
Renders the spline curve by sampling the curve and rendering cylinders in between the samples. More... | |
void | drawTexturedCurve (GLState &_state, GLuint _texture_idx) |
renders a textured cuve using the gluNurbsRenderer to vilualize either the control point ot the knot vector selection More... | |
void | pick_init_texturing () |
generate index and setup texture parameters More... | |
void | pick_create_texture (GLState &_state) |
create texture image More... | |
void | updateControlPointSelectionTexture (GLState &_state) |
void | updateKnotVectorSelectionTexture (GLState &_state) |
void | selection_init_texturing (GLuint &_texture_idx) |
generate index and setup texture parameters for selection visualization More... | |
void | create_cp_selection_texture (GLState &_state) |
creates texture to put onto nurbs curve for visualization of control point selection More... | |
void | create_knot_selection_texture (GLState &_state) |
creates texture to put onto nurbs curve for visualization of knotvector selection More... | |
void | draw_textured_nurbs (GLState &_state) |
draw textured nurbs patch More... | |
ACG::Vec4f | generateHighlightColor (ACG::Vec4f _color) |
generates a color to highlight the curve from the given color More... | |
void | updateCurveBuffer (int _numVertices=50) |
update curve line buffer for drawing More... | |
void | updateControlPointBuffer () |
update control point buffer for visualization More... | |
void | updateControlPointSelBuffer () |
update control point selection buffer for visualization More... | |
void | updateControlEdgeSelBuffer () |
update control edge selection buffer for visualization More... | |
Definition at line 86 of file BSplineCurveNodeT.hh.
typedef BSplineCurve::Point ACG::SceneGraph::BSplineCurveNodeT< BSplineCurve >::Point |
Definition at line 91 of file BSplineCurveNodeT.hh.
enum ACG::SceneGraph::BSplineCurveNodeT::BSplineDrawMode |
Definition at line 148 of file BSplineCurveNodeT.hh.
enum ACG::SceneGraph::BSplineCurveNodeT::BSplineSelectionDrawMode |
Definition at line 153 of file BSplineCurveNodeT.hh.
|
inline |
Constructor.
Definition at line 94 of file BSplineCurveNodeT.hh.
|
inline |
Destructor.
Definition at line 135 of file BSplineCurveNodeT.hh.
|
overridevirtual |
return available draw modes
Reimplemented from ACG::SceneGraph::BaseNode.
Definition at line 91 of file BSplineCurveNodeT_impl.hh.
|
overridevirtual |
update bounding box
Reimplemented from ACG::SceneGraph::BaseNode.
Definition at line 77 of file BSplineCurveNodeT_impl.hh.
|
inline |
Definition at line 160 of file BSplineCurveNodeT.hh.
|
inline |
Definition at line 198 of file BSplineCurveNodeT.hh.
|
private |
creates texture to put onto nurbs curve for visualization of control point selection
Definition at line 823 of file BSplineCurveNodeT_impl.hh.
|
private |
creates texture to put onto nurbs curve for visualization of knotvector selection
Definition at line 897 of file BSplineCurveNodeT_impl.hh.
|
overridevirtual |
draw lines and normals
Reimplemented from ACG::SceneGraph::BaseNode.
Definition at line 116 of file BSplineCurveNodeT_impl.hh.
|
private |
Definition at line 743 of file BSplineCurveNodeT_impl.hh.
|
private |
Definition at line 727 of file BSplineCurveNodeT_impl.hh.
|
private |
draw textured nurbs patch
Definition at line 1062 of file BSplineCurveNodeT_impl.hh.
|
private |
Renders the control polygon.
Definition at line 368 of file BSplineCurveNodeT_impl.hh.
|
private |
Renders the spline curve using gluNurbsRenderer.
Definition at line 312 of file BSplineCurveNodeT_impl.hh.
|
private |
Renders the control polygon using cylinders and spheres to include shading effects.
Definition at line 455 of file BSplineCurveNodeT_impl.hh.
|
private |
Renders the spline curve by sampling the curve and rendering cylinders in between the samples.
Definition at line 330 of file BSplineCurveNodeT_impl.hh.
|
private |
renders a textured cuve using the gluNurbsRenderer to vilualize either the control point ot the knot vector selection
Definition at line 533 of file BSplineCurveNodeT_impl.hh.
|
private |
generates a color to highlight the curve from the given color
Definition at line 349 of file BSplineCurveNodeT_impl.hh.
|
inline |
Definition at line 189 of file BSplineCurveNodeT.hh.
|
overrideprivatevirtual |
Deferred draw call with shader based renderer.
The renderer calls this function to collect the geometry that should be rendered from the nodes.
Add any renderable geometry to the renderer via _renderer->addRenderObject()
The material is fetched from the last active material node and may be used to setup Renderobjects, but may as well be ignored.
_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 167 of file BSplineCurveNodeT_impl.hh.
|
inline |
Definition at line 199 of file BSplineCurveNodeT.hh.
|
overridevirtual |
picking
Reimplemented from ACG::SceneGraph::BaseNode.
Definition at line 610 of file BSplineCurveNodeT_impl.hh.
|
private |
create texture image
Definition at line 1002 of file BSplineCurveNodeT_impl.hh.
|
private |
generate index and setup texture parameters
spline curve picking
Definition at line 976 of file BSplineCurveNodeT_impl.hh.
|
private |
Definition at line 678 of file BSplineCurveNodeT_impl.hh.
|
inline |
Should be a power of 2.
Definition at line 196 of file BSplineCurveNodeT.hh.
|
private |
Definition at line 649 of file BSplineCurveNodeT_impl.hh.
|
private |
Definition at line 273 of file BSplineCurveNodeT_impl.hh.
|
inline |
Definition at line 185 of file BSplineCurveNodeT.hh.
|
inline |
Definition at line 184 of file BSplineCurveNodeT.hh.
|
inline |
Definition at line 182 of file BSplineCurveNodeT.hh.
|
inline |
Definition at line 181 of file BSplineCurveNodeT.hh.
|
private |
generate index and setup texture parameters for selection visualization
Definition at line 800 of file BSplineCurveNodeT_impl.hh.
|
inline |
Definition at line 191 of file BSplineCurveNodeT.hh.
|
inline |
Definition at line 162 of file BSplineCurveNodeT.hh.
|
inline |
Definition at line 179 of file BSplineCurveNodeT.hh.
|
inline |
Definition at line 187 of file BSplineCurveNodeT.hh.
|
private |
update control edge selection buffer for visualization
Definition at line 1212 of file BSplineCurveNodeT_impl.hh.
|
private |
update control point buffer for visualization
Definition at line 1132 of file BSplineCurveNodeT_impl.hh.
|
private |
update control point selection buffer for visualization
Definition at line 1166 of file BSplineCurveNodeT_impl.hh.
|
private |
Definition at line 775 of file BSplineCurveNodeT_impl.hh.
|
private |
update curve line buffer for drawing
Definition at line 1080 of file BSplineCurveNodeT_impl.hh.
void ACG::SceneGraph::BSplineCurveNodeT< BSplineCurve >::updateGeometry |
Definition at line 567 of file BSplineCurveNodeT_impl.hh.
|
private |
Definition at line 789 of file BSplineCurveNodeT_impl.hh.
|
private |
Definition at line 289 of file BSplineCurveNodeT.hh.
|
private |
Definition at line 291 of file BSplineCurveNodeT.hh.
|
private |
Definition at line 274 of file BSplineCurveNodeT.hh.
|
private |
Definition at line 334 of file BSplineCurveNodeT.hh.
|
private |
Definition at line 333 of file BSplineCurveNodeT.hh.
|
private |
Definition at line 330 of file BSplineCurveNodeT.hh.
|
private |
Definition at line 332 of file BSplineCurveNodeT.hh.
|
private |
Definition at line 313 of file BSplineCurveNodeT.hh.
|
private |
Definition at line 331 of file BSplineCurveNodeT.hh.
|
private |
Definition at line 329 of file BSplineCurveNodeT.hh.
|
private |
Definition at line 305 of file BSplineCurveNodeT.hh.
|
private |
Definition at line 304 of file BSplineCurveNodeT.hh.
|
private |
Definition at line 306 of file BSplineCurveNodeT.hh.
|
private |
Definition at line 283 of file BSplineCurveNodeT.hh.
|
private |
Definition at line 284 of file BSplineCurveNodeT.hh.
|
private |
Definition at line 293 of file BSplineCurveNodeT.hh.
|
private |
Definition at line 323 of file BSplineCurveNodeT.hh.
|
private |
Definition at line 322 of file BSplineCurveNodeT.hh.
|
private |
Definition at line 324 of file BSplineCurveNodeT.hh.
|
private |
Definition at line 316 of file BSplineCurveNodeT.hh.
|
private |
Definition at line 318 of file BSplineCurveNodeT.hh.
|
private |
Definition at line 337 of file BSplineCurveNodeT.hh.
|
private |
Definition at line 336 of file BSplineCurveNodeT.hh.
|
private |
Definition at line 335 of file BSplineCurveNodeT.hh.
|
private |
Definition at line 325 of file BSplineCurveNodeT.hh.
|
private |
Definition at line 310 of file BSplineCurveNodeT.hh.
|
private |
Definition at line 309 of file BSplineCurveNodeT.hh.
|
private |
Definition at line 311 of file BSplineCurveNodeT.hh.
|
private |
Definition at line 314 of file BSplineCurveNodeT.hh.
|
private |
Definition at line 276 of file BSplineCurveNodeT.hh.
|
private |
Definition at line 300 of file BSplineCurveNodeT.hh.
|
private |
Definition at line 297 of file BSplineCurveNodeT.hh.
|
private |
Definition at line 296 of file BSplineCurveNodeT.hh.
|
private |
Definition at line 298 of file BSplineCurveNodeT.hh.
|
private |
Definition at line 280 of file BSplineCurveNodeT.hh.
|
private |
Definition at line 281 of file BSplineCurveNodeT.hh.
|
private |
Definition at line 287 of file BSplineCurveNodeT.hh.
|
private |
Definition at line 286 of file BSplineCurveNodeT.hh.
|
private |
Definition at line 278 of file BSplineCurveNodeT.hh.
|
private |
Definition at line 317 of file BSplineCurveNodeT.hh.