Panda3D
Public Member Functions | Static Public Member Functions

GeomDrawCallbackData Class Reference

This specialization on CallbackData is passed when the callback is initiated from deep within the draw traversal, for a particular Geom. More...

#include "geomDrawCallbackData.h"

Inheritance diagram for GeomDrawCallbackData:
CallbackData TypedObject MemoryBase

List of all members.

Public Member Functions

 GeomDrawCallbackData (CullableObject *obj, GraphicsStateGuardianBase *gsg, bool force)
const TypedObjectas_typed_object () const
 Returns the object, upcast (if necessary) to a TypedObject pointer.
TypedObjectas_typed_object ()
 Returns the object, upcast (if necessary) to a TypedObject pointer.
virtual TypeHandle force_init_type ()
int get_best_parent_from_Set (const std::set< int > &) const
bool get_force () const
 Returns true if any required data should be forced into memory if necessary to render the object, or false if the object should be omitted if some of the data is not available (at least until the data becomes available later).
GraphicsStateGuardianBaseget_gsg () const
 Returns a pointer to the current GSG.
bool get_lost_state () const
 Returns the lost_state flag.
CullableObjectget_object () const
 Returns a pointer to the particular object that is being drawn.
virtual TypeHandle get_type () const
int get_type_index () const
 Returns the internal index number associated with this object's TypeHandle, a unique number for each different type.
bool is_exact_type (TypeHandle handle) const
 Returns true if the current object is the indicated type exactly.
bool is_of_type (TypeHandle handle) const
 Returns true if the current object is or derives from the indicated type.
void operator delete (void *ptr)
void operator delete (void *ptr, void *)
void operator delete[] (void *, void *)
void operator delete[] (void *ptr)
void * operator new (size_t size)
void * operator new (size_t size, void *ptr)
void * operator new[] (size_t size, void *ptr)
void * operator new[] (size_t size)
virtual void output (ostream &out) const
void set_lost_state (bool lost_state)
 Sets the lost_state flag.
virtual void upcall ()
 You should make this call during the callback if you want to continue the normal rendering function that would have been done in the absence of a callback.

Static Public Member Functions

static TypeHandle get_class_type ()
static void init_type ()
 This function is declared non-inline to work around a compiler bug in g++ 2.96.

Detailed Description

This specialization on CallbackData is passed when the callback is initiated from deep within the draw traversal, for a particular Geom.

Definition at line 27 of file geomDrawCallbackData.h.


Member Function Documentation

TypedObject * TypedObject::as_typed_object ( ) [inline, inherited]

Returns the object, upcast (if necessary) to a TypedObject pointer.

Definition at line 99 of file typedObject.I.

const TypedObject * TypedObject::as_typed_object ( ) const [inline, inherited]

Returns the object, upcast (if necessary) to a TypedObject pointer.

Definition at line 110 of file typedObject.I.

bool GeomDrawCallbackData::get_force ( ) const [inline]

Returns true if any required data should be forced into memory if necessary to render the object, or false if the object should be omitted if some of the data is not available (at least until the data becomes available later).

Definition at line 62 of file geomDrawCallbackData.I.

GraphicsStateGuardianBase * GeomDrawCallbackData::get_gsg ( ) const [inline]

Returns a pointer to the current GSG.

Definition at line 48 of file geomDrawCallbackData.I.

bool GeomDrawCallbackData::get_lost_state ( ) const [inline]

Returns the lost_state flag.

See set_lost_state().

Definition at line 90 of file geomDrawCallbackData.I.

CullableObject * GeomDrawCallbackData::get_object ( ) const [inline]

Returns a pointer to the particular object that is being drawn.

Definition at line 38 of file geomDrawCallbackData.I.

int TypedObject::get_type_index ( ) const [inline, inherited]

Returns the internal index number associated with this object's TypeHandle, a unique number for each different type.

This is equivalent to get_type().get_index().

Definition at line 52 of file typedObject.I.

References TypeHandle::get_index().

static void GeomDrawCallbackData::init_type ( ) [inline, static]

This function is declared non-inline to work around a compiler bug in g++ 2.96.

Making it inline seems to cause problems in the optimizer.

Reimplemented from CallbackData.

Definition at line 54 of file geomDrawCallbackData.h.

References CallbackData::init_type().

bool TypedObject::is_exact_type ( TypeHandle  handle) const [inline, inherited]
bool TypedObject::is_of_type ( TypeHandle  handle) const [inline, inherited]

Returns true if the current object is or derives from the indicated type.

Definition at line 63 of file typedObject.I.

References TypeHandle::is_derived_from().

Referenced by EggSliderData::add_back_pointer(), EggJointData::add_back_pointer(), CIntervalManager::add_c_interval(), XFileNode::add_child(), CollisionTraverser::add_collider(), CollisionHandlerPhysical::add_collider(), EggXfmSAnim::add_data(), CharacterJointBundle::add_node(), NonlinearImager::add_screen(), EggGroupNode::apply_first_attribute(), EggGroupNode::apply_last_attribute(), DeferredNodeProperty::apply_to_node(), RecorderController::begin_playback(), NodePath::clear_clip_plane(), EggGroupNode::clear_connected_shading(), NodePath::clear_light(), EggBase::convert_paths(), NodePath::decode_from_bam_stream(), VrpnClient::disconnect_device(), PhysicsManager::do_physics(), GraphicsStateGuardian::fetch_specified_part(), EggRenderState::fill_state(), AnimBundleNode::find_anim_bundle(), EggGroupNode::find_coordsys_entry(), XFile::find_data_object(), Character::find_joint(), EggGroupNode::find_materials(), Character::find_slider(), XFile::find_template(), EggGroupNode::find_textures(), EggMaterialCollection::find_used_materials(), EggTextureCollection::find_used_textures(), EggGroupNode::force_filenames(), EggJointData::force_initial_rest_frame(), WindowFramework::get_aspect_2d(), EggPoolUniquifier::get_category(), EggGroupUniquifier::get_category(), EggGroupNode::get_connected_shading(), PandaFramework::get_mouse(), FactoryParams::get_param_of_type(), EggGroupNode::has_absolute_pathnames(), NodePath::has_clip_plane(), NodePath::has_clip_plane_off(), NodePath::has_light(), PandaFramework::hide_collision_solids(), x11GraphicsWindow::open_window(), eglGraphicsWindow::open_window(), EggNode::parse_egg(), CharacterMaker::part_to_node(), EggGroupNode::post_apply_flat_attribute(), EggBinner::prepare_node(), PortalClipper::prepare_portal(), NodePath::project_texture(), EggMatrixTablePointer::quantize_channels(), ParametricCurveCollection::r_add_curves(), SceneGraphReducer::r_collect_vertex_data(), EggGroupNode::r_load_externals(), EggGroupNode::rebuild_vertex_pools(), EggGroupNode::recompute_polygon_normals(), EggGroupNode::remove_invalid_primitives(), EggGroupNode::remove_unused_vertices(), EggLoader::reparent_decals(), EggMaterialCollection::replace_materials(), EggTextureCollection::replace_textures(), EggGroupNode::resolve_filenames(), EggGroupNode::reverse_vertex_ordering(), NodePath::set_clip_plane(), NodePath::set_clip_plane_off(), NodePath::set_light(), ProjectionScreen::set_projector(), NonlinearImager::set_source_camera(), EggXfmSAnim::set_value(), NonlinearImager::set_viewer_camera(), PandaFramework::show_collision_solids(), BamCache::store(), XFileToEggConverter::strip_nodes(), EggGroupNode::strip_normals(), DataGraphTraverser::traverse(), DataGraphTraverser::traverse_below(), EggGroupNode::triangulate_polygons(), EggGroupNode::unify_attributes(), EggNameUniquifier::uniquify(), NodeCullCallbackData::upcall(), PhysicsCollisionHandler::validate_target(), EggXfmSAnim::write(), EggGroup::write(), EggToDXFLayer::write_3d_face(), and EggToDXFLayer::write_entities().

void GeomDrawCallbackData::set_lost_state ( bool  lost_state) [inline]

Sets the lost_state flag.

If this is true, the callback does not have to be quite so careful to clean up after itself; Panda will assume that the graphics state is in an unknown state after the callback has finished, and will issue all the necessary calls to restore it. If this is false, Panda will assume the callback will leave the graphics state exactly as it came in, and won't bother to try to restore it. The default is true.

Definition at line 80 of file geomDrawCallbackData.I.

void GeomDrawCallbackData::upcall ( ) [virtual]

You should make this call during the callback if you want to continue the normal rendering function that would have been done in the absence of a callback.

Specifically, this method will add the Geoms in this node to the list of renderable objects for drawing. If this callback was made on a CallbackNode, it doesn't actually do anything, since only a GeomNode holds geoms.

Reimplemented from CallbackData.

Definition at line 44 of file geomDrawCallbackData.cxx.

References CullableObject::draw(), and Thread::get_current_thread().


The documentation for this class was generated from the following files:
 All Classes Functions Variables Enumerations