Panda3D
|
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"
Public Member Functions | |
GeomDrawCallbackData (CullableObject *obj, GraphicsStateGuardianBase *gsg, bool force) | |
const TypedObject * | as_typed_object () const |
Returns the object, upcast (if necessary) to a TypedObject pointer. | |
TypedObject * | as_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). | |
GraphicsStateGuardianBase * | get_gsg () const |
Returns a pointer to the current GSG. | |
bool | get_lost_state () const |
Returns the lost_state flag. | |
CullableObject * | get_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. |
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.
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] |
Returns true if the current object is the indicated type exactly.
Definition at line 74 of file typedObject.I.
References TypeHandle::get_name().
Referenced by GraphicsStateGuardian::async_reload_texture(), PortalNode::combine_with(), PandaNode::combine_with(), GeomNode::combine_with(), CollisionNode::combine_with(), Character::combine_with(), PGItem::cull_callback(), FactoryParams::get_param_of_type(), CollisionHandlerPusher::handle_entries(), SceneGraphReducer::r_flatten(), ConnectionWriter::send(), FltToEggLevelState::set_transform(), and VirtualFileSystem::unmount().
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().