Panda3D
|
The highest-level base class in the egg directory. More...
#include "eggObject.h"
Public Member Functions | |
EggObject (const EggObject ©) | |
virtual EggTransform * | as_transform () |
Returns this object cross-cast to an EggTransform pointer, if it inherits from EggTransform, or NULL if it does not. | |
void | clear_user_data () |
Removes *all* user data pointers from the node. | |
void | clear_user_data (TypeHandle type) |
Removes the user data pointer of the indicated type. | |
virtual TypeHandle | force_init_type () |
virtual TypeHandle | get_type () const |
EggUserData * | get_user_data () const |
Returns the user data pointer most recently stored on this object, or NULL if nothing was previously stored. | |
EggUserData * | get_user_data (TypeHandle type) const |
Returns the user data pointer of the indicated type, if it exists, or NULL if it does not. | |
bool | has_user_data () const |
Returns true if a generic user data pointer has recently been set and not yet cleared, false otherwise. | |
bool | has_user_data (TypeHandle type) const |
Returns true if the user data pointer of the indicated type has been set, false otherwise. | |
EggObject & | operator= (const EggObject ©) |
void | set_user_data (EggUserData *user_data) |
Sets the user data associated with this object. | |
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. |
The highest-level base class in the egg directory.
(Almost) all things egg inherit from this.
Definition at line 31 of file eggObject.h.
EggTransform * EggObject::as_transform | ( | ) | [virtual] |
Returns this object cross-cast to an EggTransform pointer, if it inherits from EggTransform, or NULL if it does not.
Reimplemented in EggGroup, and EggTexture.
Definition at line 183 of file eggObject.cxx.
void EggObject::clear_user_data | ( | ) |
Removes *all* user data pointers from the node.
Definition at line 153 of file eggObject.cxx.
void EggObject::clear_user_data | ( | TypeHandle | type | ) |
Removes the user data pointer of the indicated type.
Definition at line 164 of file eggObject.cxx.
EggUserData * EggObject::get_user_data | ( | ) | const |
Returns the user data pointer most recently stored on this object, or NULL if nothing was previously stored.
Definition at line 102 of file eggObject.cxx.
Referenced by MayaNodeTree::get_egg_group(), and EggBinner::sorts_less().
EggUserData * EggObject::get_user_data | ( | TypeHandle | type | ) | const |
Returns the user data pointer of the indicated type, if it exists, or NULL if it does not.
Definition at line 113 of file eggObject.cxx.
bool EggObject::has_user_data | ( | ) | const |
Returns true if a generic user data pointer has recently been set and not yet cleared, false otherwise.
Definition at line 130 of file eggObject.cxx.
Referenced by MayaNodeTree::get_egg_group().
bool EggObject::has_user_data | ( | TypeHandle | type | ) | const |
Returns true if the user data pointer of the indicated type has been set, false otherwise.
Definition at line 141 of file eggObject.cxx.
static void EggObject::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 TypedReferenceCount.
Reimplemented in EggGroup, EggTexture, EggBinMaker, EggGroupNode, EggVertexPool, EggNode, EggNameUniquifier, EggJointData, EggXfmSAnim, EggMaterial, EggData, EggSwitchConditionDistance, EggVertexUV, EggXfmAnimData, EggComponentData, EggPolysetMaker, EggAnimData, EggTable, EggFilenameNode, EggComment, EggVertexAux, EggAnimPreload, EggCoordinateSystem, EggBin, EggSAnimData, EggSwitchCondition, EggSliderData, EggGroupUniquifier, EggNamedObject, EggExternalReference, and EggPoolUniquifier.
Definition at line 59 of file eggObject.h.
References TypedReferenceCount::init_type().
Referenced by EggNamedObject::init_type(), EggSwitchCondition::init_type(), EggNameUniquifier::init_type(), and EggBinMaker::init_type().
void EggObject::set_user_data | ( | EggUserData * | user_data | ) |
Sets the user data associated with this object.
This may be any EggUserData-derived object. The egg library will do nothing with this pointer, except to hold its reference count and return the pointer on request.
The EggObject maintains multiple different EggUserData pointers, one for each unique type (as reported by get_type()). If you know that only one type of EggUserData object will be added in your application, you may use the query functions that accept no parameters, but it is recommended that in general you pass in the type of your particular user data, to allow multiple applications to coexist in the same egg data.
This pointer is also copied by the copy assignment operator and copy constructor.
Definition at line 89 of file eggObject.cxx.
Referenced by MayaNodeTree::get_egg_group(), and EggBinner::prepare_node().