EggVertex

Inheritance:

Methods of EggVertex:

Methods of EggObject:

Methods of TypedReferenceCount:

Methods of TypedObject:

Methods of ReferenceCount:

Methods of EggAttributes:

clearGrefs
void EggVertex::clear_grefs(void);

Description: Removes all group references from the vertex, so that it is not assigned to any group.

clearUv
void EggVertex::clear_uv(void);

Description: Removes all UV coordinate pairs from the vertex.
Description: Removes the named UV coordinate pair from the vertex, along with any UV morphs.

copyGrefsFrom
void EggVertex::copy_grefs_from(EggVertex const &other);

Description: Copies all the group references from the other vertex onto this one. This assigns the current vertex to exactly the same groups, with exactly the same memberships, as the given one.
Warning: only an EggVertex allocated from the free store may have groups assigned to it. Do not attempt to call this on a temporary concrete EggVertex object; a core dump will certainly result.

getClassType
static TypeHandle EggVertex::get_class_type(void);

Undocumented function.

getExternalIndex
int EggVertex::get_external_index(void) const;

Description: Returns the number set by set_external_index(). See set_external_index().

getIndex
int EggVertex::get_index(void) const;

Description: Returns the index number of the vertex within its pool.

getNumDimensions
int EggVertex::get_num_dimensions(void) const;

get_pos[123] return the pos as the corresponding type. It is an error to call any of these without first verifying that get_num_dimensions() matches the desired type. However, get_pos4() may always be called; it returns the pos as a four-component point in homogeneous space (with a 1.0 in the last position if the pos has fewer than four components).
Description: Returns the number of dimensions the vertex uses. Usually this will be 3, but it may be 1, 2, 3, or 4.

getNumGlobalCoord
int EggVertex::get_num_global_coord(void) const;

Description: Returns the number of primitives that own this vertex whose vertices are interpreted in the global coordinate system.

getNumLocalCoord
int EggVertex::get_num_local_coord(void) const;

Description: Returns the number of primitives that own this vertex whose vertices are interpreted to be in a local coordinate system.

getPool
EggVertexPool *EggVertex::get_pool(void) const;

Filename: eggVertex.I Created by: drose (16Jan99)
PANDA 3D SOFTWARE Copyright (c) 2001 - 2004, Disney Enterprises, Inc. All rights reserved
All use of this software is subject to the terms of the Panda 3d Software license. You should have received a copy of this license along with this source code; you will also find a current copy of the license at http://etc.cmu.edu/panda3d/docs/license/ .
To contact the maintainers of this program write to panda3d-general@lists.sourceforge.net .
Description: Returns the vertex pool this vertex belongs in. This may be NULL if the vertex has not been added to a pool.

getPos1
double EggVertex::get_pos1(void) const;

get_pos[123] return the pos as the corresponding type. It is an error to call any of these without first verifying that get_num_dimensions() matches the desired type. However, get_pos4() may always be called; it returns the pos as a four-component point in homogeneous space (with a 1.0 in the last position if the pos has fewer than four components).
Description: Only valid if get_num_dimensions() returns 1. Returns the position as a one-dimensional value.

getPos2
LPoint2d EggVertex::get_pos2(void) const;

Description: Only valid if get_num_dimensions() returns 2. Returns the position as a two-dimensional value.

getPos3
LPoint3d EggVertex::get_pos3(void) const;

Description: Valid if get_num_dimensions() returns 3 or 4. Returns the position as a three-dimensional value.

getPos4
LPoint4d EggVertex::get_pos4(void) const;

Description: This is always valid, regardless of the value of get_num_dimensions. It returns the position as a four-dimensional value. If the pos has fewer than four dimensions, this value represents the pos extended into four-dimensional homogenous space, e.g. by adding 1 as the fourth component.

getUv
LPoint2d EggVertex::get_uv(void) const;

Description: Returns the unnamed UV coordinate pair on the vertex. It is an error to call this if has_uv() has returned false.
This is the more restrictive interface, and is generally useful only in the absence of multitexturing; see get_uv(name) for the interface that supports multitexturing.
Description: Returns the named UV coordinate pair on the vertex. vertex. It is an error to call this if has_uv(name) returned false.

getUvObj
EggVertexUV const *EggVertex::get_uv_obj(string const &name) const;

Description: Returns the named EggVertexUV object, which defines both the UV coordinate pair for this name and the UV morphs. This object might be shared between multiple vertices. You should not attempt to modify this object; instead, call modify_uv_object to return a modifiable pointer.

getUvw
LPoint3d const &EggVertex::get_uvw(string const &name) const;

Description: Returns the named UV coordinate triple on the vertex. vertex. It is an error to call this if has_uvw(name) returned false.

hasGref
bool EggVertex::has_gref(EggGroup const *group) const;

Description: Returns true if the indicated group references this vertex, false otherwise.

hasPref
int EggVertex::has_pref(EggPrimitive const *prim) const;

Description: Returns the number of times the vertex appears in the indicated primitive, or 0 if it does not appear.

hasUv
bool EggVertex::has_uv(void) const;

Description: Returns true if the vertex has an unnamed UV coordinate pair, false otherwise.
This is the more restrictive interface, and is generally useful only in the absence of multitexturing; see has_uv(name) for the interface that supports multitexturing.
Description: Returns true if the vertex has the named UV coordinate pair, and the named UV coordinate pair is 2-d, false otherwise.

hasUvw
bool EggVertex::has_uvw(string const &name) const;

Description: Returns true if the vertex has the named UV coordinate triple, and the named UV coordinate triple is 3-d, false otherwise.

isForwardReference
bool EggVertex::is_forward_reference(void) const;

Description: Returns true if the vertex is a forward reference to some vertex that hasn't been defined yet. In this case, the vertex may not have any properties filled in yet.
This can only happen if you implicitly create a vertex via EggVertexPool::get_forward_vertex(). Presumably, when the vertex pool is later filled in, this vertex will be replaced with real data.

modifyUvObj
EggVertexUV *EggVertex::modify_uv_obj(string const &name);

Description: Returns a modifiable pointer to the named EggVertexUV object, which defines both the UV coordinate pair for this name and the UV morphs. Returns NULL if there is no such named UV object.

operator =
EggVertex &EggVertex::operator =(EggVertex const &copy);

Description: Copies all properties of the vertex except its vertex pool, index number, and group membership.

output
void EggVertex::output(ostream &out) const;

NDEBUG
Description:

setExternalIndex
void EggVertex::set_external_index(int external_index);

Description: Sets a special index number that is associated with the EggVertex (but is not written to the egg file). This number is not interpreted by any egg code; it is simply maintained along with the vertex. It *is* used to differentiate otherwise identical vertices in EggVertexPool::create_unique_vertex(), however.
The intention of this number is as an aid for file converters, to associate an EggVertex back to the index number of the original source vertex.

setPos
void EggVertex::set_pos(double pos);

The pos might have 1, 2, 3, or 4 dimensions. That complicates things a bit.
Description: Sets the vertex position. This variant sets the vertex to a one-dimensional value.
Description: Sets the vertex position. This variant sets the vertex to a two-dimensional value.
Description: Sets the vertex position. This variant sets the vertex to a three-dimensional value.
Description: Sets the vertex position. This variant sets the vertex to a four-dimensional value.

setPos4
void EggVertex::set_pos4(LPoint4d const &pos);

Description: This special flavor of set_pos() sets the vertex as a four-component value, but does not change the set number of dimensions. It's handy for retrieving the vertex position via get_pos4, manipulating it, then storing it back again, without worrying about the number of dimensions it actually had.

setUv
void EggVertex::set_uv(LPoint2d const &texCoord);

Description: Replaces the unnamed UV coordinate pair on the vertex with the indicated value.
This is the more restrictive interface, and is generally useful only in the absence of multitexturing; see set_uv(name, uv) for the interface that supports multitexturing.
Description: Sets the indicated UV coordinate pair on the vertex. This replaces any UV coordinate pair with the same name already on the vertex, but preserves UV morphs.

setUvObj
void EggVertex::set_uv_obj(EggVertexUV *vertex_uv);

Description: Sets the indicated EggVertexUV on the vertex. This replaces any UV coordinate pair with the same name already on the vertex, including UV morphs.

setUvw
void EggVertex::set_uvw(string const &name, LPoint3d const &texCoord);

Description: Sets the indicated UV coordinate triple on the vertex. This replaces any UV coordinate pair or triple with the same name already on the vertex, but preserves UV morphs.

sortsLessThan
bool EggVertex::sorts_less_than(EggVertex const &other) const;

Description: An ordering operator to compare two vertices for sorting order. This imposes an arbitrary ordering useful to identify unique vertices.
Group membership is not considered in this comparison. This is somewhat problematic, but cannot easily be helped, because considering group membership would make it difficult to add and remove groups from vertices. It also makes it impossible to meaningfully compare with a concrete EggVertex object (which cannot have group memberships).
However, this is not altogether bad, because two vertices that are identical in all other properties should generally also be identical in group memberships, else the vertices will tend to fly apart when the joints animate.

testGrefIntegrity
void EggVertex::test_gref_integrity(void) const;

Description: Verifies that the gref list is correct and that all the groups included actually exist and do reference the vertex.

testPrefIntegrity
void EggVertex::test_pref_integrity(void) const;

Description: Verifies that the pref list is correct and that all the primitives included actually exist and do reference the vertex.

transform
void EggVertex::transform(LMatrix4d const &mat);

Description: Applies the indicated transformation matrix to the vertex.

write
void EggVertex::write(ostream &out, int indent_level) const;

Description: Writes the vertex to the indicated output stream in Egg format.

clearUserData
void EggObject::clear_user_data(void);

Description: Removes *all* user data pointers from the node.
Description: Removes the user data pointer of the indicated type.

getClassType
static TypeHandle EggObject::get_class_type(void);

Undocumented function.

getUserData
EggUserData *EggObject::get_user_data(void) const;

Description: Returns the user data pointer most recently stored on this object, or NULL if nothing was previously stored.
Description: Returns the user data pointer of the indicated type, if it exists, or NULL if it does not.

hasUserData
bool EggObject::has_user_data(void) const;

Description: Returns true if a generic user data pointer has recently been set and not yet cleared, false otherwise.
Description: Returns true if the user data pointer of the indicated type has been set, false otherwise.

operator =
EggObject &EggObject::operator =(EggObject const &copy);

Description:

setUserData
void EggObject::set_user_data(EggUserData *user_data);

Description: 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.

getClassType
static TypeHandle TypedReferenceCount::get_class_type(void);

Undocumented function.

getClassType
static TypeHandle TypedObject::get_class_type(void);

Undocumented function.

getType
virtual TypeHandle TypedObject::get_type(void) const = 0;

Derived classes should override this function to return get_class_type().

getTypeIndex
int TypedObject::get_type_index(void) const;

Description: 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().

isExactType
bool TypedObject::is_exact_type(TypeHandle handle) const;

Description: Returns true if the current object is the indicated type exactly.

isOfType
bool TypedObject::is_of_type(TypeHandle handle) const;

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

getClassType
static TypeHandle ReferenceCount::get_class_type(void);

Undocumented function.

getRefCount
int ReferenceCount::get_ref_count(void) const;

Description: Returns the current reference count.

ref
void ReferenceCount::ref(void) const;

Description: Explicitly increments the reference count. User code should avoid using ref() and unref() directly, which can result in missed reference counts. Instead, let a PointerTo object manage the reference counting automatically.
This function is const, even though it changes the object, because generally fiddling with an object's reference count isn't considered part of fiddling with the object. An object might be const in other ways, but we still need to accurately count the number of references to it.

testRefCountIntegrity
bool ReferenceCount::test_ref_count_integrity(void) const;

Description: Does some easy checks to make sure that the reference count isn't completely bogus. Returns true if ok, false otherwise.

testRefCountNonzero
bool ReferenceCount::test_ref_count_nonzero(void) const;

Description: Does some easy checks to make sure that the reference count isn't zero, or completely bogus. Returns true if ok, false otherwise.

unref
bool ReferenceCount::unref(void) const;

Description: Explicitly decrements the reference count. Note that the object will not be implicitly deleted by unref() simply because the reference count drops to zero. (Having a member function delete itself is problematic; plus, we don't have a virtual destructor anyway.) However, see the helper function unref_delete().
User code should avoid using ref() and unref() directly, which can result in missed reference counts. Instead, let a PointerTo object manage the reference counting automatically.
This function is const, even though it changes the object, because generally fiddling with an object's reference count isn't considered part of fiddling with the object. An object might be const in other ways, but we still need to accurately count the number of references to it.
The return value is true if the new reference count is nonzero, false if it is zero.

clearColor
void EggAttributes::clear_color(void);

Description:

clearNormal
void EggAttributes::clear_normal(void);

Description:

compareTo
int EggAttributes::compare_to(EggAttributes const &other) const;

Description: An ordering operator to compare two vertices for sorting order. This imposes an arbitrary ordering useful to identify unique vertices.

copyColor
void EggAttributes::copy_color(EggAttributes const &other);

Description: Sets this color to be the same as the other's, include morphs. If the other has no color, this clears the color.

copyNormal
void EggAttributes::copy_normal(EggAttributes const &other);

Description: Sets this normal to be the same as the other's, include morphs. If the other has no normal, this clears the normal.

getClassType
static TypeHandle EggAttributes::get_class_type(void);

Undocumented function.

getColor
LVecBase4f EggAttributes::get_color(void) const;

Description: Returns the color set on this particular attribute. If there is no color set, returns white.

getNormal
LVector3d const &EggAttributes::get_normal(void) const;

Description:

hasColor
bool EggAttributes::has_color(void) const;

Description:

hasNormal
bool EggAttributes::has_normal(void) const;

Filename: eggAttributes.I Created by: drose (16Jan99)
PANDA 3D SOFTWARE Copyright (c) 2001 - 2004, Disney Enterprises, Inc. All rights reserved
All use of this software is subject to the terms of the Panda 3d Software license. You should have received a copy of this license along with this source code; you will also find a current copy of the license at http://etc.cmu.edu/panda3d/docs/license/ .
To contact the maintainers of this program write to panda3d-general@lists.sourceforge.net .
Description:

matchesColor
bool EggAttributes::matches_color(EggAttributes const &other) const;

Description: Returns true if this color matches that of the other EggAttributes object, include the morph list.

matchesNormal
bool EggAttributes::matches_normal(EggAttributes const &other) const;

Description: Returns true if this normal matches that of the other EggAttributes object, include the morph list.

operator =
EggAttributes &EggAttributes::operator =(EggAttributes const &copy);

Description:

setColor
void EggAttributes::set_color(LVecBase4f const &Color);

Description:

setNormal
void EggAttributes::set_normal(LVector3d const &normal);

Description:

sortsLessThan
bool EggAttributes::sorts_less_than(EggAttributes const &other) const;

Description: An ordering operator to compare two vertices for sorting order. This imposes an arbitrary ordering useful to identify unique vertices.

transform
void EggAttributes::transform(LMatrix4d const &mat);

Description: Applies the indicated transformation matrix to the attributes.

write
void EggAttributes::write(ostream &out, int indent_level) const;

Description: Writes the attributes to the indicated output stream in Egg format.