Panda3D
 All Classes Namespaces Functions Variables Enumerations Enumerator Properties
Public Member Functions | Static Public Member Functions
CallbackNode Class Reference

A special node that can issue arbitrary callbacks to user code, either during the cull or draw traversals. More...

Inheritance diagram for CallbackNode:
PandaNode TypedWritable Namable LinkedListNode ReferenceCount TypedObject

List of all members.

Public Member Functions

 CallbackNode (string name)
 clearCullCallback ()
 Removes the callback set by an earlier call to set_cull_callback().
 clearDrawCallback ()
 Removes the callback set by an earlier call to set_draw_callback().
CallbackObject getCullCallback ()
 Returns the CallbackObject set by set_cull_callback().
CallbackObject getDrawCallback ()
 Returns the CallbackObject set by set_draw_callback().
 setCullCallback (CallbackObject object)
 Sets the CallbackObject that will be notified when this node is visited during the cull traversal.
 setDrawCallback (CallbackObject object)
 Sets the CallbackObject that will be notified when this node is visited during the draw traversal.

Static Public Member Functions

static TypeHandle getClassType ()

Detailed Description

A special node that can issue arbitrary callbacks to user code, either during the cull or draw traversals.


Constructor & Destructor Documentation

CallbackNode ( string  name)

Member Function Documentation

Removes the callback set by an earlier call to set_cull_callback().

Removes the callback set by an earlier call to set_draw_callback().

static TypeHandle getClassType ( ) [static]

Reimplemented from PandaNode.

Returns the CallbackObject set by set_cull_callback().

Returns the CallbackObject set by set_draw_callback().

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

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 the CallbackNode does not itself contain any Geoms.

 All Classes Namespaces Functions Variables Enumerations Enumerator Properties