Developer Documentation
|
Public Types | |
enum | BSplineDrawMode { NORMAL = 0 , FANCY = 1 } |
enum | BSplineSelectionDrawMode { NONE = 0 , CONTROLPOINT = 1 , KNOTVECTOR = 2 } |
typedef BSplineSurfaceType::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 | |
BSplineSurfaceNodeT (BSplineSurfaceType &_bss, BaseNode *_parent=0, std::string _name="<BSplineSurfaceNode>") | |
Constructor. More... | |
~BSplineSurfaceNodeT () | |
Destructor. More... | |
BSplineSurfaceType & | bsplineSurface () |
void | set_pick_radius (double _pr) |
ACG_CLASSNAME (BSplineSurfaceNodeT) | |
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 | 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 | updateGeometry () |
update vertex buffer for rendering More... | |
void | set_rendering_resolution (int _res) |
void | render_control_net (bool _render) |
bool | render_control_net () |
void | render_bspline_surface (bool _render) |
bool | render_bspline_surface () |
void | set_bspline_draw_mode (BSplineDrawMode _mode) |
void | set_selection_draw_mode (BSplineSelectionDrawMode _mode) |
BSplineSelectionDrawMode | get_selection_draw_mode () const |
void | adaptive_sampling (bool _adaptive) |
void | cpSelectionTextureValid (bool _valid) |
void | knotSelectionTextureValid (bool _valid) |
int & | pick_texture_res () |
Should be a power of 2. More... | |
void | set_arb_texture (const QImage &_texture, bool _repeat=false, float _u_repeat=1.0f, float _v_repeat=1.0f) |
use arbitrary texture (in SOLID_TEXTURED mode) More... | |
void | set_arb_texture (const GLuint _texture) |
void | set_repeat_arb_texture (bool _repeat=true, float _urep=5.0f, float _vrep=5.0f) |
bool | get_repeat_arb_texture () |
![]() | |
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) |
void | pick_surface (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) |
BSplineSurfaceNodeT (const BSplineSurfaceNodeT &_rhs) | |
Copy constructor (not used) | |
BSplineSurfaceNodeT & | operator= (const BSplineSurfaceNodeT &_rhs) |
Assignment operator (not used) | |
void | render (GLState &_state, bool _fill) |
void | drawSurface (GLState &_state, bool _fill=true) |
void | drawTexturedSurface (GLState &_state, GLuint _texture_idx) |
void | drawControlNet (GLState &_state) |
void | drawFancyControlNet (GLState &_state) |
void | updateControlPointSelectionTexture (GLState &_state) |
void | updateKnotVectorSelectionTexture (GLState &_state) |
void | pick_init_texturing () |
generate index and setup texture parameters More... | |
void | pick_create_texture (GLState &_state) |
create texture image More... | |
void | pick_draw_textured_nurbs (GLState &_state) |
draw textured nurbs patch | |
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 | |
ACG::Vec4f | generateHighlightColor (ACG::Vec4f _color) |
void | updateSurfaceMesh (int _vertexCountU=50, int _vertexCountV=50) |
update vertex + index buffer of surface mesh More... | |
void | updateControlNetMesh () |
update vertex + index buffer of control net mesh More... | |
void | updateControlNetMeshSel () |
update index buffer of selected control points More... | |
void | updateTexBuffers () |
update texture resources for gpu-based spline evaluation More... | |
Definition at line 86 of file BSplineSurfaceNodeT.hh.
typedef BSplineSurfaceType::Point ACG::SceneGraph::BSplineSurfaceNodeT< BSplineSurfaceType >::Point |
Definition at line 91 of file BSplineSurfaceNodeT.hh.
enum ACG::SceneGraph::BSplineSurfaceNodeT::BSplineDrawMode |
Definition at line 144 of file BSplineSurfaceNodeT.hh.
enum ACG::SceneGraph::BSplineSurfaceNodeT::BSplineSelectionDrawMode |
Definition at line 149 of file BSplineSurfaceNodeT.hh.
|
inline |
Constructor.
Definition at line 94 of file BSplineSurfaceNodeT.hh.
|
inline |
Destructor.
Definition at line 137 of file BSplineSurfaceNodeT.hh.
|
inline |
Definition at line 197 of file BSplineSurfaceNodeT.hh.
|
overridevirtual |
return available draw modes
Reimplemented from ACG::SceneGraph::BaseNode.
Definition at line 93 of file BSplineSurfaceNodeT_impl.hh.
|
overridevirtual |
update bounding box
Reimplemented from ACG::SceneGraph::BaseNode.
Definition at line 76 of file BSplineSurfaceNodeT_impl.hh.
|
inline |
Definition at line 156 of file BSplineSurfaceNodeT.hh.
|
inline |
Definition at line 199 of file BSplineSurfaceNodeT.hh.
|
private |
creates texture to put onto nurbs curve for visualization of control point selection
Definition at line 967 of file BSplineSurfaceNodeT_impl.hh.
|
private |
creates texture to put onto nurbs curve for visualization of knotvector selection
Definition at line 1071 of file BSplineSurfaceNodeT_impl.hh.
|
overridevirtual |
draw lines and normals
Reimplemented from ACG::SceneGraph::BaseNode.
Definition at line 273 of file BSplineSurfaceNodeT_impl.hh.
|
private |
Definition at line 888 of file BSplineSurfaceNodeT_impl.hh.
|
private |
Definition at line 872 of file BSplineSurfaceNodeT_impl.hh.
|
private |
Definition at line 517 of file BSplineSurfaceNodeT_impl.hh.
|
private |
Definition at line 624 of file BSplineSurfaceNodeT_impl.hh.
|
private |
Definition at line 454 of file BSplineSurfaceNodeT_impl.hh.
|
private |
Definition at line 477 of file BSplineSurfaceNodeT_impl.hh.
|
private |
Definition at line 1337 of file BSplineSurfaceNodeT_impl.hh.
|
inline |
Definition at line 210 of file BSplineSurfaceNodeT.hh.
|
inline |
Definition at line 195 of file BSplineSurfaceNodeT.hh.
|
overridevirtual |
create render objects
Reimplemented from ACG::SceneGraph::BaseNode.
Definition at line 116 of file BSplineSurfaceNodeT_impl.hh.
|
inline |
Definition at line 200 of file BSplineSurfaceNodeT.hh.
|
overridevirtual |
picking
Reimplemented from ACG::SceneGraph::BaseNode.
Definition at line 725 of file BSplineSurfaceNodeT_impl.hh.
|
private |
create texture image
Definition at line 1236 of file BSplineSurfaceNodeT_impl.hh.
|
private |
generate index and setup texture parameters
spline surface u,v-parameter picking
Definition at line 1208 of file BSplineSurfaceNodeT_impl.hh.
|
private |
Definition at line 808 of file BSplineSurfaceNodeT_impl.hh.
|
private |
Definition at line 855 of file BSplineSurfaceNodeT_impl.hh.
|
inline |
Should be a power of 2.
Definition at line 204 of file BSplineSurfaceNodeT.hh.
|
private |
Definition at line 776 of file BSplineSurfaceNodeT_impl.hh.
|
private |
Definition at line 426 of file BSplineSurfaceNodeT_impl.hh.
|
inline |
Definition at line 189 of file BSplineSurfaceNodeT.hh.
|
inline |
Definition at line 187 of file BSplineSurfaceNodeT.hh.
|
inline |
Definition at line 185 of file BSplineSurfaceNodeT.hh.
|
inline |
Definition at line 183 of file BSplineSurfaceNodeT.hh.
|
private |
generate index and setup texture parameters for selection visualization
Definition at line 944 of file BSplineSurfaceNodeT_impl.hh.
|
inline |
Definition at line 208 of file BSplineSurfaceNodeT.hh.
void ACG::SceneGraph::BSplineSurfaceNodeT< BSplineSurfaceType >::set_arb_texture | ( | const QImage & | _texture, |
bool | _repeat = false , |
||
float | _u_repeat = 1.0f , |
||
float | _v_repeat = 1.0f |
||
) |
use arbitrary texture (in SOLID_TEXTURED mode)
Definition at line 1303 of file BSplineSurfaceNodeT_impl.hh.
|
inline |
Definition at line 191 of file BSplineSurfaceNodeT.hh.
|
inline |
Definition at line 158 of file BSplineSurfaceNodeT.hh.
|
inline |
Definition at line 181 of file BSplineSurfaceNodeT.hh.
|
inline |
Definition at line 209 of file BSplineSurfaceNodeT.hh.
|
inline |
Definition at line 193 of file BSplineSurfaceNodeT.hh.
|
private |
update vertex + index buffer of control net mesh
Definition at line 1501 of file BSplineSurfaceNodeT_impl.hh.
|
private |
update index buffer of selected control points
Definition at line 1583 of file BSplineSurfaceNodeT_impl.hh.
|
private |
Definition at line 919 of file BSplineSurfaceNodeT_impl.hh.
void ACG::SceneGraph::BSplineSurfaceNodeT< BSplineSurfaceType >::updateGeometry |
update vertex buffer for rendering
Definition at line 714 of file BSplineSurfaceNodeT_impl.hh.
|
private |
Definition at line 933 of file BSplineSurfaceNodeT_impl.hh.
|
private |
update vertex + index buffer of surface mesh
Definition at line 1356 of file BSplineSurfaceNodeT_impl.hh.
|
private |
update texture resources for gpu-based spline evaluation
Definition at line 1640 of file BSplineSurfaceNodeT_impl.hh.
|
private |
Definition at line 298 of file BSplineSurfaceNodeT.hh.
|
private |
Definition at line 321 of file BSplineSurfaceNodeT.hh.
|
private |
Definition at line 320 of file BSplineSurfaceNodeT.hh.
|
private |
Definition at line 323 of file BSplineSurfaceNodeT.hh.
|
private |
Definition at line 324 of file BSplineSurfaceNodeT.hh.
|
private |
Definition at line 325 of file BSplineSurfaceNodeT.hh.
|
private |
Definition at line 322 of file BSplineSurfaceNodeT.hh.
|
private |
Definition at line 281 of file BSplineSurfaceNodeT.hh.
|
private |
Definition at line 283 of file BSplineSurfaceNodeT.hh.
|
private |
Definition at line 279 of file BSplineSurfaceNodeT.hh.
|
private |
Definition at line 289 of file BSplineSurfaceNodeT.hh.
|
private |
Definition at line 290 of file BSplineSurfaceNodeT.hh.
|
private |
Definition at line 345 of file BSplineSurfaceNodeT.hh.
|
private |
Definition at line 343 of file BSplineSurfaceNodeT.hh.
|
private |
Definition at line 344 of file BSplineSurfaceNodeT.hh.
|
private |
Definition at line 341 of file BSplineSurfaceNodeT.hh.
|
private |
Definition at line 342 of file BSplineSurfaceNodeT.hh.
|
private |
Definition at line 340 of file BSplineSurfaceNodeT.hh.
|
private |
Definition at line 300 of file BSplineSurfaceNodeT.hh.
|
private |
Definition at line 352 of file BSplineSurfaceNodeT.hh.
|
private |
Definition at line 311 of file BSplineSurfaceNodeT.hh.
|
private |
Definition at line 310 of file BSplineSurfaceNodeT.hh.
|
private |
Definition at line 312 of file BSplineSurfaceNodeT.hh.
|
private |
Definition at line 327 of file BSplineSurfaceNodeT.hh.
|
private |
Definition at line 329 of file BSplineSurfaceNodeT.hh.
|
private |
Definition at line 346 of file BSplineSurfaceNodeT.hh.
|
private |
Definition at line 347 of file BSplineSurfaceNodeT.hh.
|
private |
Definition at line 337 of file BSplineSurfaceNodeT.hh.
|
private |
Definition at line 316 of file BSplineSurfaceNodeT.hh.
|
private |
Definition at line 315 of file BSplineSurfaceNodeT.hh.
|
private |
Definition at line 317 of file BSplineSurfaceNodeT.hh.
|
private |
Definition at line 350 of file BSplineSurfaceNodeT.hh.
|
private |
Definition at line 351 of file BSplineSurfaceNodeT.hh.
|
private |
Definition at line 301 of file BSplineSurfaceNodeT.hh.
|
private |
Definition at line 285 of file BSplineSurfaceNodeT.hh.
|
private |
Definition at line 307 of file BSplineSurfaceNodeT.hh.
|
private |
Definition at line 304 of file BSplineSurfaceNodeT.hh.
|
private |
Definition at line 303 of file BSplineSurfaceNodeT.hh.
|
private |
Definition at line 305 of file BSplineSurfaceNodeT.hh.
|
private |
Definition at line 296 of file BSplineSurfaceNodeT.hh.
|
private |
Definition at line 295 of file BSplineSurfaceNodeT.hh.
|
private |
Definition at line 287 of file BSplineSurfaceNodeT.hh.
|
private |
Definition at line 328 of file BSplineSurfaceNodeT.hh.
|
private |
Definition at line 292 of file BSplineSurfaceNodeT.hh.
|
private |
Definition at line 293 of file BSplineSurfaceNodeT.hh.
|
private |
Definition at line 335 of file BSplineSurfaceNodeT.hh.
|
private |
Definition at line 334 of file BSplineSurfaceNodeT.hh.
|
private |
Definition at line 336 of file BSplineSurfaceNodeT.hh.
|
private |
Definition at line 333 of file BSplineSurfaceNodeT.hh.