CallbackNode
from panda3d.core import CallbackNode
- class CallbackNode
Bases:
Bases:
PandaNode
A special node that can issue arbitrary callbacks to user code, either during the cull or draw traversals.
Inheritance diagram
- clear_cull_callback()
Removes the callback set by an earlier call to
set_cull_callback()
.
- clear_draw_callback()
Removes the callback set by an earlier call to
set_draw_callback()
.
- property cull_callback CallbackObject
- Getter
Returns the
CallbackObject
set byset_cull_callback()
.- Setter
Sets the
CallbackObject
that will be notified when this node is visited during the cull traversal. This callback will be made during the cull thread.The cull traversal is responsible for determining which nodes are visible and within the view frustum, and for accumulating state and transform, and generally building up the list of CullableObjects that are to be eventually passed to the draw traversal for rendering.
At the time the cull traversal callback is made, the node has been determined to be visible and it has passed the bounding-volume test, so it lies within the view frustum.
The callback is passed an instance of a
NodeCullCallbackData
, which contains pointers to theCullTraverser
and CullTraverserData–enough data to examine the current node and its place within the scene graph. The callback replaces the normal cull behavior, so if your callback does nothing, the cull traversal will not continue below this node. If you wish the cull traversal to continue to visit this node and below, you must call cbdata->upcall() from your callback.
- property draw_callback CallbackObject
- Getter
Returns the
CallbackObject
set byset_draw_callback()
.- Setter
Sets the
CallbackObject
that will be notified when this node is visited during the draw traversal. This callback will be made during the draw thread.The draw traversal is responsible for actually issuing the commands to the graphics engine to draw primitives. Its job is to walk through the list of CullableObjects build up by the cull traversal, as quickly as possible, issuing the appropriate commands to draw each one.
At the time the draw traversal callback is made, the graphics state has been loaded with the correct modelview transform and render state, and the primitives (if any) in this node are ready to be drawn.
The callback is passed an instance of a
GeomDrawCallbackData
, which contains pointers to the current state and transform, as well as the current GSG. There is a Geom pointer as well, but it will always be NULL to this callback, since theCallbackNode
does not itself contain any Geoms.
- static get_class_type() TypeHandle
- get_cull_callback() CallbackObject
Returns the
CallbackObject
set byset_cull_callback()
.
- get_draw_callback() CallbackObject
Returns the
CallbackObject
set byset_draw_callback()
.
- set_cull_callback(object: CallbackObject)
Sets the
CallbackObject
that will be notified when this node is visited during the cull traversal. This callback will be made during the cull thread.The cull traversal is responsible for determining which nodes are visible and within the view frustum, and for accumulating state and transform, and generally building up the list of CullableObjects that are to be eventually passed to the draw traversal for rendering.
At the time the cull traversal callback is made, the node has been determined to be visible and it has passed the bounding-volume test, so it lies within the view frustum.
The callback is passed an instance of a
NodeCullCallbackData
, which contains pointers to theCullTraverser
and CullTraverserData–enough data to examine the current node and its place within the scene graph. The callback replaces the normal cull behavior, so if your callback does nothing, the cull traversal will not continue below this node. If you wish the cull traversal to continue to visit this node and below, you must call cbdata->upcall() from your callback.
- set_draw_callback(object: CallbackObject)
Sets the
CallbackObject
that will be notified when this node is visited during the draw traversal. This callback will be made during the draw thread.The draw traversal is responsible for actually issuing the commands to the graphics engine to draw primitives. Its job is to walk through the list of CullableObjects build up by the cull traversal, as quickly as possible, issuing the appropriate commands to draw each one.
At the time the draw traversal callback is made, the graphics state has been loaded with the correct modelview transform and render state, and the primitives (if any) in this node are ready to be drawn.
The callback is passed an instance of a
GeomDrawCallbackData
, which contains pointers to the current state and transform, as well as the current GSG. There is a Geom pointer as well, but it will always be NULL to this callback, since theCallbackNode
does not itself contain any Geoms.