1730992849
3 3
8 libp3egg 4 hhEq 11 panda3d.egg 
990
1005 11 EggUserData 0 260 1995 24 EggUserData::EggUserData 0 2 1 2 22
/**
 *
 */

/**
 *
 */
96
inline EggUserData::EggUserData(void);
inline EggUserData::EggUserData(EggUserData const &copy);

1006 10 operator = 0 4 1995 23 EggUserData::operator = 0 1 3 10
/**
 *
 */
61
inline void EggUserData::operator =(EggUserData const &copy);

1007 14 get_class_type 0 4 1995 27 EggUserData::get_class_type 0 1 4 0
52
static TypeHandle EggUserData::get_class_type(void);

1008 9 EggObject 0 260 1997 20 EggObject::EggObject 0 2 5 6 22
/**
 *
 */

/**
 *
 */
72
EggObject::EggObject(void);
EggObject::EggObject(EggObject const &copy);

1009 10 operator = 0 4 1997 21 EggObject::operator = 0 1 7 10
/**
 *
 */
50
void EggObject::operator =(EggObject const &copy);

1010 13 set_user_data 0 4 1997 24 EggObject::set_user_data 0 1 8 766
/**
 * 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.
 */
54
void EggObject::set_user_data(EggUserData *user_data);

1011 13 get_user_data 0 4 1997 24 EggObject::get_user_data 0 2 9 10 228
/**
 * Returns the user data pointer most recently stored on this object, or NULL
 * if nothing was previously stored.
 */

/**
 * Returns the user data pointer of the indicated type, if it exists, or NULL
 * if it does not.
 */
112
EggUserData *EggObject::get_user_data(void) const;
EggUserData *EggObject::get_user_data(TypeHandle type) const;

1012 13 has_user_data 0 4 1997 24 EggObject::has_user_data 0 2 11 12 223
/**
 * Returns true if a generic user data pointer has recently been set and not
 * yet cleared, false otherwise.
 */

/**
 * Returns true if the user data pointer of the indicated type has been set,
 * false otherwise.
 */
96
bool EggObject::has_user_data(void) const;
bool EggObject::has_user_data(TypeHandle type) const;

1013 15 clear_user_data 0 4 1997 26 EggObject::clear_user_data 0 2 13 14 123
/**
 * Removes *all* user data pointers from the node.
 */

/**
 * Removes the user data pointer of the indicated type.
 */
88
void EggObject::clear_user_data(void);
void EggObject::clear_user_data(TypeHandle type);

1014 14 get_class_type 0 4 1997 25 EggObject::get_class_type 0 1 15 0
50
static TypeHandle EggObject::get_class_type(void);

1015 19 upcast_to_EggObject 0 12 1998 35 EggNamedObject::upcast_to_EggObject 0 1 21 39
upcast from EggNamedObject to EggObject
53
EggObject *EggNamedObject::upcast_to_EggObject(void);

1016 26 downcast_to_EggNamedObject 0 12 1997 37 EggObject::downcast_to_EggNamedObject 0 0 41
downcast from EggObject to EggNamedObject
60
EggNamedObject *EggObject::downcast_to_EggNamedObject(void);

1017 17 upcast_to_Namable 0 12 1998 33 EggNamedObject::upcast_to_Namable 0 1 22 37
upcast from EggNamedObject to Namable
49
Namable *EggNamedObject::upcast_to_Namable(void);

1018 26 downcast_to_EggNamedObject 0 12 1999 35 Namable::downcast_to_EggNamedObject 0 0 39
downcast from Namable to EggNamedObject
58
EggNamedObject *Namable::downcast_to_EggNamedObject(void);

1019 14 EggNamedObject 0 260 1998 30 EggNamedObject::EggNamedObject 0 2 16 17 22
/**
 *
 */

/**
 *
 */
144
inline explicit EggNamedObject::EggNamedObject(std::string const &name = "");
inline EggNamedObject::EggNamedObject(EggNamedObject const &copy);

1020 10 operator = 0 4 1998 26 EggNamedObject::operator = 0 1 18 10
/**
 *
 */
67
inline void EggNamedObject::operator =(EggNamedObject const &copy);

1021 6 output 0 4 1998 22 EggNamedObject::output 0 1 19 10
/**
 *
 */
53
void EggNamedObject::output(std::ostream &out) const;

1022 14 get_class_type 0 4 1998 30 EggNamedObject::get_class_type 0 1 20 0
55
static TypeHandle EggNamedObject::get_class_type(void);

1023 15 ~EggNamedObject 0 516 1998 31 EggNamedObject::~EggNamedObject 0 0 0
38
EggNamedObject::~EggNamedObject(void);

1024 10 operator = 0 4 2000 19 EggNode::operator = 0 1 23 10
/**
 *
 */
53
inline void EggNode::operator =(EggNode const &copy);

1025 10 get_parent 0 4 2000 19 EggNode::get_parent 0 1 24 10
/**
 *
 */
53
inline EggGroupNode *EggNode::get_parent(void) const;

1026 9 get_depth 0 4 2000 18 EggNode::get_depth 0 1 25 76
/**
 * Returns the number of nodes above this node in the egg hierarchy.
 */
42
inline int EggNode::get_depth(void) const;

1027 17 is_under_instance 0 4 2000 26 EggNode::is_under_instance 0 1 26 123
/**
 * Returns true if there is an <Instance> node somewhere in the egg tree at or
 * above this node, false otherwise.
 */
51
inline bool EggNode::is_under_instance(void) const;

1028 18 is_under_transform 0 4 2000 27 EggNode::is_under_transform 0 1 27 124
/**
 * Returns true if there is a <Transform> entry somewhere in the egg tree at
 * or above this node, false otherwise.
 */
52
inline bool EggNode::is_under_transform(void) const;

1029 14 is_local_coord 0 4 2000 23 EggNode::is_local_coord 0 1 28 189
/**
 * Returns true if this node's vertices are not in the global coordinate
 * space.  This will be the case if there was an <Instance> node under a
 * transform at or above this node.
 */
48
inline bool EggNode::is_local_coord(void) const;

1030 12 EggGroupNode 0 260 2002 26 EggGroupNode::EggGroupNode 0 2 62 63 10
/**
 *
 */
120
explicit EggGroupNode::EggGroupNode(std::string const &name = "");
EggGroupNode::EggGroupNode(EggGroupNode const &copy);

1031 10 operator = 0 4 2002 24 EggGroupNode::operator = 0 1 64 10
/**
 *
 */
56
void EggGroupNode::operator =(EggGroupNode const &copy);

1032 5 empty 0 4 2002 19 EggGroupNode::empty 0 1 65 10
/**
 *
 */
37
bool EggGroupNode::empty(void) const;

1033 4 size 0 4 2002 18 EggGroupNode::size 0 1 66 10
/**
 *
 */
55
EggGroupNode::size_type EggGroupNode::size(void) const;

1034 5 clear 0 4 2002 19 EggGroupNode::clear 0 1 67 10
/**
 *
 */
31
void EggGroupNode::clear(void);

1035 15 get_first_child 0 4 2002 29 EggGroupNode::get_first_child 0 1 68 607
// This is an alternate way to traverse the list of children.  It is mainly
// provided for scripting code, which can't use the iterators defined above
// (they don't export through interrogate very well). These are, of course,
// non-thread-safe.

/**
 * Returns the first child in the group's list of children, or NULL if the
 * list of children is empty.  Can be used with get_next_child() to return the
 * complete list of children without using the iterator class; however, this
 * is non-thread-safe, and so is not recommended except for languages other
 * than C++ which cannot use the iterators.
 */
45
EggNode *EggGroupNode::get_first_child(void);

1036 14 get_next_child 0 4 2002 28 EggGroupNode::get_next_child 0 1 69 506
/**
 * Returns the next child in the group's list of children since the last call
 * to get_first_child() or get_next_child(), or NULL if the last child has
 * been returned.  Can be used with get_first_child() to return the complete
 * list of children without using the iterator class; however, this is non-
 * thread-safe, and so is not recommended except for languages other than C++
 * which cannot use the iterators.
 *
 * It is an error to call this without previously calling get_first_child().
 */
44
EggNode *EggGroupNode::get_next_child(void);

1037 12 get_children 0 4 2002 26 EggGroupNode::get_children 0 1 70 0
49
PyObject *EggGroupNode::get_children(void) const;

1038 9 add_child 0 4 2002 23 EggGroupNode::add_child 0 1 71 143
/**
 * Adds the indicated child to the group and returns it.  If the child node is
 * already a child of some other node, removes it first.
 */
48
EggNode *EggGroupNode::add_child(EggNode *node);

1039 12 remove_child 0 4 2002 26 EggGroupNode::remove_child 0 1 72 152
/**
 * Removes the indicated child node from the group and returns it.  If the
 * child was not already in the group, does nothing and returns NULL.
 */
63
PointerTo< EggNode > EggGroupNode::remove_child(EggNode *node);

1040 14 steal_children 0 4 2002 28 EggGroupNode::steal_children 0 1 73 171
/**
 * Moves all the children from the other node to this one.  This is especially
 * useful because the group node copy assignment operator does not copy
 * children.
 */
55
void EggGroupNode::steal_children(EggGroupNode &other);

1041 10 find_child 0 4 2002 24 EggGroupNode::find_child 0 1 74 169
/**
 * Returns the child of this node whose name is the indicated string, or NULL
 * if there is no child of this node by that name.  Does not search
 * recursively.
 */
65
EggNode *EggGroupNode::find_child(std::string const &name) const;

1042 22 has_absolute_pathnames 0 4 2002 36 EggGroupNode::has_absolute_pathnames 0 1 75 160
/**
 * Returns true if any nodes at this level and below include a reference to a
 * file via an absolute pathname, or false if all references are relative.
 */
54
bool EggGroupNode::has_absolute_pathnames(void) const;

1043 17 resolve_filenames 0 4 2002 31 EggGroupNode::resolve_filenames 0 1 76 207
/**
 * Walks the tree and attempts to resolve any filenames encountered.  This
 * looks up filenames along the specified search path; it does not
 * automatically search the model_path for missing files.
 */
68
void EggGroupNode::resolve_filenames(DSearchPath const &searchpath);

1044 15 force_filenames 0 4 2002 29 EggGroupNode::force_filenames 0 1 77 190
/**
 * Similar to resolve_filenames, but each non-absolute filename encountered is
 * arbitrarily taken to be in the indicated directory, whether or not the so-
 * named filename exists.
 */
62
void EggGroupNode::force_filenames(Filename const &directory);

1045 23 reverse_vertex_ordering 0 4 2002 37 EggGroupNode::reverse_vertex_ordering 0 1 78 136
/**
 * Reverses the vertex ordering of all polygons defined at this node and
 * below.  Does not change the surface normals, if any.
 */
49
void EggGroupNode::reverse_vertex_ordering(void);

1046 24 recompute_vertex_normals 0 4 2002 38 EggGroupNode::recompute_vertex_normals 0 1 79 711
/**
 * Recomputes all the vertex normals for polygon geometry at this group node
 * and below so that they accurately reflect the vertex positions.  A shared
 * edge between two polygons (even in different groups) is considered smooth
 * if the angle between the two edges is less than threshold degrees.
 *
 * This function also removes degenerate polygons that do not have enough
 * vertices to define a normal.  It does not affect normals for other kinds of
 * primitives like Nurbs or Points.
 *
 * This function does not remove or adjust vertices in the vertex pool; it
 * only adds new vertices with the correct normals.  Thus, it is a good idea
 * to call remove_unused_vertices() after calling this.
 */
98
void EggGroupNode::recompute_vertex_normals(double threshold, CoordinateSystem cs = ::CS_default);

1047 25 recompute_polygon_normals 0 4 2002 39 EggGroupNode::recompute_polygon_normals 0 1 80 672
/**
 * Recomputes all the polygon normals for polygon geometry at this group node
 * and below so that they accurately reflect the vertex positions.  Normals
 * are removed from the vertices and defined only on polygons, giving the
 * geometry a faceted appearance.
 *
 * This function also removes degenerate polygons that do not have enough
 * vertices to define a normal.  It does not affect normals for other kinds of
 * primitives like Nurbs or Points.
 *
 * This function does not remove or adjust vertices in the vertex pool; it
 * only adds new vertices with the normals removed.  Thus, it is a good idea
 * to call remove_unused_vertices() after calling this.
 */
81
void EggGroupNode::recompute_polygon_normals(CoordinateSystem cs = ::CS_default);

1048 13 strip_normals 0 4 2002 27 EggGroupNode::strip_normals 0 1 81 317
/**
 * Removes all normals from primitives, and the vertices they reference, at
 * this node and below.
 *
 * This function does not remove or adjust vertices in the vertex pool; it
 * only adds new vertices with the normal removed.  Thus, it is a good idea to
 * call remove_unused_vertices() after calling this.
 */
39
void EggGroupNode::strip_normals(void);

1049 26 recompute_tangent_binormal 0 4 2002 40 EggGroupNode::recompute_tangent_binormal 0 2 82 83 907
/**
 * This function recomputes the tangent and binormal for the named texture
 * coordinate set for all vertices at this level and below.  Use the empty
 * string for the default texture coordinate set.
 *
 * It is necessary for each vertex to already have a normal (or at least a
 * polygon normal), as well as a texture coordinate in the named texture
 * coordinate set, before calling this function.  You might precede this with
 * recompute_vertex_normals() to ensure that the normals exist.
 *
 * Like recompute_vertex_normals(), this function does not remove or adjust
 * vertices in the vertex pool; it only adds new vertices with the new
 * tangents and binormals computed.  Thus, it is a good idea to call
 * remove_unused_vertices() after calling this.
 */

/**
 * This function recomputes the tangent and binormal for the named texture
 * coordinate sets.  Returns true if anything was done.
 */
149
bool EggGroupNode::recompute_tangent_binormal(GlobPattern const &uv_name);
bool EggGroupNode::recompute_tangent_binormal(vector_string const &names);

1050 31 recompute_tangent_binormal_auto 0 4 2002 45 EggGroupNode::recompute_tangent_binormal_auto 0 1 84 160
/**
 * This function recomputes the tangent and binormal for any texture
 * coordinate set that affects a normal map.  Returns true if anything was
 * done.
 */
57
bool EggGroupNode::recompute_tangent_binormal_auto(void);

1051 20 triangulate_polygons 0 4 2002 34 EggGroupNode::triangulate_polygons 0 1 85 428
/**
 * Replace all higher-order polygons at this point in the scene graph and
 * below with triangles.  Returns the total number of new triangles produced,
 * less degenerate polygons removed.
 *
 * If flags contains T_polygon and T_convex, both concave and convex polygons
 * will be subdivided into triangles; with only T_polygon, only concave
 * polygons will be subdivided, and convex polygons will be largely unchanged.
 */
50
int EggGroupNode::triangulate_polygons(int flags);

1052 14 mesh_triangles 0 4 2002 28 EggGroupNode::mesh_triangles 0 1 86 84
/**
 * Combine triangles together into triangle strips, at this group and below.
 */
45
void EggGroupNode::mesh_triangles(int flags);

1053 21 make_point_primitives 0 4 2002 35 EggGroupNode::make_point_primitives 0 1 87 127
/**
 * Creates PointLight primitives to reference any otherwise unreferences
 * vertices discovered in this group or below.
 */
47
void EggGroupNode::make_point_primitives(void);

1054 12 rename_nodes 0 4 2002 26 EggGroupNode::rename_nodes 0 1 88 45
/**
 * Rename by stripping out the prefix
 */
73
int EggGroupNode::rename_nodes(vector_string strip_prefix, bool recurse);

1055 22 remove_unused_vertices 0 4 2002 36 EggGroupNode::remove_unused_vertices 0 1 89 692
/**
 * Removes all vertices from VertexPools within this group or below that are
 * not referenced by at least one primitive.  Also collapses together
 * equivalent vertices, and renumbers all vertices after the operation so
 * their indices are consecutive, beginning at zero.  Returns the total number
 * of vertices removed.
 *
 * Note that this operates on the VertexPools within this group level, without
 * respect to primitives that reference these vertices (unlike other functions
 * like strip_normals()).  It is therefore most useful to call this on the
 * EggData root, rather than on a subgroup within the hierarchy, since a
 * VertexPool may appear anywhere in the hierarchy.
 */
55
int EggGroupNode::remove_unused_vertices(bool recurse);

1056 25 remove_invalid_primitives 0 4 2002 39 EggGroupNode::remove_invalid_primitives 0 1 90 181
/**
 * Removes primitives at this level and below which appear to be degenerate;
 * e.g.  polygons with fewer than 3 vertices, etc.  Returns the number of
 * primitives removed.
 */
58
int EggGroupNode::remove_invalid_primitives(bool recurse);

1057 23 clear_connected_shading 0 4 2002 37 EggGroupNode::clear_connected_shading 0 1 91 319
/**
 * Resets the connected_shading information on all primitives at this node and
 * below, so that it may be accurately rederived by the next call to
 * get_connected_shading().
 *
 * It may be a good idea to call remove_unused_vertices() as well, to
 * establish the correct connectivity between common vertices.
 */
49
void EggGroupNode::clear_connected_shading(void);

1058 21 get_connected_shading 0 4 2002 35 EggGroupNode::get_connected_shading 0 1 92 194
/**
 * Queries the connected_shading information on all primitives at this node
 * and below, to ensure that it has been completely filled in before we start
 * mucking around with vertices.
 */
47
void EggGroupNode::get_connected_shading(void);

1059 16 unify_attributes 0 4 2002 30 EggGroupNode::unify_attributes 0 1 93 1065
/**
 * Applies per-vertex normal and color to all vertices, if they are in fact
 * per-vertex (and different for each vertex), or moves them to the primitive
 * if they are all the same.
 *
 * After this call, either the primitive will have normals or its vertices
 * will, but not both.  Ditto for colors.
 *
 * If use_connected_shading is true, each polygon is considered in conjunction
 * with all connected polygons; otherwise, each polygon is considered
 * individually.
 *
 * If allow_per_primitive is false, S_per_face or S_overall will treated like
 * S_per_vertex: normals and colors will always be assigned to the vertices.
 * In this case, there will never be per-primitive colors or normals after
 * this call returns.  On the other hand, if allow_per_primitive is true, then
 * S_per_face means that normals and colors should be assigned to the
 * primitives, and removed from the vertices, as described above.
 *
 * This may create redundant vertices in the vertex pool, so it may be a good
 * idea to follow this up with remove_unused_vertices().
 */
104
void EggGroupNode::unify_attributes(bool use_connected_shading, bool allow_per_primitive, bool recurse);

1060 20 apply_last_attribute 0 4 2002 34 EggGroupNode::apply_last_attribute 0 1 94 424
/**
 * Sets the last vertex of the triangle (or each component) to the primitive
 * normal and/or color, if the primitive is flat-shaded.  This reflects the
 * OpenGL convention of storing flat-shaded properties on the last vertex,
 * although it is not usually a convention in Egg.
 *
 * This may create redundant vertices in the vertex pool, so it may be a good
 * idea to follow this up with remove_unused_vertices().
 */
54
void EggGroupNode::apply_last_attribute(bool recurse);

1061 21 apply_first_attribute 0 4 2002 35 EggGroupNode::apply_first_attribute 0 1 95 427
/**
 * Sets the first vertex of the triangle (or each component) to the primitive
 * normal and/or color, if the primitive is flat-shaded.  This reflects the
 * DirectX convention of storing flat-shaded properties on the first vertex,
 * although it is not usually a convention in Egg.
 *
 * This may create redundant vertices in the vertex pool, so it may be a good
 * idea to follow this up with remove_unused_vertices().
 */
55
void EggGroupNode::apply_first_attribute(bool recurse);

1062 25 post_apply_flat_attribute 0 4 2002 39 EggGroupNode::post_apply_flat_attribute 0 1 96 217
/**
 * Intended as a followup to apply_last_attribute(), this also sets an
 * attribute on the first vertices of the primitive, if they don't already
 * have an attribute set, just so they end up with *something*.
 */
59
void EggGroupNode::post_apply_flat_attribute(bool recurse);

1063 14 has_primitives 0 6 2002 28 EggGroupNode::has_primitives 0 1 97 124
/**
 * Returns true if there are any primitives (e.g.  polygons) defined within
 * this group or below, false otherwise.
 */
54
virtual bool EggGroupNode::has_primitives(void) const;

1064 20 joint_has_primitives 0 6 2002 34 EggGroupNode::joint_has_primitives 0 1 98 154
/**
 * Returns true if there are any primitives (e.g.  polygons) defined within
 * this group or below, but the search does not include nested joints.
 */
60
virtual bool EggGroupNode::joint_has_primitives(void) const;

1065 11 has_normals 0 6 2002 25 EggGroupNode::has_normals 0 1 99 164
/**
 * Returns true if any of the primitives (e.g.  polygons) defined within this
 * group or below have either face or vertex normals defined, false otherwise.
 */
51
virtual bool EggGroupNode::has_normals(void) const;

1066 8 is_right 0 4 2002 22 EggGroupNode::is_right 0 1 100 60
/**
 * Returns true if the 2-d v1 is to the right of v2.
 */
84
static inline bool EggGroupNode::is_right(LVector2d const &v1, LVector2d const &v2);

1067 14 get_class_type 0 4 2002 28 EggGroupNode::get_class_type 0 1 101 0
53
static TypeHandle EggGroupNode::get_class_type(void);

1068 16 get_vertex_frame 0 4 2000 25 EggNode::get_vertex_frame 0 1 29 711
/**
 * Returns the coordinate frame of the vertices referenced by primitives at or
 * under this node.  This is not the same as get_node_frame().
 *
 * Generally, vertices in an egg file are stored in the global coordinate
 * space, regardless of the transforms defined at each node.  Thus,
 * get_vertex_frame() will usually return the identity transform (global
 * coordinate space).  However, primitives under an <Instance> entry reference
 * their vertices in the coordinate system under effect at the time of the
 * <Instance>.  Thus, nodes under an <Instance> entry may return this non-
 * identity matrix.
 *
 * Specifically, this may return a non-identity matrix only if
 * is_local_coord() is true.
 */
62
inline LMatrix4d const &EggNode::get_vertex_frame(void) const;

1069 14 get_node_frame 0 4 2000 23 EggNode::get_node_frame 0 1 30 133
/**
 * Returns the coordinate frame of the node itself.  This is simply the net
 * product of all transformations up to the root.
 */
60
inline LMatrix4d const &EggNode::get_node_frame(void) const;

1070 20 get_vertex_frame_inv 0 4 2000 29 EggNode::get_vertex_frame_inv 0 1 31 104
/**
 * Returns the inverse of the matrix returned by get_vertex_frame().  See
 * get_vertex_frame().
 */
66
inline LMatrix4d const &EggNode::get_vertex_frame_inv(void) const;

1071 18 get_node_frame_inv 0 4 2000 27 EggNode::get_node_frame_inv 0 1 32 100
/**
 * Returns the inverse of the matrix returned by get_node_frame().  See
 * get_node_frame().
 */
64
inline LMatrix4d const &EggNode::get_node_frame_inv(void) const;

1072 18 get_vertex_to_node 0 4 2000 27 EggNode::get_vertex_to_node 0 1 33 231
/**
 * Returns the transformation matrix suitable for converting the vertices as
 * read from the egg file into the coordinate space of the node.  This is the
 * same thing as:
 *
 * get_vertex_frame() * get_node_frame_inv()
 *
 */
64
inline LMatrix4d const &EggNode::get_vertex_to_node(void) const;

1073 18 get_node_to_vertex 0 4 2000 27 EggNode::get_node_to_vertex 0 1 34 263
/**
 * Returns the transformation matrix suitable for converting vertices in the
 * coordinate space of the node to the appropriate coordinate space for
 * storing in the egg file.  This is the same thing as:
 *
 * get_node_frame() * get_vertex_frame_inv()
 *
 */
64
inline LMatrix4d const &EggNode::get_node_to_vertex(void) const;

1074 20 get_vertex_frame_ptr 0 4 2000 29 EggNode::get_vertex_frame_ptr 0 1 35 120
/**
 * Returns either a NULL pointer or a unique pointer shared by nodes with the
 * same get_vertex_frame() matrix.
 */
66
inline LMatrix4d const *EggNode::get_vertex_frame_ptr(void) const;

1075 18 get_node_frame_ptr 0 4 2000 27 EggNode::get_node_frame_ptr 0 1 36 118
/**
 * Returns either a NULL pointer or a unique pointer shared by nodes with the
 * same get_node_frame() matrix.
 */
64
inline LMatrix4d const *EggNode::get_node_frame_ptr(void) const;

1076 24 get_vertex_frame_inv_ptr 0 4 2000 33 EggNode::get_vertex_frame_inv_ptr 0 1 37 124
/**
 * Returns either a NULL pointer or a unique pointer shared by nodes with the
 * same get_vertex_frame_inv() matrix.
 */
70
inline LMatrix4d const *EggNode::get_vertex_frame_inv_ptr(void) const;

1077 22 get_node_frame_inv_ptr 0 4 2000 31 EggNode::get_node_frame_inv_ptr 0 1 38 122
/**
 * Returns either a NULL pointer or a unique pointer shared by nodes with the
 * same get_node_frame_inv() matrix.
 */
68
inline LMatrix4d const *EggNode::get_node_frame_inv_ptr(void) const;

1078 22 get_vertex_to_node_ptr 0 4 2000 31 EggNode::get_vertex_to_node_ptr 0 1 39 122
/**
 * Returns either a NULL pointer or a unique pointer shared by nodes with the
 * same get_vertex_to_node() matrix.
 */
68
inline LMatrix4d const *EggNode::get_vertex_to_node_ptr(void) const;

1079 22 get_node_to_vertex_ptr 0 4 2000 31 EggNode::get_node_to_vertex_ptr 0 1 40 122
/**
 * Returns either a NULL pointer or a unique pointer shared by nodes with the
 * same get_node_to_vertex() matrix.
 */
68
inline LMatrix4d const *EggNode::get_node_to_vertex_ptr(void) const;

1080 9 transform 0 4 2000 18 EggNode::transform 0 1 41 90
/**
 * Applies the indicated transformation to the node and all of its
 * descendants.
 */
53
inline void EggNode::transform(LMatrix4d const &mat);

1081 23 transform_vertices_only 0 4 2000 32 EggNode::transform_vertices_only 0 1 42 213
/**
 * Applies the indicated transformation only to vertices that appear in global
 * space within vertex pools at this node and below.  Joints and other
 * transforms are not affected, nor are local vertices.
 */
67
inline void EggNode::transform_vertices_only(LMatrix4d const &mat);

1082 18 flatten_transforms 0 4 2000 27 EggNode::flatten_transforms 0 1 43 382
/**
 * Removes any transform and instance records from this node in the scene
 * graph and below.  If an instance node is encountered, removes the instance
 * and applies the transform to its vertices, duplicating vertices if
 * necessary.
 *
 * Since this function may result in duplicated vertices, it may be a good
 * idea to call remove_unused_vertices() after calling this.
 */
46
inline void EggNode::flatten_transforms(void);

1083 13 apply_texmats 0 4 2000 22 EggNode::apply_texmats 0 1 44 159
/**
 * Applies the texture matrices to the UV's of the vertices that reference
 * them, and then removes the texture matrices from the textures themselves.
 */
34
void EggNode::apply_texmats(void);

1084 11 rename_node 0 4 2000 20 EggNode::rename_node 0 1 45 45
/**
 * Rename by stripping out the prefix
 */
53
int EggNode::rename_node(vector_string strip_prefix);

1085 8 is_joint 0 6 2000 17 EggNode::is_joint 0 1 46 229
/**
 * Returns true if this particular node represents a <Joint> entry or not.
 * This is a handy thing to know since Joints are sorted to the end of their
 * sibling list when writing an egg file.  See EggGroupNode::write().
 */
43
virtual bool EggNode::is_joint(void) const;

1086 14 is_anim_matrix 0 6 2000 23 EggNode::is_anim_matrix 0 1 47 109
/**
 * Returns true if this node represents a table of animation transformation
 * data, false otherwise.
 */
49
virtual bool EggNode::is_anim_matrix(void) const;

1087 20 determine_alpha_mode 0 6 2000 29 EggNode::determine_alpha_mode 0 1 48 266
/**
 * Walks back up the hierarchy, looking for an EggGroup or EggPrimitive or
 * some such object at this level or above this node that has an alpha_mode
 * other than AM_unspecified.  Returns a valid EggRenderMode pointer if one is
 * found, or NULL otherwise.
 */
59
virtual EggRenderMode *EggNode::determine_alpha_mode(void);

1088 26 determine_depth_write_mode 0 6 2000 35 EggNode::determine_depth_write_mode 0 1 49 272
/**
 * Walks back up the hierarchy, looking for an EggGroup or EggPrimitive or
 * some such object at this level or above this node that has a
 * depth_write_mode other than DWM_unspecified.  Returns a valid EggRenderMode
 * pointer if one is found, or NULL otherwise.
 */
65
virtual EggRenderMode *EggNode::determine_depth_write_mode(void);

1089 25 determine_depth_test_mode 0 6 2000 34 EggNode::determine_depth_test_mode 0 1 50 271
/**
 * Walks back up the hierarchy, looking for an EggGroup or EggPrimitive or
 * some such object at this level or above this node that has a
 * depth_test_mode other than DTM_unspecified.  Returns a valid EggRenderMode
 * pointer if one is found, or NULL otherwise.
 */
64
virtual EggRenderMode *EggNode::determine_depth_test_mode(void);

1090 25 determine_visibility_mode 0 6 2000 34 EggNode::determine_visibility_mode 0 1 51 270
/**
 * Walks back up the hierarchy, looking for an EggGroup or EggPrimitive or
 * some such object at this level or above this node that has a
 * visibility_mode other than VM_unspecified.  Returns a valid EggRenderMode
 * pointer if one is found, or NULL otherwise.
 */
64
virtual EggRenderMode *EggNode::determine_visibility_mode(void);

1091 22 determine_depth_offset 0 6 2000 31 EggNode::determine_depth_offset 0 1 52 251
/**
 * Walks back up the hierarchy, looking for an EggGroup or EggPrimitive or
 * some such object at this level or above this node that has a depth_offset
 * specified.  Returns a valid EggRenderMode pointer if one is found, or NULL
 * otherwise.
 */
61
virtual EggRenderMode *EggNode::determine_depth_offset(void);

1092 20 determine_draw_order 0 6 2000 29 EggNode::determine_draw_order 0 1 53 249
/**
 * Walks back up the hierarchy, looking for an EggGroup or EggPrimitive or
 * some such object at this level or above this node that has a draw_order
 * specified.  Returns a valid EggRenderMode pointer if one is found, or NULL
 * otherwise.
 */
59
virtual EggRenderMode *EggNode::determine_draw_order(void);

1093 13 determine_bin 0 6 2000 22 EggNode::determine_bin 0 1 54 238
/**
 * Walks back up the hierarchy, looking for an EggGroup or EggPrimitive or
 * some such object at this level or above this node that has a bin specified.
 * Returns a valid EggRenderMode pointer if one is found, or NULL otherwise.
 */
52
virtual EggRenderMode *EggNode::determine_bin(void);

1094 17 determine_indexed 0 6 2000 26 EggNode::determine_indexed 0 1 55 321
/**
 * Walks back up the hierarchy, looking for an EggGroup at this level or above
 * that has the "indexed" scalar set.  Returns the value of the indexed scalar
 * if it is found, or false if it is not.
 *
 * In other words, returns true if the "indexed" flag is in effect for the
 * indicated node, false otherwise.
 */
46
virtual bool EggNode::determine_indexed(void);

1095 15 determine_decal 0 6 2000 24 EggNode::determine_decal 0 1 56 311
/**
 * Walks back up the hierarchy, looking for an EggGroup at this level or above
 * that has the "decal" flag set.  Returns the value of the decal flag if it
 * is found, or false if it is not.
 *
 * In other words, returns true if the "decal" flag is in effect for the
 * indicated node, false otherwise.
 */
44
virtual bool EggNode::determine_decal(void);

1096 5 write 0 6 2000 14 EggNode::write 0 1 57 0
75
virtual void EggNode::write(std::ostream &out, int indent_level) const = 0;

1097 9 parse_egg 0 4 2000 18 EggNode::parse_egg 0 1 58 296
/**
 * Parses the egg syntax given in the indicate string as if it had been read
 * from the egg file within this object's definition.  Updates the object
 * accordingly.  Returns true if successful, false if there was some parse
 * error or if the object does not support this functionality.
 */
55
bool EggNode::parse_egg(std::string const &egg_syntax);

1098 20 test_under_integrity 0 4 2000 29 EggNode::test_under_integrity 0 1 59 0
47
void EggNode::test_under_integrity(void) const;

1099 10 __reduce__ 0 4 2000 19 EggNode::__reduce__ 0 1 60 0
42
PyObject *EggNode::__reduce__(void) const;

1100 14 get_class_type 0 4 2000 23 EggNode::get_class_type 0 1 61 0
48
static TypeHandle EggNode::get_class_type(void);

1101 8 ~EggNode 0 516 2000 17 EggNode::~EggNode 0 0 0
24
EggNode::~EggNode(void);

1102 10 operator = 0 4 2008 23 EggAnimData::operator = 0 1 102 10
/**
 *
 */
61
inline void EggAnimData::operator =(EggAnimData const &copy);

1103 7 set_fps 0 4 2008 20 EggAnimData::set_fps 0 1 103 10
/**
 *
 */
46
inline void EggAnimData::set_fps(double type);

1104 9 clear_fps 0 4 2008 22 EggAnimData::clear_fps 0 1 104 10
/**
 *
 */
41
inline void EggAnimData::clear_fps(void);

1105 7 has_fps 0 4 2008 20 EggAnimData::has_fps 0 1 105 10
/**
 *
 */
45
inline bool EggAnimData::has_fps(void) const;

1106 7 get_fps 0 4 2008 20 EggAnimData::get_fps 0 1 106 56
/**
 * This is only valid if has_fps() returns true.
 */
47
inline double EggAnimData::get_fps(void) const;

1107 10 clear_data 0 4 2008 23 EggAnimData::clear_data 0 1 107 50
/**
 * Removes all data and empties the table.
 */
42
inline void EggAnimData::clear_data(void);

1108 8 add_data 0 4 2008 21 EggAnimData::add_data 0 1 108 46
/**
 * Adds a single element to the table.
 */
48
inline void EggAnimData::add_data(double value);

1109 8 get_size 0 4 2008 21 EggAnimData::get_size 0 1 109 55
/**
 * Returns the number of elements in the table.
 */
45
inline int EggAnimData::get_size(void) const;

1110 8 quantize 0 4 2008 21 EggAnimData::quantize 0 1 110 79
/**
 * Rounds each element of the table to the nearest multiple of quantum.
 */
43
void EggAnimData::quantize(double quantum);

1111 14 get_class_type 0 4 2008 27 EggAnimData::get_class_type 0 1 111 0
52
static TypeHandle EggAnimData::get_class_type(void);

1112 12 ~EggAnimData 0 516 2008 25 EggAnimData::~EggAnimData 0 0 0
32
EggAnimData::~EggAnimData(void);

1113 14 EggAnimPreload 0 260 2009 30 EggAnimPreload::EggAnimPreload 0 2 112 113 22
/**
 *
 */

/**
 *
 */
144
inline explicit EggAnimPreload::EggAnimPreload(std::string const &name = "");
inline EggAnimPreload::EggAnimPreload(EggAnimPreload const &copy);

1114 10 operator = 0 4 2009 26 EggAnimPreload::operator = 0 1 114 10
/**
 *
 */
67
inline void EggAnimPreload::operator =(EggAnimPreload const &copy);

1115 7 set_fps 0 4 2009 23 EggAnimPreload::set_fps 0 1 115 10
/**
 *
 */
48
inline void EggAnimPreload::set_fps(double fps);

1116 9 clear_fps 0 4 2009 25 EggAnimPreload::clear_fps 0 1 116 10
/**
 *
 */
44
inline void EggAnimPreload::clear_fps(void);

1117 7 has_fps 0 4 2009 23 EggAnimPreload::has_fps 0 1 117 10
/**
 *
 */
48
inline bool EggAnimPreload::has_fps(void) const;

1118 7 get_fps 0 4 2009 23 EggAnimPreload::get_fps 0 1 118 56
/**
 * This is only valid if has_fps() returns true.
 */
50
inline double EggAnimPreload::get_fps(void) const;

1119 14 set_num_frames 0 4 2009 30 EggAnimPreload::set_num_frames 0 1 119 10
/**
 *
 */
59
inline void EggAnimPreload::set_num_frames(int num_frames);

1120 16 clear_num_frames 0 4 2009 32 EggAnimPreload::clear_num_frames 0 1 120 10
/**
 *
 */
51
inline void EggAnimPreload::clear_num_frames(void);

1121 14 has_num_frames 0 4 2009 30 EggAnimPreload::has_num_frames 0 1 121 10
/**
 *
 */
55
inline bool EggAnimPreload::has_num_frames(void) const;

1122 14 get_num_frames 0 4 2009 30 EggAnimPreload::get_num_frames 0 1 122 63
/**
 * This is only valid if has_num_frames() returns true.
 */
54
inline int EggAnimPreload::get_num_frames(void) const;

1123 14 get_class_type 0 4 2009 30 EggAnimPreload::get_class_type 0 1 123 0
55
static TypeHandle EggAnimPreload::get_class_type(void);

1124 15 ~EggAnimPreload 0 516 2009 31 EggAnimPreload::~EggAnimPreload 0 0 0
38
EggAnimPreload::~EggAnimPreload(void);

1125 20 upcast_to_MemoryBase 0 12 2011 35 EggAttributes::upcast_to_MemoryBase 0 1 144 39
upcast from EggAttributes to MemoryBase
54
MemoryBase *EggAttributes::upcast_to_MemoryBase(void);

1126 25 downcast_to_EggAttributes 0 12 2012 37 MemoryBase::downcast_to_EggAttributes 0 0 41
downcast from MemoryBase to EggAttributes
59
EggAttributes *MemoryBase::downcast_to_EggAttributes(void);

1127 13 EggAttributes 0 260 2011 28 EggAttributes::EggAttributes 0 2 124 125 22
/**
 *
 */

/**
 *
 */
92
EggAttributes::EggAttributes(void);
EggAttributes::EggAttributes(EggAttributes const &copy);

1128 10 operator = 0 4 2011 25 EggAttributes::operator = 0 1 126 10
/**
 *
 */
58
void EggAttributes::operator =(EggAttributes const &copy);

1129 14 ~EggAttributes 0 518 2011 29 EggAttributes::~EggAttributes 0 0 10
/**
 *
 */
44
virtual EggAttributes::~EggAttributes(void);

1130 10 has_normal 0 4 2011 25 EggAttributes::has_normal 0 1 127 10
/**
 *
 */
50
inline bool EggAttributes::has_normal(void) const;

1131 10 get_normal 0 4 2011 25 EggAttributes::get_normal 0 1 128 10
/**
 *
 */
61
inline LNormald const &EggAttributes::get_normal(void) const;

1132 10 set_normal 0 4 2011 25 EggAttributes::set_normal 0 1 129 10
/**
 *
 */
62
inline void EggAttributes::set_normal(LNormald const &normal);

1133 12 clear_normal 0 4 2011 27 EggAttributes::clear_normal 0 1 130 10
/**
 *
 */
46
inline void EggAttributes::clear_normal(void);

1134 14 matches_normal 0 4 2011 29 EggAttributes::matches_normal 0 1 131 113
/**
 * Returns true if this normal matches that of the other EggAttributes object,
 * include the morph list.
 */
76
inline bool EggAttributes::matches_normal(EggAttributes const &other) const;

1135 11 copy_normal 0 4 2011 26 EggAttributes::copy_normal 0 1 132 130
/**
 * Sets this normal to be the same as the other's, include morphs.  If the
 * other has no normal, this clears the normal.
 */
67
inline void EggAttributes::copy_normal(EggAttributes const &other);

1136 9 has_color 0 4 2011 24 EggAttributes::has_color 0 1 133 10
/**
 *
 */
49
inline bool EggAttributes::has_color(void) const;

1137 9 get_color 0 4 2011 24 EggAttributes::get_color 0 1 134 107
/**
 * Returns the color set on this particular attribute.  If there is no color
 * set, returns white.
 */
51
inline LColor EggAttributes::get_color(void) const;

1138 9 set_color 0 4 2011 24 EggAttributes::set_color 0 1 135 10
/**
 *
 */
58
inline void EggAttributes::set_color(LColor const &Color);

1139 11 clear_color 0 4 2011 26 EggAttributes::clear_color 0 1 136 10
/**
 *
 */
45
inline void EggAttributes::clear_color(void);

1140 13 matches_color 0 4 2011 28 EggAttributes::matches_color 0 1 137 112
/**
 * Returns true if this color matches that of the other EggAttributes object,
 * include the morph list.
 */
75
inline bool EggAttributes::matches_color(EggAttributes const &other) const;

1141 10 copy_color 0 4 2011 25 EggAttributes::copy_color 0 1 138 127
/**
 * Sets this color to be the same as the other's, include morphs.  If the
 * other has no color, this clears the color.
 */
66
inline void EggAttributes::copy_color(EggAttributes const &other);

1142 5 write 0 4 2011 20 EggAttributes::write 0 1 139 78
/**
 * Writes the attributes to the indicated output stream in Egg format.
 */
69
void EggAttributes::write(std::ostream &out, int indent_level) const;

1143 15 sorts_less_than 0 4 2011 30 EggAttributes::sorts_less_than 0 1 140 149
/**
 * An ordering operator to compare two vertices for sorting order.  This
 * imposes an arbitrary ordering useful to identify unique vertices.
 */
77
inline bool EggAttributes::sorts_less_than(EggAttributes const &other) const;

1144 10 compare_to 0 4 2011 25 EggAttributes::compare_to 0 1 141 149
/**
 * An ordering operator to compare two vertices for sorting order.  This
 * imposes an arbitrary ordering useful to identify unique vertices.
 */
64
int EggAttributes::compare_to(EggAttributes const &other) const;

1145 9 transform 0 4 2011 24 EggAttributes::transform 0 1 142 73
/**
 * Applies the indicated transformation matrix to the attributes.
 */
52
void EggAttributes::transform(LMatrix4d const &mat);

1146 12 get_dnormals 0 20 2011 27 EggAttributes::get_dnormals 0 0 55
getter for EggMorphNormalList EggAttributes::_dnormals;
59
EggMorphNormalList EggAttributes::get_dnormals(void) const;

1147 10 get_drgbas 0 20 2011 25 EggAttributes::get_drgbas 0 0 52
getter for EggMorphColorList EggAttributes::_drgbas;
56
EggMorphColorList EggAttributes::get_drgbas(void) const;

1148 14 get_class_type 0 4 2011 29 EggAttributes::get_class_type 0 1 143 0
54
static TypeHandle EggAttributes::get_class_type(void);

1149 11 EggVertexUV 0 260 2017 24 EggVertexUV::EggVertexUV 0 3 145 146 147 34
/**
 *
 */

/**
 *
 */

/**
 *
 */
216
explicit EggVertexUV::EggVertexUV(std::string const &name, LTexCoordd const &uv);
explicit EggVertexUV::EggVertexUV(std::string const &name, LTexCoord3d const &uvw);
EggVertexUV::EggVertexUV(EggVertexUV const &copy);

1150 10 operator = 0 4 2017 23 EggVertexUV::operator = 0 1 148 10
/**
 *
 */
54
void EggVertexUV::operator =(EggVertexUV const &copy);

1151 11 filter_name 0 4 2017 24 EggVertexUV::filter_name 0 1 149 227
/**
 * Returns the actual name that should be set for a given name string.
 * Usually this is the same string that is input, but for historical reasons
 * the texture coordinate name "default" is mapped to the empty string.
 */
76
static inline std::string EggVertexUV::filter_name(std::string const &name);

1152 8 set_name 0 4 2017 21 EggVertexUV::set_name 0 1 150 10
/**
 *
 */
59
inline void EggVertexUV::set_name(std::string const &name);

1153 18 get_num_dimensions 0 4 2017 31 EggVertexUV::get_num_dimensions 0 1 151 150
/**
 * Returns the number of components of the texture coordinate set.  This is
 * either 2 (the normal case) or 3 (for a 3-d texture coordinate).
 */
55
inline int EggVertexUV::get_num_dimensions(void) const;

1154 5 has_w 0 4 2017 18 EggVertexUV::has_w 0 1 152 131
/**
 * Returns true if the texture coordinate has a third, w component, false if
 * it is just a normal 2-d texture coordinate.
 */
43
inline bool EggVertexUV::has_w(void) const;

1155 6 get_uv 0 4 2017 19 EggVertexUV::get_uv 0 1 153 77
/**
 * Returns the texture coordinate pair, if get_num_dimensions() is 2.
 */
50
inline LTexCoordd EggVertexUV::get_uv(void) const;

1156 7 get_uvw 0 4 2017 20 EggVertexUV::get_uvw 0 1 154 181
/**
 * Returns the texture coordinate triple, if get_num_dimensions() is 3.  This
 * is also legal to call if get_num_dimensions() is 2 (but the last dimension
 * will be zero).
 */
59
inline LTexCoord3d const &EggVertexUV::get_uvw(void) const;

1157 6 set_uv 0 4 2017 19 EggVertexUV::set_uv 0 1 155 133
/**
 * Sets the texture coordinate pair.  This makes the texture coordinate a 2-d
 * texture coordinate, which is the usual case.
 */
60
inline void EggVertexUV::set_uv(LTexCoordd const &texCoord);

1158 7 set_uvw 0 4 2017 20 EggVertexUV::set_uvw 0 1 156 110
/**
 * Sets the texture coordinate triple.  This makes the texture coordinate a
 * 3-d texture coordinate.
 */
62
inline void EggVertexUV::set_uvw(LTexCoord3d const &texCoord);

1159 11 has_tangent 0 4 2017 24 EggVertexUV::has_tangent 0 1 157 10
/**
 *
 */
49
inline bool EggVertexUV::has_tangent(void) const;

1160 12 has_tangent4 0 4 2017 25 EggVertexUV::has_tangent4 0 1 158 10
/**
 *
 */
50
inline bool EggVertexUV::has_tangent4(void) const;

1161 11 get_tangent 0 4 2017 24 EggVertexUV::get_tangent 0 1 159 10
/**
 *
 */
60
inline LNormald const &EggVertexUV::get_tangent(void) const;

1162 12 get_tangent4 0 4 2017 25 EggVertexUV::get_tangent4 0 1 160 10
/**
 *
 */
56
inline LVecBase4d EggVertexUV::get_tangent4(void) const;

1163 11 set_tangent 0 4 2017 24 EggVertexUV::set_tangent 0 1 161 10
/**
 *
 */
62
inline void EggVertexUV::set_tangent(LNormald const &tangent);

1164 12 set_tangent4 0 4 2017 25 EggVertexUV::set_tangent4 0 1 162 158
/**
 * Sets the tangent vector, along with a fourth parameter that is multiplied
 * with the result of cross(normal, tangent) when computing the binormal.
 */
65
inline void EggVertexUV::set_tangent4(LVecBase4d const &tangent);

1165 13 clear_tangent 0 4 2017 26 EggVertexUV::clear_tangent 0 1 163 10
/**
 *
 */
45
inline void EggVertexUV::clear_tangent(void);

1166 12 has_binormal 0 4 2017 25 EggVertexUV::has_binormal 0 1 164 10
/**
 *
 */
50
inline bool EggVertexUV::has_binormal(void) const;

1167 12 get_binormal 0 4 2017 25 EggVertexUV::get_binormal 0 1 165 10
/**
 *
 */
61
inline LNormald const &EggVertexUV::get_binormal(void) const;

1168 12 set_binormal 0 4 2017 25 EggVertexUV::set_binormal 0 1 166 10
/**
 *
 */
64
inline void EggVertexUV::set_binormal(LNormald const &binormal);

1169 14 clear_binormal 0 4 2017 27 EggVertexUV::clear_binormal 0 1 167 10
/**
 *
 */
46
inline void EggVertexUV::clear_binormal(void);

1170 12 make_average 0 4 2017 25 EggVertexUV::make_average 0 1 168 149
/**
 * Creates a new EggVertexUV that contains the averaged values of the two
 * given objects.  It is an error if they don't have the same name.
 */
111
static PointerTo< EggVertexUV > EggVertexUV::make_average(EggVertexUV const *first, EggVertexUV const *second);

1171 9 transform 0 4 2017 22 EggVertexUV::transform 0 1 169 149
/**
 * Applies the indicated transformation matrix to the UV's tangent and/or
 * binormal.  This does nothing if there is no tangent or binormal.
 */
50
void EggVertexUV::transform(LMatrix4d const &mat);

1172 5 write 0 4 2017 18 EggVertexUV::write 0 1 170 10
/**
 *
 */
67
void EggVertexUV::write(std::ostream &out, int indent_level) const;

1173 10 compare_to 0 4 2017 23 EggVertexUV::compare_to 0 1 171 149
/**
 * An ordering operator to compare two vertices for sorting order.  This
 * imposes an arbitrary ordering useful to identify unique vertices.
 */
60
int EggVertexUV::compare_to(EggVertexUV const &other) const;

1174 8 get_duvs 0 20 2017 21 EggVertexUV::get_duvs 0 0 51
getter for EggMorphTexCoordList EggVertexUV::_duvs;
55
EggMorphTexCoordList EggVertexUV::get_duvs(void) const;

1175 14 get_class_type 0 4 2017 27 EggVertexUV::get_class_type 0 1 172 0
52
static TypeHandle EggVertexUV::get_class_type(void);

1176 12 EggVertexAux 0 260 2020 26 EggVertexAux::EggVertexAux 0 2 173 174 22
/**
 *
 */

/**
 *
 */
138
explicit EggVertexAux::EggVertexAux(std::string const &name, LVecBase4d const &aux);
EggVertexAux::EggVertexAux(EggVertexAux const &copy);

1177 10 operator = 0 4 2020 24 EggVertexAux::operator = 0 1 175 10
/**
 *
 */
56
void EggVertexAux::operator =(EggVertexAux const &copy);

1178 8 set_name 0 4 2020 22 EggVertexAux::set_name 0 1 176 10
/**
 *
 */
60
inline void EggVertexAux::set_name(std::string const &name);

1179 7 get_aux 0 4 2020 21 EggVertexAux::get_aux 0 1 177 48
/**
 * Returns the auxiliary data quadruple.
 */
59
inline LVecBase4d const &EggVertexAux::get_aux(void) const;

1180 7 set_aux 0 4 2020 21 EggVertexAux::set_aux 0 1 178 45
/**
 * Sets the auxiliary data quadruple.
 */
57
inline void EggVertexAux::set_aux(LVecBase4d const &aux);

1181 12 make_average 0 4 2020 26 EggVertexAux::make_average 0 1 179 150
/**
 * Creates a new EggVertexAux that contains the averaged values of the two
 * given objects.  It is an error if they don't have the same name.
 */
115
static PointerTo< EggVertexAux > EggVertexAux::make_average(EggVertexAux const *first, EggVertexAux const *second);

1182 5 write 0 4 2020 19 EggVertexAux::write 0 1 180 10
/**
 *
 */
68
void EggVertexAux::write(std::ostream &out, int indent_level) const;

1183 10 compare_to 0 4 2020 24 EggVertexAux::compare_to 0 1 181 149
/**
 * An ordering operator to compare two vertices for sorting order.  This
 * imposes an arbitrary ordering useful to identify unique vertices.
 */
62
int EggVertexAux::compare_to(EggVertexAux const &other) const;

1184 14 get_class_type 0 4 2020 28 EggVertexAux::get_class_type 0 1 182 0
53
static TypeHandle EggVertexAux::get_class_type(void);

1185 19 upcast_to_EggObject 0 12 2021 30 EggVertex::upcast_to_EggObject 0 1 241 34
upcast from EggVertex to EggObject
48
EggObject *EggVertex::upcast_to_EggObject(void);

1186 21 downcast_to_EggVertex 0 12 1997 32 EggObject::downcast_to_EggVertex 0 0 36
downcast from EggObject to EggVertex
50
EggVertex *EggObject::downcast_to_EggVertex(void);

1187 23 upcast_to_EggAttributes 0 12 2021 34 EggVertex::upcast_to_EggAttributes 0 1 242 38
upcast from EggVertex to EggAttributes
56
EggAttributes *EggVertex::upcast_to_EggAttributes(void);

1188 21 downcast_to_EggVertex 0 12 2011 36 EggAttributes::downcast_to_EggVertex 0 0 40
downcast from EggAttributes to EggVertex
54
EggVertex *EggAttributes::downcast_to_EggVertex(void);

1189 9 EggVertex 0 260 2021 20 EggVertex::EggVertex 0 2 183 184 121
/**
 *
 */

/**
 * Copies all properties of the vertex except its vertex pool, index number,
 * and group membership.
 */
72
EggVertex::EggVertex(void);
EggVertex::EggVertex(EggVertex const &copy);

1190 10 operator = 0 4 2021 21 EggVertex::operator = 0 1 185 109
/**
 * Copies all properties of the vertex except its vertex pool, index number,
 * and group membership.
 */
50
void EggVertex::operator =(EggVertex const &copy);

1191 10 ~EggVertex 0 518 2021 21 EggVertex::~EggVertex 0 0 10
/**
 *
 */
36
virtual EggVertex::~EggVertex(void);

1192 8 get_pool 0 4 2021 19 EggVertex::get_pool 0 1 186 123
/**
 * Returns the vertex pool this vertex belongs in.  This may be NULL if the
 * vertex has not been added to a pool.
 */
54
inline EggVertexPool *EggVertex::get_pool(void) const;

1193 20 is_forward_reference 0 4 2021 31 EggVertex::is_forward_reference 0 1 187 386
/**
 * 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.
 */
56
inline bool EggVertex::is_forward_reference(void) const;

1194 7 set_pos 0 4 2021 18 EggVertex::set_pos 0 4 188 189 190 191 485
// The pos might have 1, 2, 3, or 4 dimensions.  That complicates things a
// bit.

/**
 * Sets the vertex position.  This variant sets the vertex to a one-
 * dimensional value.
 */

/**
 * Sets the vertex position.  This variant sets the vertex to a two-
 * dimensional value.
 */

/**
 * Sets the vertex position.  This variant sets the vertex to a three-
 * dimensional value.
 */

/**
 * Sets the vertex position.  This variant sets the vertex to a four-
 * dimensional value.
 */
202
inline void EggVertex::set_pos(double pos);
inline void EggVertex::set_pos(LPoint2d const &pos);
inline void EggVertex::set_pos(LPoint3d const &pos);
inline void EggVertex::set_pos(LPoint4d const &pos);

1195 8 set_pos4 0 4 2021 19 EggVertex::set_pos4 0 1 192 319
/**
 * 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.
 */
53
inline void EggVertex::set_pos4(LPoint4d const &pos);

1196 18 get_num_dimensions 0 4 2021 29 EggVertex::get_num_dimensions 0 1 193 487
// 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).

/**
 * Returns the number of dimensions the vertex uses.  Usually this will be 3,
 * but it may be 1, 2, 3, or 4.
 */
53
inline int EggVertex::get_num_dimensions(void) const;

1197 8 get_pos1 0 4 2021 19 EggVertex::get_pos1 0 1 194 108
/**
 * Only valid if get_num_dimensions() returns 1. Returns the position as a
 * one-dimensional value.
 */
46
inline double EggVertex::get_pos1(void) const;

1198 8 get_pos2 0 4 2021 19 EggVertex::get_pos2 0 1 195 108
/**
 * Only valid if get_num_dimensions() returns 2. Returns the position as a
 * two-dimensional value.
 */
48
inline LPoint2d EggVertex::get_pos2(void) const;

1199 8 get_pos3 0 4 2021 19 EggVertex::get_pos3 0 1 196 110
/**
 * Valid if get_num_dimensions() returns 3 or 4. Returns the position as a
 * three-dimensional value.
 */
48
inline LVertexd EggVertex::get_pos3(void) const;

1200 8 get_pos4 0 4 2021 19 EggVertex::get_pos4 0 1 197 309
/**
 * 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.
 */
48
inline LPoint4d EggVertex::get_pos4(void) const;

1201 6 has_uv 0 4 2021 17 EggVertex::has_uv 0 2 198 199 406
/**
 * 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.
 */

/**
 * Returns true if the vertex has the named UV coordinate pair, and the named
 * UV coordinate pair is 2-d, false otherwise.
 */
97
inline bool EggVertex::has_uv(void) const;
bool EggVertex::has_uv(std::string const &name) const;

1202 6 get_uv 0 4 2021 17 EggVertex::get_uv 0 2 200 201 436
/**
 * 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.
 */

/**
 * Returns the named UV coordinate pair on the vertex.  It is an error to call
 * this if has_uv(name) returned false.
 */
109
inline LTexCoordd EggVertex::get_uv(void) const;
LTexCoordd EggVertex::get_uv(std::string const &name) const;

1203 6 set_uv 0 4 2021 17 EggVertex::set_uv 0 2 202 203 453
/**
 * 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.
 */

/**
 * 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.
 */
135
inline void EggVertex::set_uv(LTexCoordd const &texCoord);
void EggVertex::set_uv(std::string const &name, LTexCoordd const &texCoord);

1204 8 clear_uv 0 4 2021 19 EggVertex::clear_uv 0 2 204 205 154
/**
 * Removes all UV coordinate pairs from the vertex.
 */

/**
 * Removes the named UV coordinate pair from the vertex, along with any UV
 * morphs.
 */
89
inline void EggVertex::clear_uv(void);
void EggVertex::clear_uv(std::string const &name);

1205 7 has_uvw 0 4 2021 18 EggVertex::has_uvw 0 1 206 136
/**
 * Returns true if the vertex has the named UV coordinate triple, and the
 * named UV coordinate triple is 3-d, false otherwise.
 */
55
bool EggVertex::has_uvw(std::string const &name) const;

1206 7 get_uvw 0 4 2021 18 EggVertex::get_uvw 0 1 207 129
/**
 * Returns the named UV coordinate triple on the vertex.  It is an error to
 * call this if has_uvw(name) returned false.
 */
69
LTexCoord3d const &EggVertex::get_uvw(std::string const &name) const;

1207 7 set_uvw 0 4 2021 18 EggVertex::set_uvw 0 1 208 186
/**
 * 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.
 */
78
void EggVertex::set_uvw(std::string const &name, LTexCoord3d const &texCoord);

1208 10 get_uv_obj 0 4 2021 21 EggVertex::get_uv_obj 0 1 209 298
/**
 * 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.
 */
72
EggVertexUV const *EggVertex::get_uv_obj(std::string const &name) const;

1209 13 modify_uv_obj 0 4 2021 24 EggVertex::modify_uv_obj 0 1 210 204
/**
 * 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.
 */
63
EggVertexUV *EggVertex::modify_uv_obj(std::string const &name);

1210 10 set_uv_obj 0 4 2021 21 EggVertex::set_uv_obj 0 1 211 163
/**
 * Sets the indicated EggVertexUV on the vertex.  This replaces any UV
 * coordinate pair with the same name already on the vertex, including UV
 * morphs.
 */
51
void EggVertex::set_uv_obj(EggVertexUV *vertex_uv);

1211 7 has_aux 0 4 2021 18 EggVertex::has_aux 0 2 212 213 157
/**
 * Returns true if the vertex has any auxiliary data, false otherwise.
 */

/**
 * Returns true if the vertex has the named auxiliary data quadruple.
 */
99
inline bool EggVertex::has_aux(void) const;
bool EggVertex::has_aux(std::string const &name) const;

1212 9 clear_aux 0 4 2021 20 EggVertex::clear_aux 0 2 214 215 116
/**
 * Removes all auxiliary data from the vertex.
 */

/**
 * Removes the named auxiliary data from the vertex.
 */
91
inline void EggVertex::clear_aux(void);
void EggVertex::clear_aux(std::string const &name);

1213 7 get_aux 0 4 2021 18 EggVertex::get_aux 0 1 216 133
/**
 * Returns the named auxiliary data quadruple on the vertex.  It is an error
 * to call this if has_aux(name) returned false.
 */
68
LVecBase4d const &EggVertex::get_aux(std::string const &name) const;

1214 7 set_aux 0 4 2021 18 EggVertex::set_aux 0 1 217 148
/**
 * Sets the indicated auxiliary data quadruple on the vertex.  This replaces
 * any auxiliary data with the same name already on the vertex.
 */
72
void EggVertex::set_aux(std::string const &name, LVecBase4d const &aux);

1215 11 get_aux_obj 0 4 2021 22 EggVertex::get_aux_obj 0 1 218 273
/**
 * Returns the named EggVertexAux object, which defines the auxiliary data for
 * this name.  This object might be shared between multiple vertices.  You
 * should not attempt to modify this object; instead, call modify_aux_object
 * to return a modifiable pointer.
 */
74
EggVertexAux const *EggVertex::get_aux_obj(std::string const &name) const;

1216 14 modify_aux_obj 0 4 2021 25 EggVertex::modify_aux_obj 0 1 219 178
/**
 * Returns a modifiable pointer to the named EggVertexAux object, which
 * defines the auxiliary data for this name.  Returns NULL if there is no such
 * named UV object.
 */
65
EggVertexAux *EggVertex::modify_aux_obj(std::string const &name);

1217 11 set_aux_obj 0 4 2021 22 EggVertex::set_aux_obj 0 1 220 136
/**
 * Sets the indicated EggVertexAux on the vertex.  This replaces any auxiliary
 * data with the same name already on the vertex.
 */
54
void EggVertex::set_aux_obj(EggVertexAux *vertex_aux);

1218 12 make_average 0 4 2021 23 EggVertex::make_average 0 1 221 284
/**
 * Creates a new vertex that lies in between the two given vertices.  The
 * attributes for the UV sets they have in common are averaged.
 *
 * Both vertices need to be either in no pool, or in the same pool.  In the
 * latter case, the new vertex will be placed in that pool.
 */
103
static PointerTo< EggVertex > EggVertex::make_average(EggVertex const *first, EggVertex const *second);

1219 9 get_index 0 4 2021 20 EggVertex::get_index 0 1 222 66
/**
 * Returns the index number of the vertex within its pool.
 */
44
inline int EggVertex::get_index(void) const;

1220 18 set_external_index 0 4 2021 29 EggVertex::set_external_index 0 1 223 486
/**
 * 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.
 */
62
inline void EggVertex::set_external_index(int external_index);

1221 18 get_external_index 0 4 2021 29 EggVertex::get_external_index 0 1 224 85
/**
 * Returns the number set by set_external_index().  See set_external_index().
 */
53
inline int EggVertex::get_external_index(void) const;

1222 19 set_external_index2 0 4 2021 30 EggVertex::set_external_index2 0 1 225 225
/**
 * Similar to set_external_index(), but this is a different number which may
 * be used for a different purpose by the calling code.  The egg library does
 * not assign any meaning to this number or use it in any way.
 */
64
inline void EggVertex::set_external_index2(int external_index2);

1223 19 get_external_index2 0 4 2021 30 EggVertex::get_external_index2 0 1 226 90
/**
 * Returns the number set by set_external_index2().  See
 * set_external_index2().
 */
54
inline int EggVertex::get_external_index2(void) const;

1224 5 write 0 4 2021 16 EggVertex::write 0 1 227 74
/**
 * Writes the vertex to the indicated output stream in Egg format.
 */
65
void EggVertex::write(std::ostream &out, int indent_level) const;

1225 15 sorts_less_than 0 4 2021 26 EggVertex::sorts_less_than 0 1 228 149
/**
 * An ordering operator to compare two vertices for sorting order.  This
 * imposes an arbitrary ordering useful to identify unique vertices.
 */
69
inline bool EggVertex::sorts_less_than(EggVertex const &other) const;

1226 10 compare_to 0 4 2021 21 EggVertex::compare_to 0 1 229 746
/**
 * 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.
 */
56
int EggVertex::compare_to(EggVertex const &other) const;

1227 19 get_num_local_coord 0 4 2021 30 EggVertex::get_num_local_coord 0 1 230 134
/**
 * Returns the number of primitives that own this vertex whose vertices are
 * interpreted to be in a local coordinate system.
 */
47
int EggVertex::get_num_local_coord(void) const;

1228 20 get_num_global_coord 0 4 2021 31 EggVertex::get_num_global_coord 0 1 231 131
/**
 * Returns the number of primitives that own this vertex whose vertices are
 * interpreted in the global coordinate system.
 */
48
int EggVertex::get_num_global_coord(void) const;

1229 9 transform 0 4 2021 20 EggVertex::transform 0 1 232 69
/**
 * Applies the indicated transformation matrix to the vertex.
 */
48
void EggVertex::transform(LMatrix4d const &mat);

1230 8 has_gref 0 4 2021 19 EggVertex::has_gref 0 1 233 90
/**
 * Returns true if the indicated group references this vertex, false
 * otherwise.
 */
54
bool EggVertex::has_gref(EggGroup const *group) const;

1231 15 copy_grefs_from 0 4 2021 26 EggVertex::copy_grefs_from 0 1 234 406
/**
 * 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.
 */
56
void EggVertex::copy_grefs_from(EggVertex const &other);

1232 11 clear_grefs 0 4 2021 22 EggVertex::clear_grefs 0 1 235 100
/**
 * Removes all group references from the vertex, so that it is not assigned to
 * any group.
 */
34
void EggVertex::clear_grefs(void);

1233 8 has_pref 0 4 2021 19 EggVertex::has_pref 0 1 236 116
/**
 * Returns the number of times the vertex appears in the indicated primitive,
 * or 0 if it does not appear.
 */
56
int EggVertex::has_pref(EggPrimitive const *prim) const;

1234 19 test_gref_integrity 0 4 2021 30 EggVertex::test_gref_integrity 0 1 237 0
48
void EggVertex::test_gref_integrity(void) const;

1235 19 test_pref_integrity 0 4 2021 30 EggVertex::test_pref_integrity 0 1 238 0
48
void EggVertex::test_pref_integrity(void) const;

1236 6 output 0 4 2021 17 EggVertex::output 0 1 239 10
/**
 *
 */
48
void EggVertex::output(std::ostream &out) const;

1237 9 get_dxyzs 0 20 2021 20 EggVertex::get_dxyzs 0 0 48
getter for EggMorphVertexList EggVertex::_dxyzs;
52
EggMorphVertexList EggVertex::get_dxyzs(void) const;

1238 14 get_class_type 0 4 2021 25 EggVertex::get_class_type 0 1 240 0
50
static TypeHandle EggVertex::get_class_type(void);

1239 13 EggVertexPool 0 260 2024 28 EggVertexPool::EggVertexPool 0 2 243 244 210
/**
 *
 */

/**
 * Copying a vertex pool is of questionable value, since it will copy all of
 * the vertices and assign new pointers to them all.  There will be no
 * polygons referring to the new vertices.
 */
120
explicit EggVertexPool::EggVertexPool(std::string const &name);
EggVertexPool::EggVertexPool(EggVertexPool const &copy);

1240 10 has_vertex 0 4 2024 25 EggVertexPool::has_vertex 0 1 245 147
/**
 * Returns true if the indicated vertex has been defined in the vertex pool,
 * false otherwise.  This does not include forward references.
 */
55
inline bool EggVertexPool::has_vertex(int index) const;

1241 20 has_forward_vertices 0 4 2024 35 EggVertexPool::has_forward_vertices 0 1 246 131
/**
 * Returns true if any vertices in the pool are undefined forward-reference
 * vertices, false if all vertices are defined.
 */
53
bool EggVertexPool::has_forward_vertices(void) const;

1242 20 has_defined_vertices 0 4 2024 35 EggVertexPool::has_defined_vertices 0 1 247 128
/**
 * Returns true if any vertices in the pool are fully defined vertices, false
 * if all vertices are forward references.
 */
53
bool EggVertexPool::has_defined_vertices(void) const;

1243 10 get_vertex 0 4 2024 25 EggVertexPool::get_vertex 0 1 248 169
// Returns NULL if there is no such vertex.

/**
 * Returns the vertex in the pool with the indicated index number, or NULL if
 * no vertices have that index number.
 */
54
EggVertex *EggVertexPool::get_vertex(int index) const;

1244 11 operator [] 0 4 2024 26 EggVertexPool::operator [] 0 1 249 124
/**
 * Returns the vertex in the pool with the indicated index number, or NULL if
 * no vertices have that index number.
 */
62
inline EggVertex *EggVertexPool::operator [](int index) const;

1245 18 get_forward_vertex 0 4 2024 33 EggVertexPool::get_forward_vertex 0 1 250 387
// Returns a forward reference if there is no such vertex.

/**
 * Returns the vertex in the pool with the indicated index number.  If there
 * is not a vertex in the pool with the indicated index number, creates a
 * special forward-reference EggVertex that has no data, on the assumption
 * that the vertex pool has not yet been fully read and more data will be
 * available later.
 */
56
EggVertex *EggVertexPool::get_forward_vertex(int index);

1246 17 get_highest_index 0 4 2024 32 EggVertexPool::get_highest_index 0 1 251 176
// Returns 0 if the pool is empty.

/**
 * Returns the highest index number used by any vertex in the pool (except
 * forward references).  Returns -1 if the pool is empty.
 */
49
int EggVertexPool::get_highest_index(void) const;

1247 17 set_highest_index 0 4 2024 32 EggVertexPool::set_highest_index 0 1 252 276
/**
 * Artificially changes the "highest index number", so that a newly created
 * vertex will begin at this number plus 1.  This can be used to default a
 * vertex pool to start counting at 1 (or any other index number), instead of
 * the default of 0.  Use with caution.
 */
57
void EggVertexPool::set_highest_index(int highest_index);

1248 18 get_num_dimensions 0 4 2024 33 EggVertexPool::get_num_dimensions 0 1 253 83
/**
 * Returns the maximum number of dimensions used by any vertex in the pool.
 */
50
int EggVertexPool::get_num_dimensions(void) const;

1249 11 has_normals 0 6 2024 26 EggVertexPool::has_normals 0 1 254 100
/**
 * Returns true if any vertex in the pool has a normal defined, false if none
 * of them do.
 */
52
virtual bool EggVertexPool::has_normals(void) const;

1250 10 has_colors 0 4 2024 25 EggVertexPool::has_colors 0 1 255 99
/**
 * Returns true if any vertex in the pool has a color defined, false if none
 * of them do.
 */
43
bool EggVertexPool::has_colors(void) const;

1251 19 has_nonwhite_colors 0 4 2024 34 EggVertexPool::has_nonwhite_colors 0 1 256 152
/**
 * Returns true if any vertex in the pool has a color defined other than
 * white, false if no vertices have colors, or if all colors are white.
 */
52
bool EggVertexPool::has_nonwhite_colors(void) const;

1252 19 check_overall_color 0 4 2024 34 EggVertexPool::check_overall_color 0 0 376
/**
 * Scans the vertex pool for different colors on different vertices.  If all
 * vertices are the same color, sets has_overall_color to true and fills the
 * color into overall_color.  If no vertices have any color, set
 * has_overall_color to true and fills white into overall_color.  If at least
 * two vertices have different colors, sets has_overall_color to false.
 */
94
void EggVertexPool::check_overall_color(bool &has_overall_color, LColor &overall_color) const;

1253 7 has_uvs 0 4 2024 22 EggVertexPool::has_uvs 0 1 257 96
/**
 * Returns true if any vertex in the pool has a uv defined, false if none of
 * them do.
 */
40
bool EggVertexPool::has_uvs(void) const;

1254 7 has_aux 0 4 2024 22 EggVertexPool::has_aux 0 1 258 106
/**
 * Returns true if any vertex in the pool has auxiliary data defined, false if
 * none of them do.
 */
40
bool EggVertexPool::has_aux(void) const;

1255 12 get_uv_names 0 4 2024 27 EggVertexPool::get_uv_names 0 1 259 351
/**
 * Returns the list of UV names that are defined by any vertices in the pool,
 * as well as the subset of UV names that actually define 3-d texture
 * coordinates ("uvw_names").  Also returns the subset of UV/UVW names that
 * define a tangent and binormal.  It is the user's responsibility to clear
 * both vectors before calling this method.
 */
116
void EggVertexPool::get_uv_names(vector_string &uv_names, vector_string &uvw_names, vector_string &tbn_names) const;

1256 13 get_aux_names 0 4 2024 28 EggVertexPool::get_aux_names 0 1 260 100
/**
 * Returns the list of auxiliary data names that are defined by any vertices
 * in the pool.
 */
66
void EggVertexPool::get_aux_names(vector_string &aux_names) const;

1257 4 size 0 4 2024 19 EggVertexPool::size 0 1 261 54
/**
 * Returns the number of vertices in the pool.
 */
57
EggVertexPool::size_type EggVertexPool::size(void) const;

1258 10 add_vertex 0 4 2024 25 EggVertexPool::add_vertex 0 1 262 908
// add_vertex() adds a freshly-allocated vertex.  It is up to the user to
// allocate the vertex.

/**
 * Adds the indicated vertex to the pool.  It is an error if the vertex is
 * already a member of this or any other pool.  The vertex must have been
 * allocated from the free store; its pointer will now be owned by the vertex
 * pool.  If the index number is supplied, tries to assign that index number;
 * it is an error if the index number is already in use.
 *
 * It is possible that a forward reference to this vertex was requested in the
 * past; if so, the data from the supplied vertex is copied onto the forward
 * reference, which becomes the actual vertex.  In this case, a different
 * pointer is saved (and returned) than the one actually passed in.  In the
 * usual case, however, the vertex pointer passed in is the one that is saved
 * in the vertex pool and returned from this method.
 */
72
EggVertex *EggVertexPool::add_vertex(EggVertex *vertex, int index = -1);

1259 15 make_new_vertex 0 4 2024 30 EggVertexPool::make_new_vertex 0 5 263 264 265 266 267 1272
// make_new_vertex() allocates and returns a new vertex from the pool.

/**
 * Allocates and returns a new vertex from the pool.  This is one of three
 * ways to add new vertices to a vertex pool.
 */

/**
 * Allocates and returns a new vertex from the pool.  This is one of three
 * ways to add new vertices to a vertex pool.
 *
 * This flavor of make_new_vertex() explicitly sets the vertex position as it
 * is allocated.  It does not attempt to share vertices.
 */

/**
 * Allocates and returns a new vertex from the pool.  This is one of three
 * ways to add new vertices to a vertex pool.
 *
 * This flavor of make_new_vertex() explicitly sets the vertex position as it
 * is allocated.  It does not attempt to share vertices.
 */

/**
 * Allocates and returns a new vertex from the pool.  This is one of three
 * ways to add new vertices to a vertex pool.
 *
 * This flavor of make_new_vertex() explicitly sets the vertex position as it
 * is allocated.  It does not attempt to share vertices.
 */

/**
 * Allocates and returns a new vertex from the pool.  This is one of three
 * ways to add new vertices to a vertex pool.
 *
 * This flavor of make_new_vertex() explicitly sets the vertex position as it
 * is allocated.  It does not attempt to share vertices.
 */
330
inline EggVertex *EggVertexPool::make_new_vertex(void);
inline EggVertex *EggVertexPool::make_new_vertex(double pos);
inline EggVertex *EggVertexPool::make_new_vertex(LPoint2d const &pos);
inline EggVertex *EggVertexPool::make_new_vertex(LPoint3d const &pos);
inline EggVertex *EggVertexPool::make_new_vertex(LPoint4d const &pos);

1260 20 create_unique_vertex 0 4 2024 35 EggVertexPool::create_unique_vertex 0 1 268 350
// create_unique_vertex() creates a new vertex if there is not already one
// identical to the indicated vertex, or returns the existing one if there
// is.

/**
 * Creates a new vertex in the pool that is a copy of the indicated one and
 * returns it.  If there is already a vertex in the pool like the indicated
 * one, simply returns that one.
 */
70
EggVertex *EggVertexPool::create_unique_vertex(EggVertex const &copy);

1261 20 find_matching_vertex 0 4 2024 35 EggVertexPool::find_matching_vertex 0 1 269 212
/**
 * If the EggVertexPool already has a vertex matching the indicated vertex,
 * returns it; otherwise, returns NULL.  This is similar to
 * create_unique_vertex() except that a new vertex is never created.
 */
70
EggVertex *EggVertexPool::find_matching_vertex(EggVertex const &copy);

1262 13 remove_vertex 0 4 2024 28 EggVertexPool::remove_vertex 0 1 270 114
/**
 * Removes the vertex from the pool.  It is an error if the vertex is not
 * already a member of the pool.
 */
53
void EggVertexPool::remove_vertex(EggVertex *vertex);

1263 22 remove_unused_vertices 0 4 2024 37 EggVertexPool::remove_unused_vertices 0 1 271 292
/**
 * Removes all vertices from the pool that are not referenced by at least one
 * primitive.  Also collapses together equivalent vertices, and renumbers all
 * vertices after the operation so their indices are consecutive, beginning at
 * zero.  Returns the number of vertices removed.
 */
48
int EggVertexPool::remove_unused_vertices(void);

1264 27 add_unused_vertices_to_prim 0 4 2024 42 EggVertexPool::add_unused_vertices_to_prim 0 1 272 113
/**
 * Adds all of the unused vertices in this vertex pool to the indicated
 * primitive, in ascending order.
 */
68
void EggVertexPool::add_unused_vertices_to_prim(EggPrimitive *prim);

1265 9 transform 0 4 2024 24 EggVertexPool::transform 0 1 273 419
/**
 * Applies the indicated transformation matrix to all the vertices.  However,
 * vertices that are attached to primitives that believe their vertices are in
 * a local coordinate system are transformed only by the scale and rotation
 * component.  If a vertex happens to be attached both to a local and a global
 * primitive, and the transformation includes a translation component, the
 * vertex will be split.
 */
52
void EggVertexPool::transform(LMatrix4d const &mat);

1266 22 sort_by_external_index 0 4 2024 37 EggVertexPool::sort_by_external_index 0 1 274 186
/**
 * Re-orders (and re-numbers) the vertices in this vertex pool so that they
 * appear in increasing order by the optional external_index that has been
 * assigned to each vertex.
 */
49
void EggVertexPool::sort_by_external_index(void);

1267 14 get_class_type 0 4 2024 29 EggVertexPool::get_class_type 0 1 275 0
54
static TypeHandle EggVertexPool::get_class_type(void);

1268 13 EggRenderMode 0 260 2025 28 EggRenderMode::EggRenderMode 0 2 276 277 22
/**
 *
 */

/**
 *
 */
99
EggRenderMode::EggRenderMode(void);
inline EggRenderMode::EggRenderMode(EggRenderMode const &copy);

1269 10 operator = 0 4 2025 25 EggRenderMode::operator = 0 1 278 10
/**
 *
 */
58
void EggRenderMode::operator =(EggRenderMode const &copy);

1270 5 write 0 4 2025 20 EggRenderMode::write 0 1 279 78
/**
 * Writes the attributes to the indicated output stream in Egg format.
 */
69
void EggRenderMode::write(std::ostream &out, int indent_level) const;

1271 14 set_alpha_mode 0 4 2025 29 EggRenderMode::set_alpha_mode 0 1 280 500
/**
 * Specifies precisely how the transparency for this geometry should be
 * achieved, or if it should be used.  The default, AM_unspecified, is to use
 * transparency if the geometry has a color whose alpha value is non-1, or if
 * it has a four-channel texture applied; otherwise, AM_on forces transparency
 * on, and AM_off forces it off.  The other flavors of transparency are
 * specific ways to turn on transparency, which may or may not be supported by
 * a particular rendering backend.
 */
73
inline void EggRenderMode::set_alpha_mode(EggRenderMode::AlphaMode mode);

1272 14 get_alpha_mode 0 4 2025 29 EggRenderMode::get_alpha_mode 0 1 281 110
/**
 * Returns the alpha mode that was set, or AM_unspecified if nothing was set.
 * See set_alpha_mode().
 */
74
inline EggRenderMode::AlphaMode EggRenderMode::get_alpha_mode(void) const;

1273 20 set_depth_write_mode 0 4 2025 35 EggRenderMode::set_depth_write_mode 0 1 282 160
/**
 * Specifies whether writes should be made to the depth buffer (assuming the
 * rendering backend provides a depth buffer) when rendering this geometry.
 */
84
inline void EggRenderMode::set_depth_write_mode(EggRenderMode::DepthWriteMode mode);

1274 20 get_depth_write_mode 0 4 2025 35 EggRenderMode::get_depth_write_mode 0 1 283 124
/**
 * Returns the depth_write mode that was set, or DWM_unspecified if nothing
 * was set.  See set_depth_write_mode().
 */
85
inline EggRenderMode::DepthWriteMode EggRenderMode::get_depth_write_mode(void) const;

1275 19 set_depth_test_mode 0 4 2025 34 EggRenderMode::set_depth_test_mode 0 1 284 238
/**
 * Specifies whether this geometry should be tested against the depth buffer
 * when it is drawn (assuming the rendering backend provides a depth buffer).
 * Note that this is different, and independent from, the depth_write mode.
 */
82
inline void EggRenderMode::set_depth_test_mode(EggRenderMode::DepthTestMode mode);

1276 19 get_depth_test_mode 0 4 2025 34 EggRenderMode::get_depth_test_mode 0 1 285 122
/**
 * Returns the depth_test mode that was set, or DTM_unspecified if nothing was
 * set.  See set_depth_test_mode().
 */
83
inline EggRenderMode::DepthTestMode EggRenderMode::get_depth_test_mode(void) const;

1277 19 set_visibility_mode 0 4 2025 34 EggRenderMode::set_visibility_mode 0 1 286 252
/**
 * Specifies whether this geometry is to be considered normally visible, or
 * hidden.  If it is hidden, it is either not loaded into the scene graph at
 * all, or loaded as a "stashed" node, according to the setting of egg-
 * suppress-hidden.
 */
83
inline void EggRenderMode::set_visibility_mode(EggRenderMode::VisibilityMode mode);

1278 19 get_visibility_mode 0 4 2025 34 EggRenderMode::get_visibility_mode 0 1 287 121
/**
 * Returns the visibility mode that was set, or VM_unspecified if nothing was
 * set.  See set_visibility_mode().
 */
84
inline EggRenderMode::VisibilityMode EggRenderMode::get_visibility_mode(void) const;

1279 16 set_depth_offset 0 4 2025 31 EggRenderMode::set_depth_offset 0 1 288 198
/**
 * Sets the "depth-offset" flag associated with this object.  This adds or
 * subtracts an offset bias into the depth buffer.  See also DepthOffsetAttrib
 * and NodePath::set_depth_offset().
 */
54
inline void EggRenderMode::set_depth_offset(int bias);

1280 16 get_depth_offset 0 4 2025 31 EggRenderMode::get_depth_offset 0 1 289 105
/**
 * Returns the "depth-offset" flag as set for this particular object.  See
 * set_depth_offset().
 */
55
inline int EggRenderMode::get_depth_offset(void) const;

1281 16 has_depth_offset 0 4 2025 31 EggRenderMode::has_depth_offset 0 1 290 117
/**
 * Returns true if the depth-offset flag has been set for this particular
 * object.  See set_depth_offset().
 */
56
inline bool EggRenderMode::has_depth_offset(void) const;

1282 18 clear_depth_offset 0 4 2025 33 EggRenderMode::clear_depth_offset 0 1 291 97
/**
 * Removes the depth-offset flag from this particular object.  See
 * set_depth_offset().
 */
52
inline void EggRenderMode::clear_depth_offset(void);

1283 14 set_draw_order 0 4 2025 29 EggRenderMode::set_draw_order 0 1 292 260
/**
 * Sets the "draw-order" flag associated with this object.  This specifies a
 * particular order in which objects of this type should be drawn, within the
 * specified bin.  If a bin is not explicitly specified, "fixed" is used.  See
 * also set_bin().
 */
53
inline void EggRenderMode::set_draw_order(int order);

1284 14 get_draw_order 0 4 2025 29 EggRenderMode::get_draw_order 0 1 293 101
/**
 * Returns the "draw-order" flag as set for this particular object.  See
 * set_draw_order().
 */
53
inline int EggRenderMode::get_draw_order(void) const;

1285 14 has_draw_order 0 4 2025 29 EggRenderMode::has_draw_order 0 1 294 113
/**
 * Returns true if the draw-order flag has been set for this particular
 * object.  See set_draw_order().
 */
54
inline bool EggRenderMode::has_draw_order(void) const;

1286 16 clear_draw_order 0 4 2025 31 EggRenderMode::clear_draw_order 0 1 295 93
/**
 * Removes the draw-order flag from this particular object.  See
 * set_draw_order().
 */
50
inline void EggRenderMode::clear_draw_order(void);

1287 7 set_bin 0 4 2025 22 EggRenderMode::set_bin 0 1 296 378
/**
 * Sets the "bin" string for this particular object.  This names a particular
 * bin in which the object should be rendered.  The exact meaning of a bin is
 * implementation defined, but generally a GeomBin matching each bin name must
 * also be specifically added to the rendering engine (e.g.  the
 * CullTraverser) in use for this to work.  See also set_draw_order().
 */
59
inline void EggRenderMode::set_bin(std::string const &bin);

1288 7 get_bin 0 4 2025 22 EggRenderMode::get_bin 0 1 297 103
/**
 * Returns the bin name that has been set for this particular object, if any.
 * See set_bin().
 */
54
inline std::string EggRenderMode::get_bin(void) const;

1289 7 has_bin 0 4 2025 22 EggRenderMode::has_bin 0 1 298 97
/**
 * Returns true if a bin name has been set for this particular object.  See
 * set_bin().
 */
47
inline bool EggRenderMode::has_bin(void) const;

1290 9 clear_bin 0 4 2025 24 EggRenderMode::clear_bin 0 1 299 91
/**
 * Removes the bin name that was set for this particular object.  See
 * set_bin().
 */
43
inline void EggRenderMode::clear_bin(void);

1291 11 operator == 0 4 2025 26 EggRenderMode::operator == 0 1 300 34
// Comparison operators are handy.
66
bool EggRenderMode::operator ==(EggRenderMode const &other) const;

1292 11 operator != 0 4 2025 26 EggRenderMode::operator != 0 1 301 0
73
inline bool EggRenderMode::operator !=(EggRenderMode const &other) const;

1293 10 operator < 0 4 2025 25 EggRenderMode::operator < 0 1 302 0
65
bool EggRenderMode::operator <(EggRenderMode const &other) const;

1294 17 string_alpha_mode 0 4 2025 32 EggRenderMode::string_alpha_mode 0 1 303 167
/**
 * Returns the AlphaMode value associated with the given string
 * representation, or AM_unspecified if the string does not match any known
 * AlphaMode value.
 */
92
static EggRenderMode::AlphaMode EggRenderMode::string_alpha_mode(std::string const &string);

1295 23 string_depth_write_mode 0 4 2025 38 EggRenderMode::string_depth_write_mode 0 1 304 178
/**
 * Returns the DepthWriteMode value associated with the given string
 * representation, or DWM_unspecified if the string does not match any known
 * DepthWriteMode value.
 */
103
static EggRenderMode::DepthWriteMode EggRenderMode::string_depth_write_mode(std::string const &string);

1296 22 string_depth_test_mode 0 4 2025 37 EggRenderMode::string_depth_test_mode 0 1 305 176
/**
 * Returns the DepthTestMode value associated with the given string
 * representation, or DTM_unspecified if the string does not match any known
 * DepthTestMode value.
 */
101
static EggRenderMode::DepthTestMode EggRenderMode::string_depth_test_mode(std::string const &string);

1297 22 string_visibility_mode 0 4 2025 37 EggRenderMode::string_visibility_mode 0 1 306 169
/**
 * Returns the HiddenMode value associated with the given string
 * representation, or VM_unspecified if the string does not match any known
 * HiddenMode value.
 */
102
static EggRenderMode::VisibilityMode EggRenderMode::string_visibility_mode(std::string const &string);

1298 14 get_class_type 0 4 2025 29 EggRenderMode::get_class_type 0 1 307 0
54
static TypeHandle EggRenderMode::get_class_type(void);

1299 14 ~EggRenderMode 0 516 2025 29 EggRenderMode::~EggRenderMode 0 0 0
36
EggRenderMode::~EggRenderMode(void);

1300 12 EggTransform 0 260 2030 26 EggTransform::EggTransform 0 2 308 309 22
/**
 *
 */

/**
 *
 */
87
EggTransform::EggTransform(void);
EggTransform::EggTransform(EggTransform const &copy);

1301 10 operator = 0 4 2030 24 EggTransform::operator = 0 1 310 10
/**
 *
 */
56
void EggTransform::operator =(EggTransform const &copy);

1302 13 ~EggTransform 0 518 2030 27 EggTransform::~EggTransform 0 0 10
/**
 *
 */
42
virtual EggTransform::~EggTransform(void);

1303 15 clear_transform 0 4 2030 29 EggTransform::clear_transform 0 1 311 51
/**
 * Resets the transform to empty, identity.
 */
48
inline void EggTransform::clear_transform(void);

1304 15 add_translate2d 0 4 2030 29 EggTransform::add_translate2d 0 1 312 72
/**
 * Appends a 2-d translation operation to the current transform.
 */
63
void EggTransform::add_translate2d(LVector2d const &translate);

1305 15 add_translate3d 0 4 2030 29 EggTransform::add_translate3d 0 1 313 72
/**
 * Appends a 3-d translation operation to the current transform.
 */
63
void EggTransform::add_translate3d(LVector3d const &translate);

1306 12 add_rotate2d 0 4 2030 26 EggTransform::add_rotate2d 0 1 314 141
/**
 * Appends a 2-d rotation to the current transform.  The rotation angle is
 * specified in degrees counterclockwise about the origin.
 */
46
void EggTransform::add_rotate2d(double angle);

1307 8 add_rotx 0 4 2030 22 EggTransform::add_rotx 0 1 315 152
/**
 * Appends a rotation about the X axis to the current transform.  The rotation
 * angle is specified in degrees counterclockwise about the axis.
 */
42
void EggTransform::add_rotx(double angle);

1308 8 add_roty 0 4 2030 22 EggTransform::add_roty 0 1 316 152
/**
 * Appends a rotation about the Y axis to the current transform.  The rotation
 * angle is specified in degrees counterclockwise about the axis.
 */
42
void EggTransform::add_roty(double angle);

1309 8 add_rotz 0 4 2030 22 EggTransform::add_rotz 0 1 317 152
/**
 * Appends a rotation about the Z axis to the current transform.  The rotation
 * angle is specified in degrees counterclockwise about the axis.
 */
42
void EggTransform::add_rotz(double angle);

1310 12 add_rotate3d 0 4 2030 26 EggTransform::add_rotate3d 0 2 318 319 324
/**
 * Appends a 3-d rotation about an arbitrary axis to the current transform.
 * The rotation angle is specified in degrees counterclockwise about the axis.
 */

/**
 * Appends an arbitrary 3-d rotation to the current transform, expressed as a
 * quaternion.  This is converted to axis-angle notation for the egg file.
 */
128
void EggTransform::add_rotate3d(double angle, LVector3d const &axis);
void EggTransform::add_rotate3d(LQuaterniond const &quat);

1311 11 add_scale2d 0 4 2030 25 EggTransform::add_scale2d 0 1 320 73
/**
 * Appends a possibly non-uniform scale to the current transform.
 */
56
void EggTransform::add_scale2d(LVecBase2d const &scale);

1312 11 add_scale3d 0 4 2030 25 EggTransform::add_scale3d 0 1 321 73
/**
 * Appends a possibly non-uniform scale to the current transform.
 */
56
void EggTransform::add_scale3d(LVecBase3d const &scale);

1313 17 add_uniform_scale 0 4 2030 31 EggTransform::add_uniform_scale 0 1 322 60
/**
 * Appends a uniform scale to the current transform.
 */
51
void EggTransform::add_uniform_scale(double scale);

1314 11 add_matrix3 0 4 2030 25 EggTransform::add_matrix3 0 1 323 68
/**
 * Appends an arbitrary 3x3 matrix to the current transform.
 */
60
inline void EggTransform::add_matrix3(LMatrix3d const &mat);

1315 11 add_matrix4 0 4 2030 25 EggTransform::add_matrix4 0 1 324 68
/**
 * Appends an arbitrary 4x4 matrix to the current transform.
 */
60
inline void EggTransform::add_matrix4(LMatrix4d const &mat);

1316 13 has_transform 0 4 2030 27 EggTransform::has_transform 0 1 325 174
/**
 * Returns true if the transform is nonempty, false if it is empty (no
 * transform components have been added).  This is true for either a 2-d or a
 * 3-d transform.
 */
52
inline bool EggTransform::has_transform(void) const;

1317 15 has_transform2d 0 4 2030 29 EggTransform::has_transform2d 0 1 326 328
/**
 * Returns true if the transform is specified as a 2-d transform, e.g.  with a
 * 3x3 matrix, or false if it is specified as a 3-d transform (with a 4x4
 * matrix), or not specified at all.
 *
 * Normally, EggTextures have a 2-d matrix (but occasionally they use a 3-d
 * matrix), and EggGroups always have a 3-d matrix.
 */
54
inline bool EggTransform::has_transform2d(void) const;

1318 15 set_transform2d 0 4 2030 29 EggTransform::set_transform2d 0 1 327 139
/**
 * Sets the overall transform as a 3x3 matrix.  This completely replaces
 * whatever componentwise transform may have been defined.
 */
64
inline void EggTransform::set_transform2d(LMatrix3d const &mat);

1319 15 has_transform3d 0 4 2030 29 EggTransform::has_transform3d 0 1 328 328
/**
 * Returns true if the transform is specified as a 3-d transform, e.g.  with a
 * 4x4 matrix, or false if it is specified as a 2-d transform (with a 2x2
 * matrix), or not specified at all.
 *
 * Normally, EggTextures have a 3-d matrix (but occasionally they use a 3-d
 * matrix), and EggGroups always have a 3-d matrix.
 */
54
inline bool EggTransform::has_transform3d(void) const;

1320 15 set_transform3d 0 4 2030 29 EggTransform::set_transform3d 0 1 329 139
/**
 * Sets the overall transform as a 4x4 matrix.  This completely replaces
 * whatever componentwise transform may have been defined.
 */
64
inline void EggTransform::set_transform3d(LMatrix4d const &mat);

1321 15 get_transform2d 0 4 2030 29 EggTransform::get_transform2d 0 1 330 119
/**
 * Returns the overall transform as a 3x3 matrix.  It is an error to call this
 * if has_transform3d() is true.
 */
59
inline LMatrix3d EggTransform::get_transform2d(void) const;

1322 15 get_transform3d 0 4 2030 29 EggTransform::get_transform3d 0 1 331 190
/**
 * Returns the overall transform as a 4x4 matrix.  It is valid to call this
 * even if has_transform2d() is true; in this case, the 3x3 transform will be
 * expanded to a 4x4 matrix.
 */
66
inline LMatrix4d const &EggTransform::get_transform3d(void) const;

1323 21 transform_is_identity 0 4 2030 35 EggTransform::transform_is_identity 0 1 332 80
/**
 * Returns true if the described transform is identity, false otherwise.
 */
60
inline bool EggTransform::transform_is_identity(void) const;

1324 18 get_num_components 0 4 2030 32 EggTransform::get_num_components 0 1 333 71
/**
 * Returns the number of components that make up the transform.
 */
56
inline int EggTransform::get_num_components(void) const;

1325 18 get_component_type 0 4 2030 32 EggTransform::get_component_type 0 1 334 49
/**
 * Returns the type of the nth component.
 */
81
inline EggTransform::ComponentType EggTransform::get_component_type(int n) const;

1326 20 get_component_number 0 4 2030 34 EggTransform::get_component_number 0 1 335 252
/**
 * Returns the solitary number associated with the nth component.  In the case
 * of a rotation, this is the angle in degrees to rotate; in the case of
 * uniform scale, this is the amount of the scale.  Other types do not use
 * this property.
 */
62
inline double EggTransform::get_component_number(int n) const;

1327 18 get_component_vec2 0 4 2030 32 EggTransform::get_component_vec2 0 1 336 239
/**
 * Returns the 2-component vector associated with the nth component.  This may
 * be the translate vector, rotate axis, or non-uniform scale.  It is an error
 * to call this if the component type does not use a 2-d vector property.
 */
71
inline LVecBase2d const &EggTransform::get_component_vec2(int n) const;

1328 18 get_component_vec3 0 4 2030 32 EggTransform::get_component_vec3 0 1 337 239
/**
 * Returns the 3-component vector associated with the nth component.  This may
 * be the translate vector, rotate axis, or non-uniform scale.  It is an error
 * to call this if the component type does not use a 3-d vector property.
 */
71
inline LVecBase3d const &EggTransform::get_component_vec3(int n) const;

1329 18 get_component_mat3 0 4 2030 32 EggTransform::get_component_mat3 0 1 338 141
/**
 * Returns the 3x3 matrix associated with the nth component.  It is an error
 * to call this if the component type is not CT_matrix3.
 */
70
inline LMatrix3d const &EggTransform::get_component_mat3(int n) const;

1330 18 get_component_mat4 0 4 2030 32 EggTransform::get_component_mat4 0 1 339 141
/**
 * Returns the 4x4 matrix associated with the nth component.  It is an error
 * to call this if the component type is not CT_matrix4.
 */
70
inline LMatrix4d const &EggTransform::get_component_mat4(int n) const;

1331 5 write 0 4 2030 19 EggTransform::write 0 1 340 70
/**
 * Writes the transform to the indicated stream in Egg format.
 */
94
void EggTransform::write(std::ostream &out, int indent_level, std::string const &label) const;

1332 9 make_copy 0 6 2032 29 EggSwitchCondition::make_copy 0 1 341 0
74
virtual EggSwitchCondition *EggSwitchCondition::make_copy(void) const = 0;

1333 5 write 0 6 2032 25 EggSwitchCondition::write 0 1 342 0
86
virtual void EggSwitchCondition::write(std::ostream &out, int indent_level) const = 0;

1334 9 transform 0 6 2032 29 EggSwitchCondition::transform 0 1 343 0
69
virtual void EggSwitchCondition::transform(LMatrix4d const &mat) = 0;

1335 14 get_class_type 0 4 2032 34 EggSwitchCondition::get_class_type 0 1 344 0
59
static TypeHandle EggSwitchCondition::get_class_type(void);

1336 19 ~EggSwitchCondition 0 516 2032 39 EggSwitchCondition::~EggSwitchCondition 0 0 0
46
EggSwitchCondition::~EggSwitchCondition(void);

1337 26 EggSwitchConditionDistance 0 260 2033 54 EggSwitchConditionDistance::EggSwitchConditionDistance 0 1 345 10
/**
 *
 */
144
explicit EggSwitchConditionDistance::EggSwitchConditionDistance(double switch_in, double switch_out, LPoint3d const &center, double fade = 0.0);

1338 14 get_class_type 0 4 2033 42 EggSwitchConditionDistance::get_class_type 0 1 346 0
67
static TypeHandle EggSwitchConditionDistance::get_class_type(void);

1339 27 ~EggSwitchConditionDistance 0 516 2033 55 EggSwitchConditionDistance::~EggSwitchConditionDistance 0 0 0
62
EggSwitchConditionDistance::~EggSwitchConditionDistance(void);

1340 22 upcast_to_EggGroupNode 0 12 2034 32 EggGroup::upcast_to_EggGroupNode 0 1 485 36
upcast from EggGroup to EggGroupNode
53
EggGroupNode *EggGroup::upcast_to_EggGroupNode(void);

1341 20 downcast_to_EggGroup 0 12 2002 34 EggGroupNode::downcast_to_EggGroup 0 0 38
downcast from EggGroupNode to EggGroup
51
EggGroup *EggGroupNode::downcast_to_EggGroup(void);

1342 23 upcast_to_EggRenderMode 0 12 2034 33 EggGroup::upcast_to_EggRenderMode 0 1 486 37
upcast from EggGroup to EggRenderMode
55
EggRenderMode *EggGroup::upcast_to_EggRenderMode(void);

1343 20 downcast_to_EggGroup 0 12 2025 35 EggRenderMode::downcast_to_EggGroup 0 0 39
downcast from EggRenderMode to EggGroup
52
EggGroup *EggRenderMode::downcast_to_EggGroup(void);

1344 22 upcast_to_EggTransform 0 12 2034 32 EggGroup::upcast_to_EggTransform 0 1 487 36
upcast from EggGroup to EggTransform
53
EggTransform *EggGroup::upcast_to_EggTransform(void);

1345 20 downcast_to_EggGroup 0 12 2030 34 EggTransform::downcast_to_EggGroup 0 0 38
downcast from EggTransform to EggGroup
51
EggGroup *EggTransform::downcast_to_EggGroup(void);

1346 8 EggGroup 0 260 2034 18 EggGroup::EggGroup 0 2 347 348 22
/**
 *
 */

/**
 *
 */
100
explicit EggGroup::EggGroup(std::string const &name = "");
EggGroup::EggGroup(EggGroup const &copy);

1347 10 operator = 0 4 2034 20 EggGroup::operator = 0 1 349 10
/**
 *
 */
48
void EggGroup::operator =(EggGroup const &copy);

1348 9 ~EggGroup 0 518 2034 19 EggGroup::~EggGroup 0 0 10
/**
 *
 */
34
virtual EggGroup::~EggGroup(void);

1349 5 write 0 6 2034 15 EggGroup::write 0 1 350 100
/**
 * Writes the group and all of its children to the indicated output stream in
 * Egg format.
 */
72
virtual void EggGroup::write(std::ostream &out, int indent_level) const;

1350 21 write_billboard_flags 0 4 2034 31 EggGroup::write_billboard_flags 0 1 351 92
/**
 * Writes just the <Billboard> entry and related fields to the indicated
 * ostream.
 */
80
void EggGroup::write_billboard_flags(std::ostream &out, int indent_level) const;

1351 19 write_collide_flags 0 4 2034 29 EggGroup::write_collide_flags 0 1 352 90
/**
 * Writes just the <Collide> entry and related fields to the indicated
 * ostream.
 */
78
void EggGroup::write_collide_flags(std::ostream &out, int indent_level) const;

1352 17 write_model_flags 0 4 2034 27 EggGroup::write_model_flags 0 1 353 78
/**
 * Writes the <Model> flag and related flags to the indicated ostream.
 */
76
void EggGroup::write_model_flags(std::ostream &out, int indent_level) const;

1353 18 write_switch_flags 0 4 2034 28 EggGroup::write_switch_flags 0 1 354 79
/**
 * Writes the <Switch> flag and related flags to the indicated ostream.
 */
77
void EggGroup::write_switch_flags(std::ostream &out, int indent_level) const;

1354 18 write_object_types 0 4 2034 28 EggGroup::write_object_types 0 1 355 83
/**
 * Writes just the <ObjectTypes> entries, if any, to the indicated ostream.
 */
77
void EggGroup::write_object_types(std::ostream &out, int indent_level) const;

1355 17 write_decal_flags 0 4 2034 27 EggGroup::write_decal_flags 0 1 356 56
/**
 * Writes the flags related to decaling, if any.
 */
76
void EggGroup::write_decal_flags(std::ostream &out, int indent_level) const;

1356 10 write_tags 0 4 2034 20 EggGroup::write_tags 0 1 357 75
/**
 * Writes just the <Tag> entries, if any, to the indicated ostream.
 */
69
void EggGroup::write_tags(std::ostream &out, int indent_level) const;

1357 17 write_render_mode 0 4 2034 27 EggGroup::write_render_mode 0 1 358 114
/**
 * Writes the flags inherited from EggRenderMode and similar flags that
 * control obscure render effects.
 */
76
void EggGroup::write_render_mode(std::ostream &out, int indent_level) const;

1358 8 is_joint 0 6 2034 18 EggGroup::is_joint 0 1 359 229
/**
 * Returns true if this particular node represents a <Joint> entry or not.
 * This is a handy thing to know since Joints are sorted to the end of their
 * sibling list when writing an egg file.  See EggGroupNode::write().
 */
44
virtual bool EggGroup::is_joint(void) const;

1359 20 determine_alpha_mode 0 6 2034 30 EggGroup::determine_alpha_mode 0 1 360 267
/**
 * Walks back up the hierarchy, looking for an EggGroup or EggPrimitive or
 * some such object at this level or above this group that has an alpha_mode
 * other than AM_unspecified.  Returns a valid EggRenderMode pointer if one is
 * found, or NULL otherwise.
 */
60
virtual EggRenderMode *EggGroup::determine_alpha_mode(void);

1360 26 determine_depth_write_mode 0 6 2034 36 EggGroup::determine_depth_write_mode 0 1 361 273
/**
 * Walks back up the hierarchy, looking for an EggGroup or EggPrimitive or
 * some such object at this level or above this group that has a
 * depth_write_mode other than DWM_unspecified.  Returns a valid EggRenderMode
 * pointer if one is found, or NULL otherwise.
 */
66
virtual EggRenderMode *EggGroup::determine_depth_write_mode(void);

1361 25 determine_depth_test_mode 0 6 2034 35 EggGroup::determine_depth_test_mode 0 1 362 272
/**
 * Walks back up the hierarchy, looking for an EggGroup or EggPrimitive or
 * some such object at this level or above this group that has a
 * depth_test_mode other than DTM_unspecified.  Returns a valid EggRenderMode
 * pointer if one is found, or NULL otherwise.
 */
65
virtual EggRenderMode *EggGroup::determine_depth_test_mode(void);

1362 25 determine_visibility_mode 0 6 2034 35 EggGroup::determine_visibility_mode 0 1 363 271
/**
 * Walks back up the hierarchy, looking for an EggGroup or EggPrimitive or
 * some such object at this level or above this group that has a
 * visibility_mode other than VM_unspecified.  Returns a valid EggRenderMode
 * pointer if one is found, or NULL otherwise.
 */
65
virtual EggRenderMode *EggGroup::determine_visibility_mode(void);

1363 22 determine_depth_offset 0 6 2034 32 EggGroup::determine_depth_offset 0 1 364 252
/**
 * Walks back up the hierarchy, looking for an EggGroup or EggPrimitive or
 * some such object at this level or above this group that has a depth_offset
 * specified.  Returns a valid EggRenderMode pointer if one is found, or NULL
 * otherwise.
 */
62
virtual EggRenderMode *EggGroup::determine_depth_offset(void);

1364 20 determine_draw_order 0 6 2034 30 EggGroup::determine_draw_order 0 1 365 250
/**
 * Walks back up the hierarchy, looking for an EggGroup or EggPrimitive or
 * some such object at this level or above this group that has a draw_order
 * specified.  Returns a valid EggRenderMode pointer if one is found, or NULL
 * otherwise.
 */
60
virtual EggRenderMode *EggGroup::determine_draw_order(void);

1365 13 determine_bin 0 6 2034 23 EggGroup::determine_bin 0 1 366 243
/**
 * Walks back up the hierarchy, looking for an EggGroup or EggPrimitive or
 * some such object at this level or above this group that has a bin
 * specified.  Returns a valid EggRenderMode pointer if one is found, or NULL
 * otherwise.
 */
53
virtual EggRenderMode *EggGroup::determine_bin(void);

1366 17 determine_indexed 0 6 2034 27 EggGroup::determine_indexed 0 1 367 321
/**
 * Walks back up the hierarchy, looking for an EggGroup at this level or above
 * that has the "indexed" scalar set.  Returns the value of the indexed scalar
 * if it is found, or false if it is not.
 *
 * In other words, returns true if the "indexed" flag is in effect for the
 * indicated node, false otherwise.
 */
47
virtual bool EggGroup::determine_indexed(void);

1367 15 determine_decal 0 6 2034 25 EggGroup::determine_decal 0 1 368 311
/**
 * Walks back up the hierarchy, looking for an EggGroup at this level or above
 * that has the "decal" flag set.  Returns the value of the decal flag if it
 * is found, or false if it is not.
 *
 * In other words, returns true if the "decal" flag is in effect for the
 * indicated node, false otherwise.
 */
45
virtual bool EggGroup::determine_decal(void);

1368 14 set_group_type 0 4 2034 24 EggGroup::set_group_type 0 1 369 10
/**
 *
 */
56
void EggGroup::set_group_type(EggGroup::GroupType type);

1369 14 get_group_type 0 4 2034 24 EggGroup::get_group_type 0 1 370 10
/**
 *
 */
64
inline EggGroup::GroupType EggGroup::get_group_type(void) const;

1370 16 is_instance_type 0 4 2034 26 EggGroup::is_instance_type 0 1 371 368
/**
 * Returns true if this group is an instance type node; i.e.  it begins the
 * root of a local coordinate space.  This is not related to instancing
 * (multiple copies of a node in a scene graph).
 *
 * This also includes the case of the node including a billboard flag without
 * an explicit center, which implicitly makes the node behave like an
 * instance.
 */
51
inline bool EggGroup::is_instance_type(void) const;

1371 18 set_billboard_type 0 4 2034 28 EggGroup::set_billboard_type 0 1 372 10
/**
 *
 */
71
inline void EggGroup::set_billboard_type(EggGroup::BillboardType type);

1372 18 get_billboard_type 0 4 2034 28 EggGroup::get_billboard_type 0 1 373 10
/**
 *
 */
72
inline EggGroup::BillboardType EggGroup::get_billboard_type(void) const;

1373 20 set_billboard_center 0 4 2034 30 EggGroup::set_billboard_center 0 1 374 694
/**
 * Sets the point around which the billboard will rotate, if this node
 * contains a billboard specification.
 *
 * If a billboard type is given but no billboard_center is specified, then the
 * group node is treated as an <Instance>, and the billboard rotates around
 * the origin.  If, however, a billboard_center is specified, then the group
 * node is *not* treated as an <Instance>, and the billboard rotates around
 * the specified point.
 *
 * The point is in the same coordinate system as the vertices of this node:
 * usually global, but possibly local if there is an <Instance> somewhere
 * above.  Specifically, this is the coordinate system defined by
 * get_vertex_frame().
 */
77
inline void EggGroup::set_billboard_center(LPoint3d const &billboard_center);

1374 22 clear_billboard_center 0 4 2034 32 EggGroup::clear_billboard_center 0 1 375 10
/**
 *
 */
51
inline void EggGroup::clear_billboard_center(void);

1375 20 has_billboard_center 0 4 2034 30 EggGroup::has_billboard_center 0 1 376 10
/**
 *
 */
55
inline bool EggGroup::has_billboard_center(void) const;

1376 20 get_billboard_center 0 4 2034 30 EggGroup::get_billboard_center 0 1 377 10
/**
 *
 */
66
inline LPoint3d const &EggGroup::get_billboard_center(void) const;

1377 11 set_cs_type 0 4 2034 21 EggGroup::set_cs_type 0 1 378 10
/**
 *
 */
69
inline void EggGroup::set_cs_type(EggGroup::CollisionSolidType type);

1378 11 get_cs_type 0 4 2034 21 EggGroup::get_cs_type 0 1 379 10
/**
 *
 */
70
inline EggGroup::CollisionSolidType EggGroup::get_cs_type(void) const;

1379 17 set_collide_flags 0 4 2034 27 EggGroup::set_collide_flags 0 1 380 10
/**
 *
 */
51
inline void EggGroup::set_collide_flags(int flags);

1380 17 get_collide_flags 0 4 2034 27 EggGroup::get_collide_flags 0 1 381 10
/**
 *
 */
70
inline EggGroup::CollideFlags EggGroup::get_collide_flags(void) const;

1381 18 set_collision_name 0 4 2034 28 EggGroup::set_collision_name 0 1 382 10
/**
 *
 */
76
inline void EggGroup::set_collision_name(std::string const &collision_name);

1382 20 clear_collision_name 0 4 2034 30 EggGroup::clear_collision_name 0 1 383 10
/**
 *
 */
49
inline void EggGroup::clear_collision_name(void);

1383 18 has_collision_name 0 4 2034 28 EggGroup::has_collision_name 0 1 384 10
/**
 *
 */
53
inline bool EggGroup::has_collision_name(void) const;

1384 18 get_collision_name 0 4 2034 28 EggGroup::get_collision_name 0 1 385 10
/**
 *
 */
67
inline std::string const &EggGroup::get_collision_name(void) const;

1385 12 set_dcs_type 0 4 2034 22 EggGroup::set_dcs_type 0 1 386 10
/**
 *
 */
59
inline void EggGroup::set_dcs_type(EggGroup::DCSType type);

1386 12 get_dcs_type 0 4 2034 22 EggGroup::get_dcs_type 0 1 387 10
/**
 *
 */
60
inline EggGroup::DCSType EggGroup::get_dcs_type(void) const;

1387 12 has_dcs_type 0 4 2034 22 EggGroup::has_dcs_type 0 1 388 91
/**
 * Returns true if the specified DCS type is not DC_none and not
 * DC_unspecified.
 */
47
inline bool EggGroup::has_dcs_type(void) const;

1388 13 set_dart_type 0 4 2034 23 EggGroup::set_dart_type 0 1 389 10
/**
 *
 */
61
inline void EggGroup::set_dart_type(EggGroup::DartType type);

1389 13 get_dart_type 0 4 2034 23 EggGroup::get_dart_type 0 1 390 10
/**
 *
 */
62
inline EggGroup::DartType EggGroup::get_dart_type(void) const;

1390 15 set_switch_flag 0 4 2034 25 EggGroup::set_switch_flag 0 1 391 10
/**
 *
 */
49
inline void EggGroup::set_switch_flag(bool flag);

1391 15 get_switch_flag 0 4 2034 25 EggGroup::get_switch_flag 0 1 392 10
/**
 *
 */
50
inline bool EggGroup::get_switch_flag(void) const;

1392 14 set_switch_fps 0 4 2034 24 EggGroup::set_switch_fps 0 1 393 10
/**
 *
 */
49
inline void EggGroup::set_switch_fps(double fps);

1393 14 get_switch_fps 0 4 2034 24 EggGroup::get_switch_fps 0 1 394 10
/**
 *
 */
51
inline double EggGroup::get_switch_fps(void) const;

1394 15 add_object_type 0 4 2034 25 EggGroup::add_object_type 0 1 395 10
/**
 *
 */
70
inline void EggGroup::add_object_type(std::string const &object_type);

1395 18 clear_object_types 0 4 2034 28 EggGroup::clear_object_types 0 1 396 10
/**
 *
 */
47
inline void EggGroup::clear_object_types(void);

1396 20 get_num_object_types 0 4 2034 30 EggGroup::get_num_object_types 0 1 397 10
/**
 *
 */
54
inline int EggGroup::get_num_object_types(void) const;

1397 15 get_object_type 0 4 2034 25 EggGroup::get_object_type 0 1 398 10
/**
 *
 */
62
inline std::string EggGroup::get_object_type(int index) const;

1398 15 has_object_type 0 4 2034 25 EggGroup::has_object_type 0 1 399 104
/**
 * Returns true if the indicated object type has been added to the group, or
 * false otherwise.
 */
69
bool EggGroup::has_object_type(std::string const &object_type) const;

1399 18 remove_object_type 0 4 2034 28 EggGroup::remove_object_type 0 1 400 178
/**
 * Removes the first instance of the indicated object type from the group if
 * it is present.  Returns true if the object type was found and removed,
 * false otherwise.
 */
66
bool EggGroup::remove_object_type(std::string const &object_type);

1400 14 set_model_flag 0 4 2034 24 EggGroup::set_model_flag 0 1 401 10
/**
 *
 */
48
inline void EggGroup::set_model_flag(bool flag);

1401 14 get_model_flag 0 4 2034 24 EggGroup::get_model_flag 0 1 402 10
/**
 *
 */
49
inline bool EggGroup::get_model_flag(void) const;

1402 16 set_texlist_flag 0 4 2034 26 EggGroup::set_texlist_flag 0 1 403 10
/**
 *
 */
50
inline void EggGroup::set_texlist_flag(bool flag);

1403 16 get_texlist_flag 0 4 2034 26 EggGroup::get_texlist_flag 0 1 404 10
/**
 *
 */
51
inline bool EggGroup::get_texlist_flag(void) const;

1404 14 set_nofog_flag 0 4 2034 24 EggGroup::set_nofog_flag 0 1 405 10
/**
 *
 */
48
inline void EggGroup::set_nofog_flag(bool flag);

1405 14 get_nofog_flag 0 4 2034 24 EggGroup::get_nofog_flag 0 1 406 10
/**
 *
 */
49
inline bool EggGroup::get_nofog_flag(void) const;

1406 14 set_decal_flag 0 4 2034 24 EggGroup::set_decal_flag 0 1 407 10
/**
 *
 */
48
inline void EggGroup::set_decal_flag(bool flag);

1407 14 get_decal_flag 0 4 2034 24 EggGroup::get_decal_flag 0 1 408 10
/**
 *
 */
49
inline bool EggGroup::get_decal_flag(void) const;

1408 15 set_direct_flag 0 4 2034 25 EggGroup::set_direct_flag 0 1 409 10
/**
 *
 */
49
inline void EggGroup::set_direct_flag(bool flag);

1409 15 get_direct_flag 0 4 2034 25 EggGroup::get_direct_flag 0 1 410 10
/**
 *
 */
50
inline bool EggGroup::get_direct_flag(void) const;

1410 15 set_portal_flag 0 4 2034 25 EggGroup::set_portal_flag 0 1 411 10
/**
 *
 */
49
inline void EggGroup::set_portal_flag(bool flag);

1411 15 get_portal_flag 0 4 2034 25 EggGroup::get_portal_flag 0 1 412 10
/**
 *
 */
50
inline bool EggGroup::get_portal_flag(void) const;

1412 17 set_occluder_flag 0 4 2034 27 EggGroup::set_occluder_flag 0 1 413 10
/**
 *
 */
51
inline void EggGroup::set_occluder_flag(bool flag);

1413 17 get_occluder_flag 0 4 2034 27 EggGroup::get_occluder_flag 0 1 414 10
/**
 *
 */
52
inline bool EggGroup::get_occluder_flag(void) const;

1414 18 set_polylight_flag 0 4 2034 28 EggGroup::set_polylight_flag 0 1 415 10
/**
 *
 */
52
inline void EggGroup::set_polylight_flag(bool flag);

1415 18 get_polylight_flag 0 4 2034 28 EggGroup::get_polylight_flag 0 1 416 10
/**
 *
 */
53
inline bool EggGroup::get_polylight_flag(void) const;

1416 16 set_indexed_flag 0 4 2034 26 EggGroup::set_indexed_flag 0 1 417 106
/**
 * If this flag is true, geometry at this node and below will be generated as
 * indexed geometry.
 */
50
inline void EggGroup::set_indexed_flag(bool flag);

1417 18 clear_indexed_flag 0 4 2034 28 EggGroup::clear_indexed_flag 0 1 418 10
/**
 *
 */
47
inline void EggGroup::clear_indexed_flag(void);

1418 16 has_indexed_flag 0 4 2034 26 EggGroup::has_indexed_flag 0 1 419 10
/**
 *
 */
51
inline bool EggGroup::has_indexed_flag(void) const;

1419 16 get_indexed_flag 0 4 2034 26 EggGroup::get_indexed_flag 0 1 420 10
/**
 *
 */
51
inline bool EggGroup::get_indexed_flag(void) const;

1420 16 set_collide_mask 0 4 2034 26 EggGroup::set_collide_mask 0 1 421 10
/**
 *
 */
57
inline void EggGroup::set_collide_mask(CollideMask mask);

1421 18 clear_collide_mask 0 4 2034 28 EggGroup::clear_collide_mask 0 1 422 10
/**
 *
 */
47
inline void EggGroup::clear_collide_mask(void);

1422 16 has_collide_mask 0 4 2034 26 EggGroup::has_collide_mask 0 1 423 10
/**
 *
 */
51
inline bool EggGroup::has_collide_mask(void) const;

1423 16 get_collide_mask 0 4 2034 26 EggGroup::get_collide_mask 0 1 424 10
/**
 *
 */
58
inline CollideMask EggGroup::get_collide_mask(void) const;

1424 21 set_from_collide_mask 0 4 2034 31 EggGroup::set_from_collide_mask 0 1 425 10
/**
 *
 */
62
inline void EggGroup::set_from_collide_mask(CollideMask mask);

1425 23 clear_from_collide_mask 0 4 2034 33 EggGroup::clear_from_collide_mask 0 1 426 10
/**
 *
 */
52
inline void EggGroup::clear_from_collide_mask(void);

1426 21 has_from_collide_mask 0 4 2034 31 EggGroup::has_from_collide_mask 0 1 427 10
/**
 *
 */
56
inline bool EggGroup::has_from_collide_mask(void) const;

1427 21 get_from_collide_mask 0 4 2034 31 EggGroup::get_from_collide_mask 0 1 428 10
/**
 *
 */
63
inline CollideMask EggGroup::get_from_collide_mask(void) const;

1428 21 set_into_collide_mask 0 4 2034 31 EggGroup::set_into_collide_mask 0 1 429 10
/**
 *
 */
62
inline void EggGroup::set_into_collide_mask(CollideMask mask);

1429 23 clear_into_collide_mask 0 4 2034 33 EggGroup::clear_into_collide_mask 0 1 430 10
/**
 *
 */
52
inline void EggGroup::clear_into_collide_mask(void);

1430 21 has_into_collide_mask 0 4 2034 31 EggGroup::has_into_collide_mask 0 1 431 10
/**
 *
 */
56
inline bool EggGroup::has_into_collide_mask(void) const;

1431 21 get_into_collide_mask 0 4 2034 31 EggGroup::get_into_collide_mask 0 1 432 10
/**
 *
 */
63
inline CollideMask EggGroup::get_into_collide_mask(void) const;

1432 14 set_blend_mode 0 4 2034 24 EggGroup::set_blend_mode 0 1 433 10
/**
 *
 */
69
inline void EggGroup::set_blend_mode(EggGroup::BlendMode blend_mode);

1433 14 get_blend_mode 0 4 2034 24 EggGroup::get_blend_mode 0 1 434 10
/**
 *
 */
64
inline EggGroup::BlendMode EggGroup::get_blend_mode(void) const;

1434 19 set_blend_operand_a 0 4 2034 29 EggGroup::set_blend_operand_a 0 1 435 10
/**
 *
 */
82
inline void EggGroup::set_blend_operand_a(EggGroup::BlendOperand blend_operand_a);

1435 19 get_blend_operand_a 0 4 2034 29 EggGroup::get_blend_operand_a 0 1 436 10
/**
 *
 */
72
inline EggGroup::BlendOperand EggGroup::get_blend_operand_a(void) const;

1436 19 set_blend_operand_b 0 4 2034 29 EggGroup::set_blend_operand_b 0 1 437 10
/**
 *
 */
82
inline void EggGroup::set_blend_operand_b(EggGroup::BlendOperand blend_operand_b);

1437 19 get_blend_operand_b 0 4 2034 29 EggGroup::get_blend_operand_b 0 1 438 10
/**
 *
 */
72
inline EggGroup::BlendOperand EggGroup::get_blend_operand_b(void) const;

1438 15 set_blend_color 0 4 2034 25 EggGroup::set_blend_color 0 1 439 10
/**
 *
 */
65
inline void EggGroup::set_blend_color(LColor const &blend_color);

1439 17 clear_blend_color 0 4 2034 27 EggGroup::clear_blend_color 0 1 440 49
/**
 * Removes the blend color specification.
 */
46
inline void EggGroup::clear_blend_color(void);

1440 15 has_blend_color 0 4 2034 25 EggGroup::has_blend_color 0 1 441 79
/**
 * Returns true if the blend color has been specified, false otherwise.
 */
50
inline bool EggGroup::has_blend_color(void) const;

1441 15 get_blend_color 0 4 2034 25 EggGroup::get_blend_color 0 1 442 96
/**
 * Returns the blend color if one has been specified, or (0, 0, 0, 0) if one
 * has not.
 */
59
inline LColor const &EggGroup::get_blend_color(void) const;

1442 7 set_lod 0 4 2034 17 EggGroup::set_lod 0 1 443 10
/**
 *
 */
61
inline void EggGroup::set_lod(EggSwitchCondition const &lod);

1443 9 clear_lod 0 4 2034 19 EggGroup::clear_lod 0 1 444 10
/**
 *
 */
38
inline void EggGroup::clear_lod(void);

1444 7 has_lod 0 4 2034 17 EggGroup::has_lod 0 1 445 10
/**
 *
 */
42
inline bool EggGroup::has_lod(void) const;

1445 7 get_lod 0 4 2034 17 EggGroup::get_lod 0 1 446 10
/**
 *
 */
63
inline EggSwitchCondition const &EggGroup::get_lod(void) const;

1446 7 set_tag 0 4 2034 17 EggGroup::set_tag 0 1 447 524
/**
 * Associates a user-defined value with a user-defined key which is stored on
 * the node.  This value has no meaning to Panda; but it is stored
 * indefinitely on the node until it is requested again.  This value will be
 * copied to the PandaNode that is created for this particular EggGroup if the
 * egg file is loaded as a scene.
 *
 * Each unique key stores a different string value.  There is no effective
 * limit on the number of different keys that may be stored or on the length
 * of any one key's value.
 */
80
inline void EggGroup::set_tag(std::string const &key, std::string const &value);

1447 7 get_tag 0 4 2034 17 EggGroup::get_tag 0 1 448 182
/**
 * Retrieves the user-defined value that was previously set on this node for
 * the particular key, if any.  If no value has been previously set, returns
 * the empty string.
 */
67
inline std::string EggGroup::get_tag(std::string const &key) const;

1448 7 has_tag 0 4 2034 17 EggGroup::has_tag 0 1 449 170
/**
 * Returns true if a value has been defined on this node for the particular
 * key (even if that value is the empty string), or false if no value has been
 * set.
 */
60
inline bool EggGroup::has_tag(std::string const &key) const;

1449 9 clear_tag 0 4 2034 19 EggGroup::clear_tag 0 1 450 158
/**
 * Removes the value defined for this key on this particular node.  After a
 * call to clear_tag(), has_tag() will return false for the indicated key.
 */
56
inline void EggGroup::clear_tag(std::string const &key);

1450 16 get_default_pose 0 4 2034 26 EggGroup::get_default_pose 0 1 451 315
/**
 * Returns a read-only accessor to the initial pose transform.  This is the
 * <DefaultPose> entry for a Joint, and defines only the initial transform
 * pose for the unanimated joint; it has nothing to do with the group's
 * <Transform> entry, which defines the (eventual) space of the group's
 * vertices.
 */
66
inline EggTransform const &EggGroup::get_default_pose(void) const;

1451 19 modify_default_pose 0 4 2034 29 EggGroup::modify_default_pose 0 1 452 314
/**
 * Returns a writable accessor to the initial pose transform.  This is the
 * <DefaultPose> entry for a Joint, and defines only the initial transform
 * pose for the unanimated joint; it has nothing to do with the group's
 * <Transform> entry, which defines the (eventual) space of the group's
 * vertices.
 */
57
inline EggTransform &EggGroup::modify_default_pose(void);

1452 16 set_default_pose 0 4 2034 26 EggGroup::set_default_pose 0 1 453 289
/**
 * Replaces the initial pose transform.  This is the <DefaultPose> entry for a
 * Joint, and defines only the initial transform pose for the unanimated
 * joint; it has nothing to do with the group's <Transform> entry, which
 * defines the (eventual) space of the group's vertices.
 */
70
inline void EggGroup::set_default_pose(EggTransform const &transform);

1453 18 clear_default_pose 0 4 2034 28 EggGroup::clear_default_pose 0 1 454 71
/**
 * Removes the initial pose transform.  See set_default_pose().
 */
47
inline void EggGroup::clear_default_pose(void);

1454 12 set_scroll_u 0 4 2034 22 EggGroup::set_scroll_u 0 1 455 0
57
inline void EggGroup::set_scroll_u(double const u_speed);

1455 12 set_scroll_v 0 4 2034 22 EggGroup::set_scroll_v 0 1 456 0
57
inline void EggGroup::set_scroll_v(double const v_speed);

1456 12 set_scroll_w 0 4 2034 22 EggGroup::set_scroll_w 0 1 457 0
57
inline void EggGroup::set_scroll_w(double const w_speed);

1457 12 set_scroll_r 0 4 2034 22 EggGroup::set_scroll_r 0 1 458 0
57
inline void EggGroup::set_scroll_r(double const r_speed);

1458 12 get_scroll_u 0 4 2034 22 EggGroup::get_scroll_u 0 1 459 0
49
inline double EggGroup::get_scroll_u(void) const;

1459 12 get_scroll_v 0 4 2034 22 EggGroup::get_scroll_v 0 1 460 0
49
inline double EggGroup::get_scroll_v(void) const;

1460 12 get_scroll_w 0 4 2034 22 EggGroup::get_scroll_w 0 1 461 0
49
inline double EggGroup::get_scroll_w(void) const;

1461 12 get_scroll_r 0 4 2034 22 EggGroup::get_scroll_r 0 1 462 0
49
inline double EggGroup::get_scroll_r(void) const;

1462 17 has_scrolling_uvs 0 4 2034 27 EggGroup::has_scrolling_uvs 0 1 463 0
46
inline bool EggGroup::has_scrolling_uvs(void);

1463 10 ref_vertex 0 4 2034 20 EggGroup::ref_vertex 0 1 464 213
/**
 * Adds the vertex to the set of those referenced by the group, at the
 * indicated membership level.  If the vertex is already being referenced,
 * increases the membership amount by the indicated amount.
 */
68
void EggGroup::ref_vertex(EggVertex *vert, double membership = 1.0);

1464 12 unref_vertex 0 4 2034 22 EggGroup::unref_vertex 0 1 465 130
/**
 * Removes the vertex from the set of those referenced by the group.  Does
 * nothing if the vertex is not already reffed.
 */
45
void EggGroup::unref_vertex(EggVertex *vert);

1465 18 unref_all_vertices 0 4 2034 28 EggGroup::unref_all_vertices 0 1 466 56
/**
 * Removes all vertices from the reference list.
 */
40
void EggGroup::unref_all_vertices(void);

1466 21 get_vertex_membership 0 4 2034 31 EggGroup::get_vertex_membership 0 1 467 139
/**
 * Returns the amount of membership of the indicated vertex in this group.  If
 * the vertex is not reffed by the group, returns 0.
 */
68
double EggGroup::get_vertex_membership(EggVertex const *vert) const;

1467 21 set_vertex_membership 0 4 2034 31 EggGroup::set_vertex_membership 0 1 468 106
/**
 * Explicitly sets the net membership of the indicated vertex in this group to
 * the given value.
 */
73
void EggGroup::set_vertex_membership(EggVertex *vert, double membership);

1468 11 steal_vrefs 0 4 2034 21 EggGroup::steal_vrefs 0 1 469 195
/**
 * Moves all of the vertex references from the indicated other group into this
 * one.  If a given vertex was previously shared by both groups, the relative
 * memberships will be summed.
 */
44
void EggGroup::steal_vrefs(EggGroup *other);

1469 19 test_vref_integrity 0 4 2034 29 EggGroup::test_vref_integrity 0 1 470 0
47
void EggGroup::test_vref_integrity(void) const;

1470 13 add_group_ref 0 4 2034 23 EggGroup::add_group_ref 0 1 471 207
/**
 * Adds a new <Ref> entry to the group.  This declares an internal reference
 * to another node, and is used to implement scene-graph instancing; it is
 * only valid if the group_type is GT_instance.
 */
46
void EggGroup::add_group_ref(EggGroup *group);

1471 18 get_num_group_refs 0 4 2034 28 EggGroup::get_num_group_refs 0 1 472 90
/**
 * Returns the number of <Ref> entries within this group.  See
 * add_group_ref().
 */
45
int EggGroup::get_num_group_refs(void) const;

1472 13 get_group_ref 0 4 2034 23 EggGroup::get_group_ref 0 1 473 79
/**
 * Returns the nth <Ref> entry within this group.  See add_group_ref().
 */
47
EggGroup *EggGroup::get_group_ref(int n) const;

1473 16 remove_group_ref 0 4 2034 26 EggGroup::remove_group_ref 0 1 474 79
/**
 * Removes the nth <Ref> entry within this group.  See add_group_ref().
 */
39
void EggGroup::remove_group_ref(int n);

1474 16 clear_group_refs 0 4 2034 26 EggGroup::clear_group_refs 0 1 475 84
/**
 * Removes all of the <Ref> entries within this group.  See add_group_ref().
 */
38
void EggGroup::clear_group_refs(void);

1475 17 string_group_type 0 4 2034 27 EggGroup::string_group_type 0 1 476 163
/**
 * Returns the GroupType value associated with the given string
 * representation, or GT_invalid if the string does not match any known
 * GroupType value.
 */
82
static EggGroup::GroupType EggGroup::string_group_type(std::string const &strval);

1476 16 string_dart_type 0 4 2034 26 EggGroup::string_dart_type 0 1 477 155
/**
 * Returns the DartType value associated with the given string representation,
 * or DT_none if the string does not match any known DartType value.
 */
80
static EggGroup::DartType EggGroup::string_dart_type(std::string const &strval);

1477 15 string_dcs_type 0 4 2034 25 EggGroup::string_dcs_type 0 1 478 160
/**
 * Returns the DCSType value associated with the given string representation,
 * or DC_unspecified if the string does not match any known DCSType value.
 */
78
static EggGroup::DCSType EggGroup::string_dcs_type(std::string const &strval);

1478 21 string_billboard_type 0 4 2034 31 EggGroup::string_billboard_type 0 1 479 168
/**
 * Returns the BillboardType value associated with the given string
 * representation, or BT_none if the string does not match any known
 * BillboardType value.
 */
90
static EggGroup::BillboardType EggGroup::string_billboard_type(std::string const &strval);

1479 14 string_cs_type 0 4 2034 24 EggGroup::string_cs_type 0 1 480 179
/**
 * Returns the CollisionSolidType value associated with the given string
 * representation, or CST_none if the string does not match any known
 * CollisionSolidType value.
 */
88
static EggGroup::CollisionSolidType EggGroup::string_cs_type(std::string const &strval);

1480 20 string_collide_flags 0 4 2034 30 EggGroup::string_collide_flags 0 1 481 260
/**
 * Returns the CollideFlags value associated with the given string
 * representation, or CF_none if the string does not match any known
 * CollideFlags value.  This only recognizes a single keyword; it does not
 * attempt to parse a string of keywords.
 */
88
static EggGroup::CollideFlags EggGroup::string_collide_flags(std::string const &strval);

1481 17 string_blend_mode 0 4 2034 27 EggGroup::string_blend_mode 0 1 482 154
/**
 * Returns the BlendMode value associated with the given string
 * representation, or BM_none if the string does not match any known
 * BlendMode.
 */
82
static EggGroup::BlendMode EggGroup::string_blend_mode(std::string const &strval);

1482 20 string_blend_operand 0 4 2034 30 EggGroup::string_blend_operand 0 1 483 160
/**
 * Returns the BlendOperand value associated with the given string
 * representation, or BO_none if the string does not match any known
 * BlendOperand.
 */
88
static EggGroup::BlendOperand EggGroup::string_blend_operand(std::string const &strval);

1483 14 get_class_type 0 4 2034 24 EggGroup::get_class_type 0 1 484 0
49
static TypeHandle EggGroup::get_class_type(void);

1484 6 EggBin 0 260 2062 14 EggBin::EggBin 0 3 488 489 490 34
/**
 *
 */

/**
 *
 */

/**
 *
 */
128
explicit EggBin::EggBin(std::string const &name = "");
EggBin::EggBin(EggGroup const &copy);
EggBin::EggBin(EggBin const &copy);

1485 14 set_bin_number 0 4 2062 22 EggBin::set_bin_number 0 1 491 10
/**
 *
 */
44
void EggBin::set_bin_number(int bin_number);

1486 14 get_bin_number 0 4 2062 22 EggBin::get_bin_number 0 1 492 10
/**
 *
 */
39
int EggBin::get_bin_number(void) const;

1487 14 get_class_type 0 4 2062 22 EggBin::get_class_type 0 1 493 0
47
static TypeHandle EggBin::get_class_type(void);

1488 7 ~EggBin 0 516 2062 15 EggBin::~EggBin 0 0 0
22
EggBin::~EggBin(void);

1489 9 make_bins 0 4 2063 22 EggBinMaker::make_bins 0 1 494 208
/**
 * The main entry point to EggBinMaker.  Walks the egg scene graph beginning
 * at the indicated root node, and moves all binnable nodes into EggBin
 * objects.  Returns the number of EggBins created.
 */
53
int EggBinMaker::make_bins(EggGroupNode *root_group);

1490 12 prepare_node 0 6 2063 25 EggBinMaker::prepare_node 0 1 495 171
/**
 * May be overridden in derived classes to perform some setup work as each
 * node is encountered.  This will be called once for each node in the egg
 * hierarchy.
 */
54
virtual void EggBinMaker::prepare_node(EggNode *node);

1491 14 get_bin_number 0 6 2063 27 EggBinMaker::get_bin_number 0 1 496 0
65
virtual int EggBinMaker::get_bin_number(EggNode const *node) = 0;

1492 10 sorts_less 0 6 2063 23 EggBinMaker::sorts_less 0 1 497 361
/**
 * May be overridden in derived classes to create additional bins within a
 * particular bin number, based on some arbitrary property of nodes.  This
 * function establishes an arbitrary but fixed ordering between nodes; if two
 * nodes do not sort to the same position, different bins are created for each
 * one (with the same bin number on each bin).
 */
89
virtual bool EggBinMaker::sorts_less(int bin_number, EggNode const *a, EggNode const *b);

1493 14 collapse_group 0 6 2063 27 EggBinMaker::collapse_group 0 1 498 145
/**
 * May be overridden in derived classes to specify whether a particular group
 * node, apparently redundant, may be safely collapsed out.
 */
80
virtual bool EggBinMaker::collapse_group(EggGroup const *group, int bin_number);

1494 12 get_bin_name 0 6 2063 25 EggBinMaker::get_bin_name 0 1 499 130
/**
 * May be overridden in derived classes to define a name for each new bin,
 * based on its bin number, and a sample child.
 */
84
virtual std::string EggBinMaker::get_bin_name(int bin_number, EggNode const *child);

1495 8 make_bin 0 6 2063 21 EggBinMaker::make_bin 0 1 500 352
/**
 * May be overridden in derived classes to construct a new EggBin object (or
 * some derived class, if needed), and preload some initial data into as
 * required.
 *
 * child is an arbitrary child of the bin, and collapse_from is the group the
 * bin is being collapsed with, if any (implying collapse_group() returned
 * true), or NULL if not.
 */
113
virtual PointerTo< EggBin > EggBinMaker::make_bin(int bin_number, EggNode const *child, EggGroup *collapse_from);

1496 14 get_class_type 0 4 2063 27 EggBinMaker::get_class_type 0 1 501 0
52
static TypeHandle EggBinMaker::get_class_type(void);

1497 10 EggComment 0 260 2064 22 EggComment::EggComment 0 2 502 503 22
/**
 *
 */

/**
 *
 */
152
inline explicit EggComment::EggComment(std::string const &node_name, std::string const &comment);
inline EggComment::EggComment(EggComment const &copy);

1498 10 operator = 0 4 2064 22 EggComment::operator = 0 2 504 505 22
/**
 *
 */

/**
 *
 */
123
inline void EggComment::operator =(std::string const &comment);
inline void EggComment::operator =(EggComment const &copy);

1499 17 operator typecast 0 132 2064 29 EggComment::operator typecast 0 1 510 0
48
inline operator std::string const &(void) const;

1500 11 set_comment 0 4 2064 23 EggComment::set_comment 0 1 506 10
/**
 *
 */
64
inline void EggComment::set_comment(std::string const &comment);

1501 11 get_comment 0 4 2064 23 EggComment::get_comment 0 1 507 10
/**
 *
 */
55
inline std::string EggComment::get_comment(void) const;

1502 10 __reduce__ 0 4 2064 22 EggComment::__reduce__ 0 1 508 0
45
PyObject *EggComment::__reduce__(void) const;

1503 14 get_class_type 0 4 2064 26 EggComment::get_class_type 0 1 509 0
51
static TypeHandle EggComment::get_class_type(void);

1504 11 ~EggComment 0 516 2064 23 EggComment::~EggComment 0 0 0
30
EggComment::~EggComment(void);

1505 10 operator = 0 4 2065 27 EggFilenameNode::operator = 0 1 511 10
/**
 *
 */
69
inline void EggFilenameNode::operator =(EggFilenameNode const &copy);

1506 21 get_default_extension 0 6 2065 38 EggFilenameNode::get_default_extension 0 1 512 64
/**
 * Returns the default extension for this filename type.
 */
71
virtual std::string EggFilenameNode::get_default_extension(void) const;

1507 12 get_filename 0 4 2065 29 EggFilenameNode::get_filename 0 1 513 61
/**
 * Returns a nonmodifiable reference to the filename.
 */
65
inline Filename const &EggFilenameNode::get_filename(void) const;

1508 12 set_filename 0 4 2065 29 EggFilenameNode::set_filename 0 1 514 10
/**
 *
 */
68
inline void EggFilenameNode::set_filename(Filename const &filename);

1509 12 get_fullpath 0 4 2065 29 EggFilenameNode::get_fullpath 0 1 515 472
/**
 * Returns the full pathname to the file, if it is known; otherwise, returns
 * the same thing as get_filename().
 *
 * This function simply returns whatever was set by the last call to
 * set_fullpath().  This string is not written to the egg file; its main
 * purpose is to record the full path to a filename (for instance, a texture
 * filename) if it is known, for egg structures that are generated in-memory
 * and then immediately converted to a scene graph.
 */
65
inline Filename const &EggFilenameNode::get_fullpath(void) const;

1510 12 set_fullpath 0 4 2065 29 EggFilenameNode::set_fullpath 0 1 516 84
/**
 * Records the full pathname to the file, for the benefit of get_fullpath().
 */
68
inline void EggFilenameNode::set_fullpath(Filename const &fullpath);

1511 14 get_class_type 0 4 2065 31 EggFilenameNode::get_class_type 0 1 517 0
56
static TypeHandle EggFilenameNode::get_class_type(void);

1512 16 ~EggFilenameNode 0 516 2065 33 EggFilenameNode::~EggFilenameNode 0 0 0
40
EggFilenameNode::~EggFilenameNode(void);

1513 25 upcast_to_EggFilenameNode 0 12 2066 37 EggTexture::upcast_to_EggFilenameNode 0 1 638 41
upcast from EggTexture to EggFilenameNode
61
EggFilenameNode *EggTexture::upcast_to_EggFilenameNode(void);

1514 22 downcast_to_EggTexture 0 12 2065 39 EggFilenameNode::downcast_to_EggTexture 0 0 43
downcast from EggFilenameNode to EggTexture
58
EggTexture *EggFilenameNode::downcast_to_EggTexture(void);

1515 23 upcast_to_EggRenderMode 0 12 2066 35 EggTexture::upcast_to_EggRenderMode 0 1 639 39
upcast from EggTexture to EggRenderMode
57
EggRenderMode *EggTexture::upcast_to_EggRenderMode(void);

1516 22 downcast_to_EggTexture 0 12 2025 37 EggRenderMode::downcast_to_EggTexture 0 0 41
downcast from EggRenderMode to EggTexture
56
EggTexture *EggRenderMode::downcast_to_EggTexture(void);

1517 22 upcast_to_EggTransform 0 12 2066 34 EggTexture::upcast_to_EggTransform 0 1 640 38
upcast from EggTexture to EggTransform
55
EggTransform *EggTexture::upcast_to_EggTransform(void);

1518 22 downcast_to_EggTexture 0 12 2030 36 EggTransform::downcast_to_EggTexture 0 0 40
downcast from EggTransform to EggTexture
55
EggTexture *EggTransform::downcast_to_EggTexture(void);

1519 10 EggTexture 0 260 2066 22 EggTexture::EggTexture 0 2 518 519 22
/**
 *
 */

/**
 *
 */
136
explicit EggTexture::EggTexture(std::string const &tref_name, Filename const &filename);
EggTexture::EggTexture(EggTexture const &copy);

1520 10 operator = 0 4 2066 22 EggTexture::operator = 0 1 520 10
/**
 *
 */
52
void EggTexture::operator =(EggTexture const &copy);

1521 11 ~EggTexture 0 518 2066 23 EggTexture::~EggTexture 0 0 10
/**
 *
 */
38
virtual EggTexture::~EggTexture(void);

1522 5 write 0 6 2066 17 EggTexture::write 0 1 521 86
/**
 * Writes the texture definition to the indicated output stream in Egg format.
 */
74
virtual void EggTexture::write(std::ostream &out, int indent_level) const;

1523 16 is_equivalent_to 0 4 2066 28 EggTexture::is_equivalent_to 0 1 522 899
/**
 * Returns true if the two textures are equivalent in all relevant properties
 * (according to eq), false otherwise.
 *
 * The Equivalence parameter, eq, should be set to the bitwise OR of the
 * following properties, according to what you consider relevant:
 *
 * EggTexture::E_basename: The basename part of the texture filename, without
 * the directory prefix *or* the filename extension.
 *
 * EggTexture::E_extension: The extension part of the texture filename.
 *
 * EggTexture::E_dirname: The directory prefix of the texture filename.
 *
 * EggTexture::E_complete_filename: The union of the above three; that is, the
 * complete filename, with directory, basename, and extension.
 *
 * EggTexture::E_transform: The texture matrix.
 *
 * EggTexture::E_attributes: All remaining texture attributes (mode, mipmap,
 * etc.) except TRef name.
 *
 * EggTexture::E_tref_name: The TRef name.
 */
73
bool EggTexture::is_equivalent_to(EggTexture const &other, int eq) const;

1524 15 sorts_less_than 0 4 2066 27 EggTexture::sorts_less_than 0 1 523 224
/**
 * An ordering operator to compare two textures for sorting order.  This
 * imposes an arbitrary ordering useful to identify unique textures, according
 * to the indicated Equivalence factor.  See is_equivalent_to().
 */
72
bool EggTexture::sorts_less_than(EggTexture const &other, int eq) const;

1525 17 has_alpha_channel 0 4 2066 29 EggTexture::has_alpha_channel 0 1 524 260
/**
 * Given the number of color components (channels) in the image file as
 * actually read from the disk, return true if this texture seems to have an
 * alpha channel or not.  This depends on the EggTexture's format as well as
 * the number of channels.
 */
61
bool EggTexture::has_alpha_channel(int num_components) const;

1526 16 set_texture_type 0 4 2066 28 EggTexture::set_texture_type 0 1 525 10
/**
 *
 */
79
inline void EggTexture::set_texture_type(EggTexture::TextureType texture_type);

1527 16 get_texture_type 0 4 2066 28 EggTexture::get_texture_type 0 1 526 10
/**
 *
 */
72
inline EggTexture::TextureType EggTexture::get_texture_type(void) const;

1528 10 set_format 0 4 2066 22 EggTexture::set_format 0 1 527 10
/**
 *
 */
62
inline void EggTexture::set_format(EggTexture::Format format);

1529 10 get_format 0 4 2066 22 EggTexture::get_format 0 1 528 10
/**
 *
 */
61
inline EggTexture::Format EggTexture::get_format(void) const;

1530 20 set_compression_mode 0 4 2066 32 EggTexture::set_compression_mode 0 1 529 10
/**
 *
 */
79
inline void EggTexture::set_compression_mode(EggTexture::CompressionMode mode);

1531 20 get_compression_mode 0 4 2066 32 EggTexture::get_compression_mode 0 1 530 10
/**
 *
 */
80
inline EggTexture::CompressionMode EggTexture::get_compression_mode(void) const;

1532 13 set_wrap_mode 0 4 2066 25 EggTexture::set_wrap_mode 0 1 531 10
/**
 *
 */
65
inline void EggTexture::set_wrap_mode(EggTexture::WrapMode mode);

1533 13 get_wrap_mode 0 4 2066 25 EggTexture::get_wrap_mode 0 1 532 10
/**
 *
 */
66
inline EggTexture::WrapMode EggTexture::get_wrap_mode(void) const;

1534 10 set_wrap_u 0 4 2066 22 EggTexture::set_wrap_u 0 1 533 10
/**
 *
 */
62
inline void EggTexture::set_wrap_u(EggTexture::WrapMode mode);

1535 10 get_wrap_u 0 4 2066 22 EggTexture::get_wrap_u 0 1 534 120
/**
 * Returns the amount specified for U wrap.  This may be unspecified, even if
 * there is an overall wrap value.
 */
63
inline EggTexture::WrapMode EggTexture::get_wrap_u(void) const;

1536 16 determine_wrap_u 0 4 2066 28 EggTexture::determine_wrap_u 0 1 535 178
/**
 * Determines the appropriate wrap in the U direction.  This is different from
 * get_wrap_u() in that if the U wrap is unspecified, it returns the overall
 * wrap value.
 */
69
inline EggTexture::WrapMode EggTexture::determine_wrap_u(void) const;

1537 10 set_wrap_v 0 4 2066 22 EggTexture::set_wrap_v 0 1 536 10
/**
 *
 */
62
inline void EggTexture::set_wrap_v(EggTexture::WrapMode mode);

1538 10 get_wrap_v 0 4 2066 22 EggTexture::get_wrap_v 0 1 537 120
/**
 * Returns the amount specified for V wrap.  This may be unspecified, even if
 * there is an overall wrap value.
 */
63
inline EggTexture::WrapMode EggTexture::get_wrap_v(void) const;

1539 16 determine_wrap_v 0 4 2066 28 EggTexture::determine_wrap_v 0 1 538 178
/**
 * Determines the appropriate wrap in the V direction.  This is different from
 * get_wrap_v() in that if the V wrap is unspecified, it returns the overall
 * wrap value.
 */
69
inline EggTexture::WrapMode EggTexture::determine_wrap_v(void) const;

1540 10 set_wrap_w 0 4 2066 22 EggTexture::set_wrap_w 0 1 539 10
/**
 *
 */
62
inline void EggTexture::set_wrap_w(EggTexture::WrapMode mode);

1541 10 get_wrap_w 0 4 2066 22 EggTexture::get_wrap_w 0 1 540 120
/**
 * Returns the amount specified for W wrap.  This may be unspecified, even if
 * there is an overall wrap value.
 */
63
inline EggTexture::WrapMode EggTexture::get_wrap_w(void) const;

1542 16 determine_wrap_w 0 4 2066 28 EggTexture::determine_wrap_w 0 1 541 178
/**
 * Determines the appropriate wrap in the W direction.  This is different from
 * get_wrap_w() in that if the W wrap is unspecified, it returns the overall
 * wrap value.
 */
69
inline EggTexture::WrapMode EggTexture::determine_wrap_w(void) const;

1543 13 set_minfilter 0 4 2066 25 EggTexture::set_minfilter 0 1 542 10
/**
 *
 */
67
inline void EggTexture::set_minfilter(EggTexture::FilterType type);

1544 13 get_minfilter 0 4 2066 25 EggTexture::get_minfilter 0 1 543 10
/**
 *
 */
68
inline EggTexture::FilterType EggTexture::get_minfilter(void) const;

1545 13 set_magfilter 0 4 2066 25 EggTexture::set_magfilter 0 1 544 10
/**
 *
 */
67
inline void EggTexture::set_magfilter(EggTexture::FilterType type);

1546 13 get_magfilter 0 4 2066 25 EggTexture::get_magfilter 0 1 545 10
/**
 *
 */
68
inline EggTexture::FilterType EggTexture::get_magfilter(void) const;

1547 22 set_anisotropic_degree 0 4 2066 34 EggTexture::set_anisotropic_degree 0 1 546 127
/**
 * Sets the degree of anisotropic filtering for this texture.  1 is off;
 * higher levels indicate filtering in effect.
 */
71
inline void EggTexture::set_anisotropic_degree(int anisotropic_degree);

1548 24 clear_anisotropic_degree 0 4 2066 36 EggTexture::clear_anisotropic_degree 0 1 547 79
/**
 * Removes the specification of anisotropic filtering from the texture.
 */
55
inline void EggTexture::clear_anisotropic_degree(void);

1549 22 has_anisotropic_degree 0 4 2066 34 EggTexture::has_anisotropic_degree 0 1 548 128
/**
 * Returns true if a value for the anisotropic filtering degree has been
 * specified for this texture, false otherwise.
 */
59
inline bool EggTexture::has_anisotropic_degree(void) const;

1550 22 get_anisotropic_degree 0 4 2066 34 EggTexture::get_anisotropic_degree 0 1 549 132
/**
 * Returns the anisotropic filtering degree that has been specified for this
 * texture, or 0 if nothing has been specified.
 */
58
inline int EggTexture::get_anisotropic_degree(void) const;

1551 12 set_env_type 0 4 2066 24 EggTexture::set_env_type 0 1 550 10
/**
 *
 */
63
inline void EggTexture::set_env_type(EggTexture::EnvType type);

1552 12 get_env_type 0 4 2066 24 EggTexture::get_env_type 0 1 551 10
/**
 *
 */
64
inline EggTexture::EnvType EggTexture::get_env_type(void) const;

1553 21 affects_polygon_alpha 0 4 2066 33 EggTexture::affects_polygon_alpha 0 1 552 162
/**
 * Returns true if this texture's environment type or combine mode allows the
 * texture to have an effect on the polygon's alpha values, false otherwise.
 */
51
bool EggTexture::affects_polygon_alpha(void) const;

1554 16 set_combine_mode 0 4 2066 28 EggTexture::set_combine_mode 0 1 553 10
/**
 *
 */
105
inline void EggTexture::set_combine_mode(EggTexture::CombineChannel channel, EggTexture::CombineMode cm);

1555 16 get_combine_mode 0 4 2066 28 EggTexture::get_combine_mode 0 1 554 10
/**
 *
 */
102
inline EggTexture::CombineMode EggTexture::get_combine_mode(EggTexture::CombineChannel channel) const;

1556 18 set_combine_source 0 4 2066 30 EggTexture::set_combine_source 0 1 555 10
/**
 *
 */
116
inline void EggTexture::set_combine_source(EggTexture::CombineChannel channel, int n, EggTexture::CombineSource cs);

1557 18 get_combine_source 0 4 2066 30 EggTexture::get_combine_source 0 1 556 10
/**
 *
 */
113
inline EggTexture::CombineSource EggTexture::get_combine_source(EggTexture::CombineChannel channel, int n) const;

1558 19 set_combine_operand 0 4 2066 31 EggTexture::set_combine_operand 0 1 557 10
/**
 *
 */
118
inline void EggTexture::set_combine_operand(EggTexture::CombineChannel channel, int n, EggTexture::CombineOperand co);

1559 19 get_combine_operand 0 4 2066 31 EggTexture::get_combine_operand 0 1 558 10
/**
 *
 */
115
inline EggTexture::CombineOperand EggTexture::get_combine_operand(EggTexture::CombineChannel channel, int n) const;

1560 16 set_saved_result 0 4 2066 28 EggTexture::set_saved_result 0 1 559 614
/**
 * Sets the saved_result flag.  When this is true, the output of this stage is
 * not part of the normal pipeline--that is, it will not be supplied as the
 * "previous" source for the next texture stage--but it will instead be
 * supplied as the "last_saved_result" source for any future stages, until the
 * next TextureStage with a saved_result set true is encountered.
 *
 * This can be used to reuse the results of this texture stage as input to
 * more than one stage later in the pipeline.
 *
 * The last texture in the pipeline (the one with the highest sort value)
 * should not have this flag set.
 */
60
inline void EggTexture::set_saved_result(bool saved_result);

1561 16 get_saved_result 0 4 2066 28 EggTexture::get_saved_result 0 1 560 92
/**
 * Returns the current setting of the saved_result flag.  See
 * set_saved_result().
 */
53
inline bool EggTexture::get_saved_result(void) const;

1562 11 set_tex_gen 0 4 2066 23 EggTexture::set_tex_gen 0 1 561 10
/**
 *
 */
64
inline void EggTexture::set_tex_gen(EggTexture::TexGen tex_gen);

1563 11 get_tex_gen 0 4 2066 23 EggTexture::get_tex_gen 0 1 562 10
/**
 *
 */
62
inline EggTexture::TexGen EggTexture::get_tex_gen(void) const;

1564 17 set_quality_level 0 4 2066 29 EggTexture::set_quality_level 0 1 563 10
/**
 *
 */
82
inline void EggTexture::set_quality_level(EggTexture::QualityLevel quality_level);

1565 17 get_quality_level 0 4 2066 29 EggTexture::get_quality_level 0 1 564 10
/**
 *
 */
74
inline EggTexture::QualityLevel EggTexture::get_quality_level(void) const;

1566 14 set_stage_name 0 4 2066 26 EggTexture::set_stage_name 0 1 565 442
/**
 * Specifies the particular TextureStage this texture will be rendered on by
 * name.  If this is omitted, the texture will be rendered on the default
 * TextureStage, unless some other stage-specific property is specificied, in
 * which case the texture will be rendered on a TextureStage with the same
 * name as the tref.  This is in support of multitexturing.
 *
 * Each different TextureStage in the world must be uniquely named.
 */
70
inline void EggTexture::set_stage_name(std::string const &stage_name);

1567 16 clear_stage_name 0 4 2066 28 EggTexture::clear_stage_name 0 1 566 56
/**
 * Removes the named TextureStage specification.
 */
47
inline void EggTexture::clear_stage_name(void);

1568 14 has_stage_name 0 4 2066 26 EggTexture::has_stage_name 0 1 567 107
/**
 * Returns true if a stage name has been explicitly specified for this
 * texture, false otherwise.
 */
51
inline bool EggTexture::has_stage_name(void) const;

1569 14 get_stage_name 0 4 2066 26 EggTexture::get_stage_name 0 1 568 146
/**
 * Returns the stage name that has been specified for this texture, or the
 * tref name if no texture stage has explicitly been specified.
 */
65
inline std::string const &EggTexture::get_stage_name(void) const;

1570 12 set_priority 0 4 2066 24 EggTexture::set_priority 0 1 569 178
/**
 * Sets the importance of this texture with respect to other textures also
 * applied on the same geometry.  This is only meaningful in the presence of
 * multitexturing.
 */
51
inline void EggTexture::set_priority(int priority);

1571 14 clear_priority 0 4 2066 26 EggTexture::clear_priority 0 1 570 116
/**
 * Removes the specification of multitexture priority from the texture.  The
 * default priority value is 0.
 */
45
inline void EggTexture::clear_priority(void);

1572 12 has_priority 0 4 2066 24 EggTexture::has_priority 0 1 571 127
/**
 * Returns true if a priority value for multitexture importance has been
 * specified for the texture, false otherwise.
 */
49
inline bool EggTexture::has_priority(void) const;

1573 12 get_priority 0 4 2066 24 EggTexture::get_priority 0 1 572 142
/**
 * Returns the multitexture importance value that has been specified for the
 * texture, or 0 if no priority value has been specified.
 */
48
inline int EggTexture::get_priority(void) const;

1574 9 set_color 0 4 2066 21 EggTexture::set_color 0 1 573 10
/**
 *
 */
55
inline void EggTexture::set_color(LColor const &color);

1575 11 clear_color 0 4 2066 23 EggTexture::clear_color 0 1 574 10
/**
 *
 */
42
inline void EggTexture::clear_color(void);

1576 9 has_color 0 4 2066 21 EggTexture::has_color 0 1 575 76
/**
 * Returns true if a blend color has been specified for the texture.
 */
46
inline bool EggTexture::has_color(void) const;

1577 9 get_color 0 4 2066 21 EggTexture::get_color 0 1 576 91
/**
 * Returns the blend color if one has been specified, or (0, 0, 0, 1)
 * otherwise.
 */
55
inline LColor const &EggTexture::get_color(void) const;

1578 16 set_border_color 0 4 2066 28 EggTexture::set_border_color 0 1 577 10
/**
 *
 */
69
inline void EggTexture::set_border_color(LColor const &border_color);

1579 18 clear_border_color 0 4 2066 30 EggTexture::clear_border_color 0 1 578 10
/**
 *
 */
49
inline void EggTexture::clear_border_color(void);

1580 16 has_border_color 0 4 2066 28 EggTexture::has_border_color 0 1 579 77
/**
 * Returns true if a border color has been specified for the texture.
 */
53
inline bool EggTexture::has_border_color(void) const;

1581 16 get_border_color 0 4 2066 28 EggTexture::get_border_color 0 1 580 92
/**
 * Returns the border color if one has been specified, or (0, 0, 0, 1)
 * otherwise.
 */
62
inline LColor const &EggTexture::get_border_color(void) const;

1582 11 set_uv_name 0 4 2066 23 EggTexture::set_uv_name 0 1 581 309
/**
 * Specifies the named set of texture coordinates that this texture will use
 * when it is applied to geometry.  Geometry may have multiple sets of texture
 * coordinates defined, by name.
 *
 * If this is not specified for a particular texture, the default set of
 * texture coordinates will be used.
 */
64
inline void EggTexture::set_uv_name(std::string const &uv_name);

1583 13 clear_uv_name 0 4 2066 25 EggTexture::clear_uv_name 0 1 582 153
/**
 * Removes the restriction to a particular named set of texture coordinates
 * and restores the texture to using the default texture coordinates.
 */
44
inline void EggTexture::clear_uv_name(void);

1584 11 has_uv_name 0 4 2066 23 EggTexture::has_uv_name 0 1 583 110
/**
 * Returns true if a texcoord name has been explicitly specified for this
 * texture, false otherwise.
 */
48
inline bool EggTexture::has_uv_name(void) const;

1585 11 get_uv_name 0 4 2066 23 EggTexture::get_uv_name 0 1 584 152
/**
 * Returns the texcoord name that has been specified for this texture, or the
 * empty string if no texcoord name has explicitly been specified.
 */
62
inline std::string const &EggTexture::get_uv_name(void) const;

1586 13 set_rgb_scale 0 4 2066 25 EggTexture::set_rgb_scale 0 1 585 220
/**
 * Sets an additional factor that will scale all three r, g, b components
 * after the texture has been applied.  This is used only when a combine mode
 * is in effect.
 *
 * The only legal values are 1, 2, or 4.
 */
53
inline void EggTexture::set_rgb_scale(int rgb_scale);

1587 15 clear_rgb_scale 0 4 2066 27 EggTexture::clear_rgb_scale 0 1 586 95
/**
 * Removes the rgb_scale from the texture and restores it to the default value
 * of 1.
 */
46
inline void EggTexture::clear_rgb_scale(void);

1588 13 has_rgb_scale 0 4 2066 25 EggTexture::has_rgb_scale 0 1 587 95
/**
 * Returns true if an rgb_scale has been specified for the texture, false
 * otherwise.
 */
50
inline bool EggTexture::has_rgb_scale(void) const;

1589 13 get_rgb_scale 0 4 2066 25 EggTexture::get_rgb_scale 0 1 588 129
/**
 * Returns the rgb_scale value that has been specified for the texture, or 1
 * if no rgb_scale value has been specified.
 */
49
inline int EggTexture::get_rgb_scale(void) const;

1590 15 set_alpha_scale 0 4 2066 27 EggTexture::set_alpha_scale 0 1 589 211
/**
 * Sets an additional factor that will scale the alpha component after the
 * texture has been applied.  This is used only when a combine mode is in
 * effect.
 *
 * The only legal values are 1, 2, or 4.
 */
57
inline void EggTexture::set_alpha_scale(int alpha_scale);

1591 17 clear_alpha_scale 0 4 2066 29 EggTexture::clear_alpha_scale 0 1 590 97
/**
 * Removes the alpha_scale from the texture and restores it to the default
 * value of 1.
 */
48
inline void EggTexture::clear_alpha_scale(void);

1592 15 has_alpha_scale 0 4 2066 27 EggTexture::has_alpha_scale 0 1 591 97
/**
 * Returns true if an alpha_scale has been specified for the texture, false
 * otherwise.
 */
52
inline bool EggTexture::has_alpha_scale(void) const;

1593 15 get_alpha_scale 0 4 2066 27 EggTexture::get_alpha_scale 0 1 592 133
/**
 * Returns the alpha_scale value that has been specified for the texture, or 1
 * if no alpha_scale value has been specified.
 */
51
inline int EggTexture::get_alpha_scale(void) const;

1594 18 set_alpha_filename 0 4 2066 30 EggTexture::set_alpha_filename 0 1 593 235
/**
 * Specifies a separate file that will be loaded in with the 1- or 3-component
 * texture and applied as the alpha channel.  This is useful when loading
 * textures from file formats that do not support alpha, for instance jpg.
 */
69
inline void EggTexture::set_alpha_filename(Filename const &filename);

1595 20 clear_alpha_filename 0 4 2066 32 EggTexture::clear_alpha_filename 0 1 594 10
/**
 *
 */
51
inline void EggTexture::clear_alpha_filename(void);

1596 18 has_alpha_filename 0 4 2066 30 EggTexture::has_alpha_filename 0 1 595 131
/**
 * Returns true if a separate file for the alpha component has been applied,
 * false otherwise.  See set_alpha_filename().
 */
55
inline bool EggTexture::has_alpha_filename(void) const;

1597 18 get_alpha_filename 0 4 2066 30 EggTexture::get_alpha_filename 0 1 596 172
/**
 * Returns the separate file assigned for the alpha channel.  It is an error
 * to call this unless has_alpha_filename() returns true.  See
 * set_alpha_filename().
 */
66
inline Filename const &EggTexture::get_alpha_filename(void) const;

1598 18 set_alpha_fullpath 0 4 2066 30 EggTexture::set_alpha_fullpath 0 1 597 93
/**
 * Records the full pathname to the file, for the benefit of
 * get_alpha_fullpath().
 */
69
inline void EggTexture::set_alpha_fullpath(Filename const &fullpath);

1599 18 get_alpha_fullpath 0 4 2066 30 EggTexture::get_alpha_fullpath 0 1 598 463
/**
 * Returns the full pathname to the alpha file, if it is known; otherwise,
 * returns the same thing as get_alpha_filename().
 *
 * This function simply returns whatever was set by the last call to
 * set_alpha_fullpath().  This string is not written to the egg file; its main
 * purpose is to record the full path to the alpha filename if it is known,
 * for egg structures that are generated in-memory and then immediately
 * converted to a scene graph.
 */
66
inline Filename const &EggTexture::get_alpha_fullpath(void) const;

1600 22 set_alpha_file_channel 0 4 2066 34 EggTexture::set_alpha_file_channel 0 1 599 416
/**
 * If a separate alpha-file is specified, this indicates which channel number
 * should be extracted from this file to derive the alpha channel for the
 * final image.  The default is 0, which means the grayscale combination of r,
 * g, b.  Otherwise, this should be the 1-based channel number, for instance
 * 1, 2, or 3 for r, g, or b, respectively, or 4 for the alpha channel of a
 * four-component image.
 */
71
inline void EggTexture::set_alpha_file_channel(int alpha_file_channel);

1601 24 clear_alpha_file_channel 0 4 2066 36 EggTexture::clear_alpha_file_channel 0 1 600 98
/**
 * Removes the specification of a particular channel to use from the alpha-
 * file image.
 */
55
inline void EggTexture::clear_alpha_file_channel(void);

1602 22 has_alpha_file_channel 0 4 2066 34 EggTexture::has_alpha_file_channel 0 1 601 112
/**
 * Returns true if a particular channel has been specified for the alpha-file
 * image, false otherwise.
 */
59
inline bool EggTexture::has_alpha_file_channel(void) const;

1603 22 get_alpha_file_channel 0 4 2066 34 EggTexture::get_alpha_file_channel 0 1 602 167
/**
 * Returns the particular channel that has been specified for the alpha-file
 * image, or 0 if no channel has been specified.  See
 * set_alpha_file_channel().
 */
58
inline int EggTexture::get_alpha_file_channel(void) const;

1604 13 set_multiview 0 4 2066 25 EggTexture::set_multiview 0 1 603 380
/**
 * Sets the multiview flag.
 *
 * If multiview is true, the filename should contain a hash mark ('#'), which
 * will be filled in with the view number; and a multiview texture will be
 * defined with a series of images, one for each view.
 *
 * A multiview texture is most often used for stereo textures, but other uses
 * are also possible, such as for texture animation.
 */
54
inline void EggTexture::set_multiview(bool multiview);

1605 13 get_multiview 0 4 2066 25 EggTexture::get_multiview 0 1 604 83
/**
 * Returns the current setting of the multiview flag.  See set_multiview().
 */
50
inline bool EggTexture::get_multiview(void) const;

1606 13 set_num_views 0 4 2066 25 EggTexture::set_num_views 0 1 605 197
/**
 * When loading a 3-D multiview texture, this parameter is necessary to
 * specify how many views will be expected.  The z size is determined
 * implicitly from the number of images loaded.
 */
53
inline void EggTexture::set_num_views(int num_views);

1607 15 clear_num_views 0 4 2066 27 EggTexture::clear_num_views 0 1 606 91
/**
 * Removes the specification of the number of views for a 3-D multiview
 * texture.
 */
46
inline void EggTexture::clear_num_views(void);

1608 13 has_num_views 0 4 2066 25 EggTexture::has_num_views 0 1 607 116
/**
 * Returns true if the number of views has been specified for the 3-D
 * multiview texture, false otherwise.
 */
50
inline bool EggTexture::has_num_views(void) const;

1609 13 get_num_views 0 4 2066 25 EggTexture::get_num_views 0 1 608 114
/**
 * Returns the specified number of views specified for the 3-D multiview
 * texture.  See set_num_views().
 */
49
inline int EggTexture::get_num_views(void) const;

1610 16 set_read_mipmaps 0 4 2066 28 EggTexture::set_read_mipmaps 0 1 609 546
/**
 * Sets the read_mipmaps flag.
 *
 * If read_mipmaps is true, the filename should contain a hash mark ('#'),
 * which will be filled in with the mipmap level number; and the texture will
 * be defined with a series of images, one for each mipmap level.
 *
 * If the filename is of a type that already requires a hash mark, such as a
 * cube map or a 3-d texture, then the filename should now require two hash
 * marks, and the first one indicates the mipmap level number, while the
 * second indicates the face number or 3-d level number.
 */
60
inline void EggTexture::set_read_mipmaps(bool read_mipmaps);

1611 16 get_read_mipmaps 0 4 2066 28 EggTexture::get_read_mipmaps 0 1 610 92
/**
 * Returns the current setting of the read_mipmaps flag.  See
 * set_read_mipmaps().
 */
53
inline bool EggTexture::get_read_mipmaps(void) const;

1612 11 set_min_lod 0 4 2066 23 EggTexture::set_min_lod 0 1 611 61
/**
 * Sets the minimum mipmap level that may be sampled.
 */
52
inline void EggTexture::set_min_lod(double min_lod);

1613 13 clear_min_lod 0 4 2066 25 EggTexture::clear_min_lod 0 1 612 80
/**
 * Removes the specification of a minimum mipmap level from the texture.
 */
44
inline void EggTexture::clear_min_lod(void);

1614 11 has_min_lod 0 4 2066 23 EggTexture::has_min_lod 0 1 613 120
/**
 * Returns true if a value for the minimum mipmap level has been specified for
 * this texture, false otherwise.
 */
48
inline bool EggTexture::has_min_lod(void) const;

1615 11 get_min_lod 0 4 2066 23 EggTexture::get_min_lod 0 1 614 85
/**
 * Returns the minimum mipmap level that has been specified for this texture.
 */
50
inline double EggTexture::get_min_lod(void) const;

1616 11 set_max_lod 0 4 2066 23 EggTexture::set_max_lod 0 1 615 61
/**
 * Sets the maximum mipmap level that may be sampled.
 */
52
inline void EggTexture::set_max_lod(double max_lod);

1617 13 clear_max_lod 0 4 2066 25 EggTexture::clear_max_lod 0 1 616 80
/**
 * Removes the specification of a maximum mipmap level from the texture.
 */
44
inline void EggTexture::clear_max_lod(void);

1618 11 has_max_lod 0 4 2066 23 EggTexture::has_max_lod 0 1 617 120
/**
 * Returns true if a value for the maximum mipmap level has been specified for
 * this texture, false otherwise.
 */
48
inline bool EggTexture::has_max_lod(void) const;

1619 11 get_max_lod 0 4 2066 23 EggTexture::get_max_lod 0 1 618 85
/**
 * Returns the maximum mipmap level that has been specified for this texture.
 */
50
inline double EggTexture::get_max_lod(void) const;

1620 12 set_lod_bias 0 4 2066 24 EggTexture::set_lod_bias 0 1 619 86
/**
 * Sets the mipmap level bias that is added to the mipmap level to be sampled.
 */
54
inline void EggTexture::set_lod_bias(double lod_bias);

1621 14 clear_lod_bias 0 4 2066 26 EggTexture::clear_lod_bias 0 1 620 80
/**
 * Removes the specification of a maximum mipmap level from the texture.
 */
45
inline void EggTexture::clear_lod_bias(void);

1622 12 has_lod_bias 0 4 2066 24 EggTexture::has_lod_bias 0 1 621 120
/**
 * Returns true if a value for the maximum mipmap level has been specified for
 * this texture, false otherwise.
 */
49
inline bool EggTexture::has_lod_bias(void) const;

1623 12 get_lod_bias 0 4 2066 24 EggTexture::get_lod_bias 0 1 622 85
/**
 * Returns the maximum mipmap level that has been specified for this texture.
 */
51
inline double EggTexture::get_lod_bias(void) const;

1624 18 clear_multitexture 0 4 2066 30 EggTexture::clear_multitexture 0 1 623 173
/**
 * Resets the multitexture flags set by multitexture_over().  After this call,
 * get_multitexture() will return false, and get_multitexture_sort() will
 * return 0.
 */
42
void EggTexture::clear_multitexture(void);

1625 17 multitexture_over 0 4 2066 29 EggTexture::multitexture_over 0 1 624 434
/**
 * Indicates that this texture should be layered on top of the other texture.
 * This will guarantee that this->get_multitexture_sort() >
 * other->get_multitexture_sort(), at least until clear_multitexture() is
 * called on either one.
 *
 * The return value is true if successful, or false if there is a failure
 * because the other texture was already layered on top of this one (or there
 * is a three- or more-way cycle).
 */
54
bool EggTexture::multitexture_over(EggTexture *other);

1626 21 get_multitexture_sort 0 4 2066 33 EggTexture::get_multitexture_sort 0 1 625 333
/**
 * Returns an integer that represents the depth to which this texture is
 * layered on all other textures in the egg file.  In general, if texture A is
 * layered over texture B, then sort(A) > sort(B).  If texture A is never
 * layered over any other texture, then sort(A) == 0.  More than that is
 * difficult to guarantee.
 */
57
inline int EggTexture::get_multitexture_sort(void) const;

1627 19 string_texture_type 0 4 2066 31 EggTexture::string_texture_type 0 1 626 171
/**
 * Returns the Texture_ype value associated with the given string
 * representation, or TT_unspecified if the string does not match any known
 * TextureType value.
 */
90
static EggTexture::TextureType EggTexture::string_texture_type(std::string const &string);

1628 13 string_format 0 4 2066 25 EggTexture::string_format 0 1 627 157
/**
 * Returns the Format value associated with the given string representation,
 * or F_unspecified if the string does not match any known Format value.
 */
79
static EggTexture::Format EggTexture::string_format(std::string const &string);

1629 23 string_compression_mode 0 4 2066 35 EggTexture::string_compression_mode 0 1 628 175
/**
 * Returns the CompressionMode value associated with the given string
 * representation, or CM_default if the string does not match any known
 * CompressionMode value.
 */
98
static EggTexture::CompressionMode EggTexture::string_compression_mode(std::string const &string);

1630 16 string_wrap_mode 0 4 2066 28 EggTexture::string_wrap_mode 0 1 629 162
/**
 * Returns the WrapMode value associated with the given string representation,
 * or WM_unspecified if the string does not match any known WrapMode value.
 */
84
static EggTexture::WrapMode EggTexture::string_wrap_mode(std::string const &string);

1631 18 string_filter_type 0 4 2066 30 EggTexture::string_filter_type 0 1 630 169
/**
 * Returns the FilterType value associated with the given string
 * representation, or FT_unspecified if the string does not match any known
 * FilterType value.
 */
88
static EggTexture::FilterType EggTexture::string_filter_type(std::string const &string);

1632 15 string_env_type 0 4 2066 27 EggTexture::string_env_type 0 1 631 160
/**
 * Returns the EnvType value associated with the given string representation,
 * or ET_unspecified if the string does not match any known EnvType value.
 */
82
static EggTexture::EnvType EggTexture::string_env_type(std::string const &string);

1633 19 string_combine_mode 0 4 2066 31 EggTexture::string_combine_mode 0 1 632 171
/**
 * Returns the CombineMode value associated with the given string
 * representation, or CM_unspecified if the string does not match any known
 * CombineMode value.
 */
90
static EggTexture::CombineMode EggTexture::string_combine_mode(std::string const &string);

1634 21 string_combine_source 0 4 2066 33 EggTexture::string_combine_source 0 1 633 175
/**
 * Returns the CombineSource value associated with the given string
 * representation, or CS_unspecified if the string does not match any known
 * CombineSource value.
 */
94
static EggTexture::CombineSource EggTexture::string_combine_source(std::string const &string);

1635 22 string_combine_operand 0 4 2066 34 EggTexture::string_combine_operand 0 1 634 177
/**
 * Returns the CombineOperand value associated with the given string
 * representation, or CO_unspecified if the string does not match any known
 * CombineOperand value.
 */
96
static EggTexture::CombineOperand EggTexture::string_combine_operand(std::string const &string);

1636 14 string_tex_gen 0 4 2066 26 EggTexture::string_tex_gen 0 1 635 158
/**
 * Returns the TexGen value associated with the given string representation,
 * or ET_unspecified if the string does not match any known TexGen value.
 */
80
static EggTexture::TexGen EggTexture::string_tex_gen(std::string const &string);

1637 20 string_quality_level 0 4 2066 32 EggTexture::string_quality_level 0 1 636 158
/**
 * Returns the TexGen value associated with the given string representation,
 * or ET_unspecified if the string does not match any known TexGen value.
 */
92
static EggTexture::QualityLevel EggTexture::string_quality_level(std::string const &string);

1638 14 get_class_type 0 4 2066 26 EggTexture::get_class_type 0 1 637 0
51
static TypeHandle EggTexture::get_class_type(void);

1639 11 EggMaterial 0 260 2083 24 EggMaterial::EggMaterial 0 2 641 642 22
/**
 *
 */

/**
 *
 */
115
explicit EggMaterial::EggMaterial(std::string const &mref_name);
EggMaterial::EggMaterial(EggMaterial const &copy);

1640 16 is_equivalent_to 0 4 2083 29 EggMaterial::is_equivalent_to 0 1 643 411
/**
 * Returns true if the two materials are equivalent in all relevant properties
 * (according to eq), false otherwise.
 *
 * The Equivalence parameter, eq, should be set to the bitwise OR of the
 * following properties, according to what you consider relevant:
 *
 * EggMaterial::E_attributes: All material attributes (diff, spec, etc.)
 * except MRef name.
 *
 * EggMaterial::E_mref_name: The MRef name.
 */
75
bool EggMaterial::is_equivalent_to(EggMaterial const &other, int eq) const;

1641 15 sorts_less_than 0 4 2083 28 EggMaterial::sorts_less_than 0 1 644 226
/**
 * An ordering operator to compare two materials for sorting order.  This
 * imposes an arbitrary ordering useful to identify unique materials,
 * according to the indicated Equivalence factor.  See is_equivalent_to().
 */
74
bool EggMaterial::sorts_less_than(EggMaterial const &other, int eq) const;

1642 8 set_base 0 4 2083 21 EggMaterial::set_base 0 1 645 24
/**
 * @since 1.10.0
 */
54
inline void EggMaterial::set_base(LColor const &base);

1643 10 clear_base 0 4 2083 23 EggMaterial::clear_base 0 1 646 24
/**
 * @since 1.10.0
 */
42
inline void EggMaterial::clear_base(void);

1644 8 has_base 0 4 2083 21 EggMaterial::has_base 0 1 647 24
/**
 * @since 1.10.0
 */
46
inline bool EggMaterial::has_base(void) const;

1645 8 get_base 0 4 2083 21 EggMaterial::get_base 0 1 648 142
/**
 * It is legal to call this even if has_base() returns false.  If so, it
 * simply returns the default base color.
 *
 * @since 1.10.0
 */
48
inline LColor EggMaterial::get_base(void) const;

1646 8 set_diff 0 4 2083 21 EggMaterial::set_diff 0 1 649 10
/**
 *
 */
54
inline void EggMaterial::set_diff(LColor const &diff);

1647 10 clear_diff 0 4 2083 23 EggMaterial::clear_diff 0 1 650 10
/**
 *
 */
42
inline void EggMaterial::clear_diff(void);

1648 8 has_diff 0 4 2083 21 EggMaterial::has_diff 0 1 651 10
/**
 *
 */
46
inline bool EggMaterial::has_diff(void) const;

1649 8 get_diff 0 4 2083 21 EggMaterial::get_diff 0 1 652 122
/**
 * It is legal to call this even if has_diff() returns false.  If so, it
 * simply returns the default diff color.
 */
48
inline LColor EggMaterial::get_diff(void) const;

1650 7 set_amb 0 4 2083 20 EggMaterial::set_amb 0 1 653 10
/**
 *
 */
52
inline void EggMaterial::set_amb(LColor const &amb);

1651 9 clear_amb 0 4 2083 22 EggMaterial::clear_amb 0 1 654 10
/**
 *
 */
41
inline void EggMaterial::clear_amb(void);

1652 7 has_amb 0 4 2083 20 EggMaterial::has_amb 0 1 655 10
/**
 *
 */
45
inline bool EggMaterial::has_amb(void) const;

1653 7 get_amb 0 4 2083 20 EggMaterial::get_amb 0 1 656 120
/**
 * It is legal to call this even if has_amb() returns false.  If so, it simply
 * returns the default amb color.
 */
47
inline LColor EggMaterial::get_amb(void) const;

1654 8 set_emit 0 4 2083 21 EggMaterial::set_emit 0 1 657 10
/**
 *
 */
54
inline void EggMaterial::set_emit(LColor const &emit);

1655 10 clear_emit 0 4 2083 23 EggMaterial::clear_emit 0 1 658 10
/**
 *
 */
42
inline void EggMaterial::clear_emit(void);

1656 8 has_emit 0 4 2083 21 EggMaterial::has_emit 0 1 659 10
/**
 *
 */
46
inline bool EggMaterial::has_emit(void) const;

1657 8 get_emit 0 4 2083 21 EggMaterial::get_emit 0 1 660 122
/**
 * It is legal to call this even if has_emit() returns false.  If so, it
 * simply returns the default emit color.
 */
48
inline LColor EggMaterial::get_emit(void) const;

1658 8 set_spec 0 4 2083 21 EggMaterial::set_spec 0 1 661 10
/**
 *
 */
54
inline void EggMaterial::set_spec(LColor const &spec);

1659 10 clear_spec 0 4 2083 23 EggMaterial::clear_spec 0 1 662 10
/**
 *
 */
42
inline void EggMaterial::clear_spec(void);

1660 8 has_spec 0 4 2083 21 EggMaterial::has_spec 0 1 663 10
/**
 *
 */
46
inline bool EggMaterial::has_spec(void) const;

1661 8 get_spec 0 4 2083 21 EggMaterial::get_spec 0 1 664 122
/**
 * It is legal to call this even if has_spec() returns false.  If so, it
 * simply returns the default spec color.
 */
48
inline LColor EggMaterial::get_spec(void) const;

1662 13 set_shininess 0 4 2083 26 EggMaterial::set_shininess 0 1 665 10
/**
 *
 */
57
inline void EggMaterial::set_shininess(double shininess);

1663 15 clear_shininess 0 4 2083 28 EggMaterial::clear_shininess 0 1 666 10
/**
 *
 */
47
inline void EggMaterial::clear_shininess(void);

1664 13 has_shininess 0 4 2083 26 EggMaterial::has_shininess 0 1 667 10
/**
 *
 */
51
inline bool EggMaterial::has_shininess(void) const;

1665 13 get_shininess 0 4 2083 26 EggMaterial::get_shininess 0 1 668 10
/**
 *
 */
53
inline double EggMaterial::get_shininess(void) const;

1666 13 set_roughness 0 4 2083 26 EggMaterial::set_roughness 0 1 669 24
/**
 * @since 1.10.0
 */
57
inline void EggMaterial::set_roughness(double roughness);

1667 15 clear_roughness 0 4 2083 28 EggMaterial::clear_roughness 0 1 670 24
/**
 * @since 1.10.0
 */
47
inline void EggMaterial::clear_roughness(void);

1668 13 has_roughness 0 4 2083 26 EggMaterial::has_roughness 0 1 671 24
/**
 * @since 1.10.0
 */
51
inline bool EggMaterial::has_roughness(void) const;

1669 13 get_roughness 0 4 2083 26 EggMaterial::get_roughness 0 1 672 24
/**
 * @since 1.10.0
 */
53
inline double EggMaterial::get_roughness(void) const;

1670 12 set_metallic 0 4 2083 25 EggMaterial::set_metallic 0 1 673 24
/**
 * @since 1.10.0
 */
55
inline void EggMaterial::set_metallic(double metallic);

1671 14 clear_metallic 0 4 2083 27 EggMaterial::clear_metallic 0 1 674 24
/**
 * @since 1.10.0
 */
46
inline void EggMaterial::clear_metallic(void);

1672 12 has_metallic 0 4 2083 25 EggMaterial::has_metallic 0 1 675 24
/**
 * @since 1.10.0
 */
50
inline bool EggMaterial::has_metallic(void) const;

1673 12 get_metallic 0 4 2083 25 EggMaterial::get_metallic 0 1 676 24
/**
 * @since 1.10.0
 */
52
inline double EggMaterial::get_metallic(void) const;

1674 7 set_ior 0 4 2083 20 EggMaterial::set_ior 0 1 677 24
/**
 * @since 1.10.0
 */
45
inline void EggMaterial::set_ior(double ior);

1675 9 clear_ior 0 4 2083 22 EggMaterial::clear_ior 0 1 678 24
/**
 * @since 1.10.0
 */
41
inline void EggMaterial::clear_ior(void);

1676 7 has_ior 0 4 2083 20 EggMaterial::has_ior 0 1 679 24
/**
 * @since 1.10.0
 */
45
inline bool EggMaterial::has_ior(void) const;

1677 7 get_ior 0 4 2083 20 EggMaterial::get_ior 0 1 680 24
/**
 * @since 1.10.0
 */
47
inline double EggMaterial::get_ior(void) const;

1678 9 set_local 0 4 2083 22 EggMaterial::set_local 0 1 681 10
/**
 *
 */
47
inline void EggMaterial::set_local(bool local);

1679 11 clear_local 0 4 2083 24 EggMaterial::clear_local 0 1 682 10
/**
 *
 */
43
inline void EggMaterial::clear_local(void);

1680 9 has_local 0 4 2083 22 EggMaterial::has_local 0 1 683 10
/**
 *
 */
47
inline bool EggMaterial::has_local(void) const;

1681 9 get_local 0 4 2083 22 EggMaterial::get_local 0 1 684 10
/**
 *
 */
47
inline bool EggMaterial::get_local(void) const;

1682 14 get_class_type 0 4 2083 27 EggMaterial::get_class_type 0 1 685 0
52
static TypeHandle EggMaterial::get_class_type(void);

1683 12 ~EggMaterial 0 516 2083 25 EggMaterial::~EggMaterial 0 0 0
32
EggMaterial::~EggMaterial(void);

1684 17 upcast_to_EggNode 0 12 2085 31 EggPrimitive::upcast_to_EggNode 0 1 741 35
upcast from EggPrimitive to EggNode
47
EggNode *EggPrimitive::upcast_to_EggNode(void);

1685 24 downcast_to_EggPrimitive 0 12 2000 33 EggNode::downcast_to_EggPrimitive 0 0 37
downcast from EggNode to EggPrimitive
54
EggPrimitive *EggNode::downcast_to_EggPrimitive(void);

1686 23 upcast_to_EggAttributes 0 12 2085 37 EggPrimitive::upcast_to_EggAttributes 0 1 742 41
upcast from EggPrimitive to EggAttributes
59
EggAttributes *EggPrimitive::upcast_to_EggAttributes(void);

1687 24 downcast_to_EggPrimitive 0 12 2011 39 EggAttributes::downcast_to_EggPrimitive 0 0 43
downcast from EggAttributes to EggPrimitive
60
EggPrimitive *EggAttributes::downcast_to_EggPrimitive(void);

1688 23 upcast_to_EggRenderMode 0 12 2085 37 EggPrimitive::upcast_to_EggRenderMode 0 1 743 41
upcast from EggPrimitive to EggRenderMode
59
EggRenderMode *EggPrimitive::upcast_to_EggRenderMode(void);

1689 24 downcast_to_EggPrimitive 0 12 2025 39 EggRenderMode::downcast_to_EggPrimitive 0 0 43
downcast from EggRenderMode to EggPrimitive
60
EggPrimitive *EggRenderMode::downcast_to_EggPrimitive(void);

1690 10 operator = 0 4 2085 24 EggPrimitive::operator = 0 1 686 10
/**
 *
 */
63
inline void EggPrimitive::operator =(EggPrimitive const &copy);

1691 13 ~EggPrimitive 0 518 2085 27 EggPrimitive::~EggPrimitive 0 0 10
/**
 *
 */
49
virtual inline EggPrimitive::~EggPrimitive(void);

1692 9 make_copy 0 6 2085 23 EggPrimitive::make_copy 0 1 687 0
62
virtual EggPrimitive *EggPrimitive::make_copy(void) const = 0;

1693 20 determine_alpha_mode 0 6 2085 34 EggPrimitive::determine_alpha_mode 0 1 688 271
/**
 * Walks back up the hierarchy, looking for an EggGroup or EggPrimitive or
 * some such object at this level or above this primitive that has an
 * alpha_mode other than AM_unspecified.  Returns a valid EggRenderMode
 * pointer if one is found, or NULL otherwise.
 */
64
virtual EggRenderMode *EggPrimitive::determine_alpha_mode(void);

1694 26 determine_depth_write_mode 0 6 2085 40 EggPrimitive::determine_depth_write_mode 0 1 689 272
/**
 * Walks back up the hierarchy, looking for an EggGroup or EggPrimitive or
 * some such object at this level or above this node that has a
 * depth_write_mode other than DWM_unspecified.  Returns a valid EggRenderMode
 * pointer if one is found, or NULL otherwise.
 */
70
virtual EggRenderMode *EggPrimitive::determine_depth_write_mode(void);

1695 25 determine_depth_test_mode 0 6 2085 39 EggPrimitive::determine_depth_test_mode 0 1 690 271
/**
 * Walks back up the hierarchy, looking for an EggGroup or EggPrimitive or
 * some such object at this level or above this node that has a
 * depth_test_mode other than DTM_unspecified.  Returns a valid EggRenderMode
 * pointer if one is found, or NULL otherwise.
 */
69
virtual EggRenderMode *EggPrimitive::determine_depth_test_mode(void);

1696 25 determine_visibility_mode 0 6 2085 39 EggPrimitive::determine_visibility_mode 0 1 691 270
/**
 * Walks back up the hierarchy, looking for an EggGroup or EggPrimitive or
 * some such object at this level or above this node that has a
 * visibility_mode other than VM_unspecified.  Returns a valid EggRenderMode
 * pointer if one is found, or NULL otherwise.
 */
69
virtual EggRenderMode *EggPrimitive::determine_visibility_mode(void);

1697 22 determine_depth_offset 0 6 2085 36 EggPrimitive::determine_depth_offset 0 1 692 256
/**
 * Walks back up the hierarchy, looking for an EggGroup or EggPrimitive or
 * some such object at this level or above this primitive that has a
 * depth_offset specified.  Returns a valid EggRenderMode pointer if one is
 * found, or NULL otherwise.
 */
66
virtual EggRenderMode *EggPrimitive::determine_depth_offset(void);

1698 20 determine_draw_order 0 6 2085 34 EggPrimitive::determine_draw_order 0 1 693 254
/**
 * Walks back up the hierarchy, looking for an EggGroup or EggPrimitive or
 * some such object at this level or above this primitive that has a
 * draw_order specified.  Returns a valid EggRenderMode pointer if one is
 * found, or NULL otherwise.
 */
64
virtual EggRenderMode *EggPrimitive::determine_draw_order(void);

1699 13 determine_bin 0 6 2085 27 EggPrimitive::determine_bin 0 1 694 247
/**
 * Walks back up the hierarchy, looking for an EggGroup or EggPrimitive or
 * some such object at this level or above this primitive that has a bin
 * specified.  Returns a valid EggRenderMode pointer if one is found, or NULL
 * otherwise.
 */
57
virtual EggRenderMode *EggPrimitive::determine_bin(void);

1700 13 get_sort_name 0 4 2085 27 EggPrimitive::get_sort_name 0 1 695 223
/**
 * Returns the name of the primitive for the purposes of sorting primitives
 * into different groups, if there is one.
 *
 * Presently, this is defined as the primitive name itself, unless it begins
 * with a digit.
 */
59
inline std::string EggPrimitive::get_sort_name(void) const;

1701 11 get_shading 0 6 2085 25 EggPrimitive::get_shading 0 1 696 696
/**
 * Returns the shading properties apparent on this particular primitive.  This
 * returns S_per_vertex if the vertices have colors or normals (and they are
 * not all the same values), or for a simple primitive, S_overall otherwise.
 * A composite primitive may also return S_per_face if the individual
 * component primitives have colors or normals that are not all the same
 * values.
 *
 * To get the most accurate results, you should call clear_shading() on all
 * connected primitives (or on all primitives in the egg file), followed by
 * get_shading() on each primitive.  You may find it easiest to call these
 * methods on the EggData root node (they are defined on EggGroupNode).
 */
68
virtual EggPrimitive::Shading EggPrimitive::get_shading(void) const;

1702 23 clear_connected_shading 0 4 2085 37 EggPrimitive::clear_connected_shading 0 1 697 128
/**
 * Resets the connected_shading member in this primitive, so that
 * get_connected_shading() will recompute a new value.
 */
56
inline void EggPrimitive::clear_connected_shading(void);

1703 21 get_connected_shading 0 4 2085 35 EggPrimitive::get_connected_shading 0 1 698 479
/**
 * Determines what sort of shading properties this primitive's connected
 * neighbors have.
 *
 * To get the most accurate results, you should first call
 * clear_connected_shading() on all connected primitives (or on all primitives
 * in the egg file). It might also be a good idea to call
 * remove_unused_vertices() to ensure proper connectivity.
 *
 * You may find it easiest to call these other methods on the EggData root
 * node (they are defined on EggGroupNode).
 */
77
inline EggPrimitive::Shading EggPrimitive::get_connected_shading(void) const;

1704 11 set_texture 0 4 2085 25 EggPrimitive::set_texture 0 1 699 211
/**
 * Replaces the current list of textures with the indicated texture.
 *
 * @deprecated This method is used in support of single-texturing only.
 * Please use the multitexture variant add_texture instead.
 */
59
inline void EggPrimitive::set_texture(EggTexture *texture);

1705 11 has_texture 0 4 2085 25 EggPrimitive::has_texture 0 2 700 701 332
/**
 * Returns true if the primitive has any textures specified, false otherwise.
 *
 * @deprecated This method is used in support of single-texturing only.
 * New code should be written to use the multitexture variants instead.
 */

/**
 * Returns true if the primitive has the particular indicated texture, false
 * otherwise.
 */
116
inline bool EggPrimitive::has_texture(void) const;
inline bool EggPrimitive::has_texture(EggTexture *texture) const;

1706 11 get_texture 0 4 2085 25 EggPrimitive::get_texture 0 2 702 703 339
/**
 * Returns the first texture on the primitive, if any, or NULL if there are no
 * textures on the primitive.
 *
 * @deprecated This method is used in support of single-texturing only.
 * New code should be written to use the multitexture variants instead.
 */

/**
 * Returns the nth texture that has been applied to the primitive.
 */
116
inline EggTexture *EggPrimitive::get_texture(void) const;
inline EggTexture *EggPrimitive::get_texture(int n) const;

1707 11 add_texture 0 4 2085 25 EggPrimitive::add_texture 0 1 704 276
/**
 * Applies the indicated texture to the primitive.
 *
 * Note that, in the case of multiple textures being applied to a single
 * primitive, the order in which the textures are applied does not affect the
 * rendering order; use EggTexture::set_sort() to specify that.
 */
59
inline void EggPrimitive::add_texture(EggTexture *texture);

1708 13 clear_texture 0 4 2085 27 EggPrimitive::clear_texture 0 1 705 52
/**
 * Removes any texturing from the primitive.
 */
46
inline void EggPrimitive::clear_texture(void);

1709 16 get_num_textures 0 4 2085 30 EggPrimitive::get_num_textures 0 1 706 67
/**
 * Returns the number of textures applied to the primitive.
 */
54
inline int EggPrimitive::get_num_textures(void) const;

1710 12 set_material 0 4 2085 26 EggPrimitive::set_material 0 1 707 59
/**
 * Applies the indicated material to the primitive.
 */
62
inline void EggPrimitive::set_material(EggMaterial *material);

1711 14 clear_material 0 4 2085 28 EggPrimitive::clear_material 0 1 708 51
/**
 * Removes any material from the primitive.
 */
47
inline void EggPrimitive::clear_material(void);

1712 12 get_material 0 4 2085 26 EggPrimitive::get_material 0 1 709 97
/**
 * Returns a pointer to the applied material, or NULL if there is no material
 * applied.
 */
59
inline EggMaterial *EggPrimitive::get_material(void) const;

1713 12 has_material 0 4 2085 26 EggPrimitive::has_material 0 1 710 160
/**
 * Returns true if the primitive is materiald (and get_material() will return
 * a real pointer), false otherwise (and get_material() will return NULL).
 */
51
inline bool EggPrimitive::has_material(void) const;

1714 14 set_bface_flag 0 4 2085 28 EggPrimitive::set_bface_flag 0 1 711 204
/**
 * Sets the backfacing flag of the polygon.  If this is true, the polygon will
 * be rendered so that both faces are visible; if it is false, only the front
 * face of the polygon will be visible.
 */
52
inline void EggPrimitive::set_bface_flag(bool flag);

1715 14 get_bface_flag 0 4 2085 28 EggPrimitive::get_bface_flag 0 1 712 79
/**
 * Retrieves the backfacing flag of the polygon.  See set_bface_flag().
 */
53
inline bool EggPrimitive::get_bface_flag(void) const;

1716 15 copy_attributes 0 4 2085 29 EggPrimitive::copy_attributes 0 2 713 714 146
/**
 * Copies the rendering attributes from the indicated primitive.
 */

/**
 * Copies the rendering attributes from the indicated primitive.
 */
126
void EggPrimitive::copy_attributes(EggAttributes const &other);
void EggPrimitive::copy_attributes(EggPrimitive const &other);

1717 17 has_vertex_normal 0 4 2085 31 EggPrimitive::has_vertex_normal 0 1 715 295
/**
 * Returns true if any vertex on the primitive has a specific normal set,
 * false otherwise.
 *
 * If you call unify_attributes() first, this will also return false even if
 * all the vertices were set to the same value (since unify_attributes()
 * removes redundant vertex properties).
 */
49
bool EggPrimitive::has_vertex_normal(void) const;

1718 16 has_vertex_color 0 4 2085 30 EggPrimitive::has_vertex_color 0 1 716 294
/**
 * Returns true if any vertex on the primitive has a specific color set, false
 * otherwise.
 *
 * If you call unify_attributes() first, this will also return false even if
 * all the vertices were set to the same value (since unify_attributes()
 * removes redundant vertex properties).
 */
48
bool EggPrimitive::has_vertex_color(void) const;

1719 16 unify_attributes 0 6 2085 30 EggPrimitive::unify_attributes 0 1 717 766
/**
 * If the shading property is S_per_vertex, ensures that all vertices have a
 * normal and a color, and the overall primitive does not.
 *
 * If the shading property is S_per_face, and this is a composite primitive,
 * ensures that all components have a normal and a color, and the vertices and
 * overall primitive do not.  (If this is a simple primitive, S_per_face works
 * the same as S_overall, below).
 *
 * If the shading property is S_overall, ensures that no vertices or
 * components have a normal or a color, and the overall primitive does (if any
 * exists at all).
 *
 * After this call, either the primitive will have normals or its vertices
 * will, but not both.  Ditto for colors.
 *
 * This may create redundant vertices in the vertex pool.
 */
75
virtual void EggPrimitive::unify_attributes(EggPrimitive::Shading shading);

1720 20 apply_last_attribute 0 6 2085 34 EggPrimitive::apply_last_attribute 0 1 718 350
/**
 * Sets the last vertex of the triangle (or each component) to the primitive
 * normal and/or color, if the primitive is flat-shaded.  This reflects the
 * OpenGL convention of storing flat-shaded properties on the last vertex,
 * although it is not usually a convention in Egg.
 *
 * This may introduce redundant vertices to the vertex pool.
 */
54
virtual void EggPrimitive::apply_last_attribute(void);

1721 21 apply_first_attribute 0 6 2085 35 EggPrimitive::apply_first_attribute 0 1 719 353
/**
 * Sets the first vertex of the triangle (or each component) to the primitive
 * normal and/or color, if the primitive is flat-shaded.  This reflects the
 * DirectX convention of storing flat-shaded properties on the first vertex,
 * although it is not usually a convention in Egg.
 *
 * This may introduce redundant vertices to the vertex pool.
 */
55
virtual void EggPrimitive::apply_first_attribute(void);

1722 25 post_apply_flat_attribute 0 6 2085 39 EggPrimitive::post_apply_flat_attribute 0 1 720 217
/**
 * Intended as a followup to apply_last_attribute(), this also sets an
 * attribute on the first vertices of the primitive, if they don't already
 * have an attribute set, just so they end up with *something*.
 */
59
virtual void EggPrimitive::post_apply_flat_attribute(void);

1723 23 reverse_vertex_ordering 0 6 2085 37 EggPrimitive::reverse_vertex_ordering 0 1 721 201
/**
 * Reverses the ordering of the vertices in this primitive, if appropriate, in
 * order to change the direction the polygon appears to be facing.  Does not
 * adjust the surface normal, if any.
 */
57
virtual void EggPrimitive::reverse_vertex_ordering(void);

1724 7 cleanup 0 6 2085 21 EggPrimitive::cleanup 0 1 722 272
/**
 * Cleans up modeling errors in whatever context this makes sense.  For
 * instance, for a polygon, this calls remove_doubled_verts(true).  For a
 * point, it calls remove_nonunique_verts().  Returns true if the primitive is
 * valid, or false if it is degenerate.
 */
41
virtual bool EggPrimitive::cleanup(void);

1725 20 remove_doubled_verts 0 4 2085 34 EggPrimitive::remove_doubled_verts 0 1 723 559
/**
 * Certain kinds of primitives, particularly polygons, don't like to have the
 * same vertex repeated consecutively.  Unfortunately, some modeling programs
 * (like MultiGen) make this an easy mistake to make.
 *
 * It's handy to have a function to remove these redundant vertices.  If
 * closed is true, it also checks that the first and last vertices are not the
 * same.
 *
 * This function identifies repeated vertices by position only; it does not
 * consider any other properties, such as color or UV, significant in
 * differentiating vertices.
 */
53
void EggPrimitive::remove_doubled_verts(bool closed);

1726 22 remove_nonunique_verts 0 4 2085 36 EggPrimitive::remove_nonunique_verts 0 1 724 256
/**
 * Removes any multiple appearances of the same vertex from the primitive.
 * This primarily makes sense for a point primitive, which is really a
 * collection of points and which doesn't make sense to include the same point
 * twice, in any order.
 */
48
void EggPrimitive::remove_nonunique_verts(void);

1727 14 has_primitives 0 6 2085 28 EggPrimitive::has_primitives 0 1 725 124
/**
 * Returns true if there are any primitives (e.g.  polygons) defined within
 * this group or below, false otherwise.
 */
54
virtual bool EggPrimitive::has_primitives(void) const;

1728 20 joint_has_primitives 0 6 2085 34 EggPrimitive::joint_has_primitives 0 1 726 154
/**
 * Returns true if there are any primitives (e.g.  polygons) defined within
 * this group or below, but the search does not include nested joints.
 */
60
virtual bool EggPrimitive::joint_has_primitives(void) const;

1729 11 has_normals 0 6 2085 25 EggPrimitive::has_normals 0 1 727 164
/**
 * Returns true if any of the primitives (e.g.  polygons) defined within this
 * group or below have either face or vertex normals defined, false otherwise.
 */
51
virtual bool EggPrimitive::has_normals(void) const;

1730 5 clear 0 4 2085 19 EggPrimitive::clear 0 1 728 58
/**
 * Removes all of the vertices from the primitive.
 */
38
inline void EggPrimitive::clear(void);

1731 10 add_vertex 0 4 2085 24 EggPrimitive::add_vertex 0 1 729 103
/**
 * Adds the indicated vertex to the end of the primitive's list of vertices,
 * and returns it.
 */
55
EggVertex *EggPrimitive::add_vertex(EggVertex *vertex);

1732 13 remove_vertex 0 4 2085 27 EggPrimitive::remove_vertex 0 2 730 731 218
/**
 * Removes the indicated vertex from the primitive and returns it.  If the
 * vertex was not already in the primitive, does nothing and returns NULL.
 */

/**
 * Removes the indicated vertex from the primitive.
 */
111
EggVertex *EggPrimitive::remove_vertex(EggVertex *vertex);
void EggPrimitive::remove_vertex(std::size_t index);

1733 13 copy_vertices 0 4 2085 27 EggPrimitive::copy_vertices 0 1 732 123
/**
 * Replaces the current primitive's list of vertices with a copy of the list
 * of vertices on the other primitive.
 */
60
void EggPrimitive::copy_vertices(EggPrimitive const &other);

1734 16 get_num_vertices 0 4 2085 30 EggPrimitive::get_num_vertices 0 1 733 205
// These are shorthands if you don't want to use the iterators.

// These are shorthands if you don't want to use the iterators.

// These are shorthands if you don't want to use the iterators.

/**
 *
 */
62
inline std::size_t EggPrimitive::get_num_vertices(void) const;

1735 10 get_vertex 0 4 2085 24 EggPrimitive::get_vertex 0 1 734 64
/**
 * Returns a particular index based on its index number.
 */
68
inline EggVertex *EggPrimitive::get_vertex(std::size_t index) const;

1736 10 set_vertex 0 4 2085 24 EggPrimitive::set_vertex 0 1 735 187
/**
 * Replaces a particular vertex based on its index number in the list of
 * vertices.  This is just a convenience function for people who don't want to
 * mess with the iterators.
 */
75
inline void EggPrimitive::set_vertex(std::size_t index, EggVertex *vertex);

1737 13 insert_vertex 0 4 2085 27 EggPrimitive::insert_vertex 0 1 736 50
/**
 * Inserts a vertex at the given position.
 */
78
inline void EggPrimitive::insert_vertex(std::size_t index, EggVertex *vertex);

1738 8 get_pool 0 4 2085 22 EggPrimitive::get_pool 0 1 737 126
/**
 * Returns the vertex pool associated with the vertices of the primitive, or
 * NULL if the primitive has no vertices.
 */
57
inline EggVertexPool *EggPrimitive::get_pool(void) const;

1739 5 write 0 6 2085 19 EggPrimitive::write 0 1 738 0
80
virtual void EggPrimitive::write(std::ostream &out, int indent_level) const = 0;

1740 19 test_vref_integrity 0 4 2085 33 EggPrimitive::test_vref_integrity 0 1 739 0
51
void EggPrimitive::test_vref_integrity(void) const;

1741 14 get_class_type 0 4 2085 28 EggPrimitive::get_class_type 0 1 740 0
53
static TypeHandle EggPrimitive::get_class_type(void);

1742 10 operator = 0 4 2091 33 EggCompositePrimitive::operator = 0 1 744 10
/**
 *
 */
81
inline void EggCompositePrimitive::operator =(EggCompositePrimitive const &copy);

1743 18 get_num_components 0 4 2091 41 EggCompositePrimitive::get_num_components 0 1 745 148
/**
 * Returns the number of individual component triangles within the composite.
 * Each one of these might have a different set of attributes.
 */
73
inline std::size_t EggCompositePrimitive::get_num_components(void) const;

1744 13 get_component 0 4 2091 36 EggCompositePrimitive::get_component 0 2 746 747 132
/**
 * Returns the attributes for the nth component triangle.
 */

/**
 * Returns the attributes for the nth component triangle.
 */
161
inline EggAttributes const *EggCompositePrimitive::get_component(std::size_t i) const;
inline EggAttributes *EggCompositePrimitive::get_component(std::size_t i);

1745 13 set_component 0 4 2091 36 EggCompositePrimitive::set_component 0 1 748 65
/**
 * Changes the attributes for the nth component triangle.
 */
93
inline void EggCompositePrimitive::set_component(std::size_t i, EggAttributes const *attrib);

1746 16 triangulate_into 0 4 2091 39 EggCompositePrimitive::triangulate_into 0 1 749 361
/**
 * Subdivides the composite primitive into triangles and adds those triangles
 * to the indicated container.  Does not remove the primitive from its
 * existing parent or modify it in any way.
 *
 * Returns true if the triangulation is successful, or false if there was some
 * error (in which case the container may contain some partial triangulation).
 */
83
inline bool EggCompositePrimitive::triangulate_into(EggGroupNode *container) const;

1747 20 triangulate_in_place 0 4 2091 43 EggCompositePrimitive::triangulate_in_place 0 1 750 460
/**
 * Subdivides the composite primitive into triangles and adds those triangles
 * to the parent group node in place of the original primitive.  Returns a
 * pointer to the original primitive, which is likely about to be destructed.
 *
 * If convex_also is true, both concave and convex polygons will be subdivided
 * into triangles; otherwise, only concave polygons will be subdivided, and
 * convex polygons will be copied unchanged into the container.
 */
85
PointerTo< EggCompositePrimitive > EggCompositePrimitive::triangulate_in_place(void);

1748 14 get_class_type 0 4 2091 37 EggCompositePrimitive::get_class_type 0 1 751 0
62
static TypeHandle EggCompositePrimitive::get_class_type(void);

1749 7 EggData 0 260 2093 16 EggData::EggData 0 2 752 753 22
/**
 *
 */

/**
 *
 */
76
inline EggData::EggData(void);
inline EggData::EggData(EggData const &copy);

1750 10 operator = 0 4 2093 19 EggData::operator = 0 1 754 10
/**
 *
 */
53
inline void EggData::operator =(EggData const &copy);

1751 20 resolve_egg_filename 0 4 2093 29 EggData::resolve_egg_filename 0 1 755 212
/**
 * Looks for the indicated filename, first along the indicated searchpath, and
 * then along the model_path.  If found, updates the filename to the full path
 * and returns true; otherwise, returns false.
 */
113
static bool EggData::resolve_egg_filename(Filename &egg_filename, DSearchPath const &searchpath = DSearchPath());

1752 4 read 0 4 2093 13 EggData::read 0 2 756 757 735
/**
 * Opens the indicated filename and reads the egg data contents from it.
 * Returns true if the file was successfully opened and read, false if there
 * were some errors, in which case the data may be partially read.
 *
 * error is the output stream to which to write error messages.
 */

/**
 * Parses the egg syntax contained in the indicated input stream.  Returns
 * true if the stream was a completely valid egg file, false if there were
 * some errors, in which case the data may be partially read.
 *
 * Before you call this routine, you should probably call set_egg_filename()
 * to set the name of the egg file we're processing, if at all possible.  If
 * there is no such filename, you may set it to the empty string.
 */
113
bool EggData::read(Filename filename, std::string display_name = string());
bool EggData::read(std::istream &in);

1753 5 merge 0 4 2093 14 EggData::merge 0 1 758 110
/**
 * Appends the other egg structure to the end of this one.  The other egg
 * structure is invalidated.
 */
36
void EggData::merge(EggData &other);

1754 14 load_externals 0 4 2093 23 EggData::load_externals 0 2 759 760 714
/**
 * Loads up all the egg files referenced by <File> entries within the egg
 * structure, and inserts their contents in place of the <File> entries.
 * Searches for files in the searchpath, if not found directly, and writes
 * error messages to the indicated output stream.  Returns true if all
 * externals were loaded successfully, false otherwise.
 */

/**
 * Loads up all the egg files referenced by <File> entries within the egg
 * structure, and inserts their contents in place of the <File> entries.
 * Searches for files in the searchpath, if not found directly, and writes
 * error messages to the indicated output stream.  Returns true if all
 * externals were loaded successfully, false otherwise.
 */
161
bool EggData::load_externals(DSearchPath const &searchpath = DSearchPath());
bool EggData::load_externals(DSearchPath const &searchpath, BamCacheRecord *record);

1755 28 collapse_equivalent_textures 0 4 2093 37 EggData::collapse_equivalent_textures 0 1 761 310
/**
 * Removes duplicate references to the same texture image with the same
 * properties.  Considers two texture references with identical properties,
 * but different tref names, to be equivalent, and collapses them, choosing
 * one tref name to keep arbitrarily.  Returns the number of textures removed.
 */
48
int EggData::collapse_equivalent_textures(void);

1756 29 collapse_equivalent_materials 0 4 2093 38 EggData::collapse_equivalent_materials 0 1 762 306
/**
 * Removes duplicate references to the same material with the same properties.
 * Considers two material references with identical properties, but different
 * mref names, to be equivalent, and collapses them, choosing one mref name to
 * keep arbitrarily.  Returns the number of materials removed.
 */
49
int EggData::collapse_equivalent_materials(void);

1757 9 write_egg 0 4 2093 18 EggData::write_egg 0 2 763 764 124
/**
 * The main interface for writing complete egg files.
 */

/**
 * The main interface for writing complete egg files.
 */
87
bool EggData::write_egg(Filename filename);
bool EggData::write_egg(std::ostream &out);

1758 26 set_auto_resolve_externals 0 4 2093 35 EggData::set_auto_resolve_externals 0 1 765 147
/**
 * Indicates whether the EggData object will automatically resolve any
 * external references when read() is called.  The default is false.
 */
62
inline void EggData::set_auto_resolve_externals(bool resolve);

1759 26 get_auto_resolve_externals 0 4 2093 35 EggData::get_auto_resolve_externals 0 1 766 147
/**
 * Indicates whether the EggData object will automatically resolve any
 * external references when read() is called.  The default is false.
 */
60
inline bool EggData::get_auto_resolve_externals(void) const;

1760 31 original_had_absolute_pathnames 0 4 2093 40 EggData::original_had_absolute_pathnames 0 1 767 411
/**
 * Returns true if the data processed in the last call to read() contained
 * absolute pathnames, or false if those pathnames were all relative.
 *
 * This method is necessary because if auto_resolve_externals() is in effect,
 * it may modify the pathnames to be absolute whether or not they were as
 * loaded from disk.  This method can be used to query the state of the
 * original egg file from disk.
 */
65
inline bool EggData::original_had_absolute_pathnames(void) const;

1761 21 set_coordinate_system 0 4 2093 30 EggData::set_coordinate_system 0 1 768 156
/**
 * Changes the coordinate system of the EggData.  If the coordinate system was
 * previously different, this may result in a conversion of the data.
 */
63
void EggData::set_coordinate_system(CoordinateSystem coordsys);

1762 21 get_coordinate_system 0 4 2093 30 EggData::get_coordinate_system 0 1 769 74
/**
 * Returns the coordinate system in which the egg file is defined.
 */
67
inline CoordinateSystem EggData::get_coordinate_system(void) const;

1763 16 set_egg_filename 0 4 2093 25 EggData::set_egg_filename 0 1 770 150
/**
 * Sets the filename--especially the directory part--in which the egg file is
 * considered to reside.  This is also implicitly set by read().
 */
68
inline void EggData::set_egg_filename(Filename const &egg_filename);

1764 16 get_egg_filename 0 4 2093 25 EggData::get_egg_filename 0 1 771 79
/**
 * Returns the directory in which the egg file is considered to reside.
 */
61
inline Filename const &EggData::get_egg_filename(void) const;

1765 17 set_egg_timestamp 0 4 2093 26 EggData::set_egg_timestamp 0 1 772 136
/**
 * Sets the timestamp of the egg file on disk, at the time it was opened for
 * reading.  This is also implicitly set by read().
 */
61
inline void EggData::set_egg_timestamp(time_t egg_timestamp);

1766 17 get_egg_timestamp 0 4 2093 26 EggData::get_egg_timestamp 0 1 773 142
/**
 * Returns the timestamp of the egg file on disk, at the time it was opened
 * for reading, or 0 if this information is not available.
 */
53
inline time_t EggData::get_egg_timestamp(void) const;

1767 24 recompute_vertex_normals 0 4 2093 33 EggData::recompute_vertex_normals 0 1 774 711
/**
 * Recomputes all the vertex normals for polygon geometry at this group node
 * and below so that they accurately reflect the vertex positions.  A shared
 * edge between two polygons (even in different groups) is considered smooth
 * if the angle between the two edges is less than threshold degrees.
 *
 * This function also removes degenerate polygons that do not have enough
 * vertices to define a normal.  It does not affect normals for other kinds of
 * primitives like Nurbs or Points.
 *
 * This function does not remove or adjust vertices in the vertex pool; it
 * only adds new vertices with the correct normals.  Thus, it is a good idea
 * to call remove_unused_vertices() after calling this.
 */
64
inline void EggData::recompute_vertex_normals(double threshold);

1768 25 recompute_polygon_normals 0 4 2093 34 EggData::recompute_polygon_normals 0 1 775 672
/**
 * Recomputes all the polygon normals for polygon geometry at this group node
 * and below so that they accurately reflect the vertex positions.  Normals
 * are removed from the vertices and defined only on polygons, giving the
 * geometry a faceted appearance.
 *
 * This function also removes degenerate polygons that do not have enough
 * vertices to define a normal.  It does not affect normals for other kinds of
 * primitives like Nurbs or Points.
 *
 * This function does not remove or adjust vertices in the vertex pool; it
 * only adds new vertices with the normals removed.  Thus, it is a good idea
 * to call remove_unused_vertices() after calling this.
 */
53
inline void EggData::recompute_polygon_normals(void);

1769 13 strip_normals 0 4 2093 22 EggData::strip_normals 0 1 776 317
/**
 * Removes all normals from primitives, and the vertices they reference, at
 * this node and below.
 *
 * This function does not remove or adjust vertices in the vertex pool; it
 * only adds new vertices with the normal removed.  Thus, it is a good idea to
 * call remove_unused_vertices() after calling this.
 */
41
inline void EggData::strip_normals(void);

1770 14 get_class_type 0 4 2093 23 EggData::get_class_type 0 1 777 0
48
static TypeHandle EggData::get_class_type(void);

1771 8 ~EggData 0 516 2093 17 EggData::~EggData 0 0 0
24
EggData::~EggData(void);

1772 19 EggCoordinateSystem 0 260 2097 40 EggCoordinateSystem::EggCoordinateSystem 0 2 778 779 22
/**
 *
 */

/**
 *
 */
169
inline EggCoordinateSystem::EggCoordinateSystem(CoordinateSystem value = ::CS_default);
inline EggCoordinateSystem::EggCoordinateSystem(EggCoordinateSystem const &copy);

1773 9 set_value 0 4 2097 30 EggCoordinateSystem::set_value 0 1 780 10
/**
 *
 */
67
inline void EggCoordinateSystem::set_value(CoordinateSystem value);

1774 9 get_value 0 4 2097 30 EggCoordinateSystem::get_value 0 1 781 10
/**
 *
 */
67
inline CoordinateSystem EggCoordinateSystem::get_value(void) const;

1775 10 __reduce__ 0 4 2097 31 EggCoordinateSystem::__reduce__ 0 1 782 0
54
PyObject *EggCoordinateSystem::__reduce__(void) const;

1776 14 get_class_type 0 4 2097 35 EggCoordinateSystem::get_class_type 0 1 783 0
60
static TypeHandle EggCoordinateSystem::get_class_type(void);

1777 20 ~EggCoordinateSystem 0 516 2097 41 EggCoordinateSystem::~EggCoordinateSystem 0 0 0
48
EggCoordinateSystem::~EggCoordinateSystem(void);

1778 10 operator = 0 4 2098 20 EggCurve::operator = 0 1 784 10
/**
 *
 */
55
inline void EggCurve::operator =(EggCurve const &copy);

1779 10 set_subdiv 0 4 2098 20 EggCurve::set_subdiv 0 1 785 276
/**
 * Sets the number of subdivisions that will be requested across the curve.
 * (This doesn't necessary guarantee that this number of subdivisions will be
 * made; it's just a hint to any curve renderer or quick tesselator.)  Set the
 * number to 0 to disable the hint.
 */
45
inline void EggCurve::set_subdiv(int subdiv);

1780 10 get_subdiv 0 4 2098 20 EggCurve::get_subdiv 0 1 786 115
/**
 * Returns the requested number of subdivisions, or 0 if no particular
 * subdivisions have been requested.
 */
44
inline int EggCurve::get_subdiv(void) const;

1781 14 set_curve_type 0 4 2098 24 EggCurve::set_curve_type 0 1 787 126
/**
 * Sets the type of the curve.  This is primarily used as a hint to any code
 * that may need to deal with this curve.
 */
63
inline void EggCurve::set_curve_type(EggCurve::CurveType type);

1782 14 get_curve_type 0 4 2098 24 EggCurve::get_curve_type 0 1 788 51
/**
 * Returns the indicated type of the curve.
 */
64
inline EggCurve::CurveType EggCurve::get_curve_type(void) const;

1783 17 string_curve_type 0 4 2098 27 EggCurve::string_curve_type 0 1 789 163
/**
 * Returns the CurveType value associated with the given string
 * representation, or CT_invalid if the string does not match any known
 * CurveType value.
 */
82
static EggCurve::CurveType EggCurve::string_curve_type(std::string const &string);

1784 14 get_class_type 0 4 2098 24 EggCurve::get_class_type 0 1 790 0
49
static TypeHandle EggCurve::get_class_type(void);

1785 9 ~EggCurve 0 516 2098 19 EggCurve::~EggCurve 0 0 0
26
EggCurve::~EggCurve(void);

1786 20 EggExternalReference 0 260 2100 42 EggExternalReference::EggExternalReference 0 2 791 792 22
/**
 *
 */

/**
 *
 */
189
explicit EggExternalReference::EggExternalReference(std::string const &node_name, std::string const &filename);
EggExternalReference::EggExternalReference(EggExternalReference const &copy);

1787 10 operator = 0 4 2100 32 EggExternalReference::operator = 0 1 793 10
/**
 *
 */
72
void EggExternalReference::operator =(EggExternalReference const &copy);

1788 14 get_class_type 0 4 2100 36 EggExternalReference::get_class_type 0 1 794 0
61
static TypeHandle EggExternalReference::get_class_type(void);

1789 21 ~EggExternalReference 0 516 2100 43 EggExternalReference::~EggExternalReference 0 0 0
50
EggExternalReference::~EggExternalReference(void);

1790 5 clear 0 4 2101 24 EggNameUniquifier::clear 0 1 795 86
/**
 * Empties the table of used named and prepares the Uniquifier for a new tree.
 */
36
void EggNameUniquifier::clear(void);

1791 8 uniquify 0 4 2101 27 EggNameUniquifier::uniquify 0 1 796 56
/**
 * Begins the traversal from the indicated node.
 */
48
void EggNameUniquifier::uniquify(EggNode *node);

1792 8 get_node 0 4 2101 27 EggNameUniquifier::get_node 0 1 797 114
/**
 * Returns the node associated with the given category and name, or NULL if
 * the name has not been used.
 */
97
EggNode *EggNameUniquifier::get_node(std::string const &category, std::string const &name) const;

1793 8 has_name 0 4 2101 27 EggNameUniquifier::has_name 0 1 798 105
/**
 * Returns true if the name has been used for the indicated category already,
 * false otherwise.
 */
93
bool EggNameUniquifier::has_name(std::string const &category, std::string const &name) const;

1794 8 add_name 0 4 2101 27 EggNameUniquifier::add_name 0 1 799 219
/**
 * Adds the name to the indicated category.  This name will not be used for
 * any other egg node within this category.  Returns true if the name was
 * added, or false if it was already in use for the category.
 */
112
bool EggNameUniquifier::add_name(std::string const &category, std::string const &name, EggNode *node = nullptr);

1795 12 get_category 0 6 2101 31 EggNameUniquifier::get_category 0 1 800 0
71
virtual std::string EggNameUniquifier::get_category(EggNode *node) = 0;

1796 11 filter_name 0 6 2101 30 EggNameUniquifier::filter_name 0 1 801 216
/**
 * Returns the name of the given node, or at least the name it should be.
 * This provides a hook to adjust the name before attempting to uniquify it,
 * if desired, for instance to remove invalid characters.
 */
66
virtual std::string EggNameUniquifier::filter_name(EggNode *node);

1797 13 generate_name 0 6 2101 32 EggNameUniquifier::generate_name 0 1 802 365
/**
 * Generates a new name for the given node when its existing name clashes with
 * some other node.  This function will be called repeatedly, if necessary,
 * until it returns a name that actually is unique.
 *
 * The category is the string returned by get_category(), and index is a
 * uniquely-generated number that may be useful for synthesizing the name.
 */
108
virtual std::string EggNameUniquifier::generate_name(EggNode *node, std::string const &category, int index);

1798 14 get_class_type 0 4 2101 33 EggNameUniquifier::get_class_type 0 1 803 0
58
static TypeHandle EggNameUniquifier::get_class_type(void);

1799 18 EggGroupUniquifier 0 260 2102 38 EggGroupUniquifier::EggGroupUniquifier 0 1 804 254
/**
 * If filter_names is true, then the group names will be coerced into a fairly
 * safe, standard convention that uses no characters other than a-z, A-Z, 0-9,
 * and underscore.  If filter_names is false, the group names will be left
 * unchanged.
 */
74
explicit EggGroupUniquifier::EggGroupUniquifier(bool filter_names = true);

1800 14 get_class_type 0 4 2102 34 EggGroupUniquifier::get_class_type 0 1 805 0
59
static TypeHandle EggGroupUniquifier::get_class_type(void);

1801 19 ~EggGroupUniquifier 0 516 2102 39 EggGroupUniquifier::~EggGroupUniquifier 0 0 0
46
EggGroupUniquifier::~EggGroupUniquifier(void);

1802 7 EggLine 0 260 2103 16 EggLine::EggLine 0 2 806 807 22
/**
 *
 */

/**
 *
 */
109
inline explicit EggLine::EggLine(std::string const &name = "");
inline EggLine::EggLine(EggLine const &copy);

1803 10 operator = 0 4 2103 19 EggLine::operator = 0 1 808 10
/**
 *
 */
53
inline void EggLine::operator =(EggLine const &copy);

1804 9 has_thick 0 4 2103 18 EggLine::has_thick 0 1 809 10
/**
 *
 */
43
inline bool EggLine::has_thick(void) const;

1805 9 get_thick 0 4 2103 18 EggLine::get_thick 0 1 810 108
/**
 * Returns the thickness set on this particular line.  If there is no
 * thickness set, returns 1.0.
 */
45
inline double EggLine::get_thick(void) const;

1806 9 set_thick 0 4 2103 18 EggLine::set_thick 0 1 811 10
/**
 *
 */
45
inline void EggLine::set_thick(double thick);

1807 11 clear_thick 0 4 2103 20 EggLine::clear_thick 0 1 812 10
/**
 *
 */
39
inline void EggLine::clear_thick(void);

1808 14 get_class_type 0 4 2103 23 EggLine::get_class_type 0 1 813 0
48
static TypeHandle EggLine::get_class_type(void);

1809 21 EggMaterialCollection 0 260 2104 44 EggMaterialCollection::EggMaterialCollection 0 2 814 815 22
/**
 *
 */

/**
 *
 */
132
EggMaterialCollection::EggMaterialCollection(void);
EggMaterialCollection::EggMaterialCollection(EggMaterialCollection const &copy);

1810 10 operator = 0 4 2104 33 EggMaterialCollection::operator = 0 1 816 10
/**
 *
 */
74
void EggMaterialCollection::operator =(EggMaterialCollection const &copy);

1811 22 ~EggMaterialCollection 0 516 2104 45 EggMaterialCollection::~EggMaterialCollection 0 0 10
/**
 *
 */
52
EggMaterialCollection::~EggMaterialCollection(void);

1812 5 clear 0 4 2104 28 EggMaterialCollection::clear 0 1 817 53
/**
 * Removes all materials from the collection.
 */
40
void EggMaterialCollection::clear(void);

1813 17 extract_materials 0 4 2104 40 EggMaterialCollection::extract_materials 0 1 818 211
/**
 * Walks the egg hierarchy beginning at the indicated node, and removes any
 * EggMaterials encountered in the hierarchy, adding them to the collection.
 * Returns the number of EggMaterials encountered.
 */
65
int EggMaterialCollection::extract_materials(EggGroupNode *node);

1814 19 find_used_materials 0 4 2104 42 EggMaterialCollection::find_used_materials 0 1 819 903
/**
 * Walks the egg hierarchy beginning at the indicated node, looking for
 * materials that are referenced by primitives but are not already members of
 * the collection, adding them to the collection.
 *
 * If this is called following extract_materials(), it can be used to pick up
 * any additional material references that appeared in the egg hierarchy (but
 * whose EggMaterial node was not actually part of the hierarchy).
 *
 * If this is called in lieu of extract_materials(), it will fill up the
 * collection with all of the referenced materials (and only the referenced
 * materials), without destructively removing the EggMaterials from the
 * hierarchy.
 *
 * This also has the side effect of incrementing the internal usage count for
 * a material in the collection each time a material reference is encountered.
 * This side effect is taken advantage of by remove_unused_materials().
 */
62
int EggMaterialCollection::find_used_materials(EggNode *node);

1815 23 remove_unused_materials 0 4 2104 46 EggMaterialCollection::remove_unused_materials 0 1 820 283
/**
 * Removes any materials from the collection that aren't referenced by any
 * primitives in the indicated egg hierarchy.  This also, incidentally, adds
 * materials to the collection that had been referenced by primitives but had
 * not previously appeared in the collection.
 */
67
void EggMaterialCollection::remove_unused_materials(EggNode *node);

1816 29 collapse_equivalent_materials 0 4 2104 52 EggMaterialCollection::collapse_equivalent_materials 0 2 821 822 1050
/**
 * Walks through the collection and collapses together any separate materials
 * that are equivalent according to the indicated equivalence factor, eq (see
 * EggMaterial::is_equivalent_to()).  The return value is the number of
 * materials removed.
 *
 * This flavor of collapse_equivalent_materials() automatically adjusts all
 * the primitives in the egg hierarchy to refer to the new material pointers.
 */

/**
 * Walks through the collection and collapses together any separate materials
 * that are equivalent according to the indicated equivalence factor, eq (see
 * EggMaterial::is_equivalent_to()).  The return value is the number of
 * materials removed.
 *
 * This flavor of collapse_equivalent_materials() does not adjust any
 * primitives in the egg hierarchy; instead, it fills up the 'removed' map
 * with an entry for each removed material, mapping it back to the equivalent
 * retained material.  It's up to the user to then call replace_materials()
 * with this map, if desired, to apply these changes to the egg hierarchy.
 */
204
int EggMaterialCollection::collapse_equivalent_materials(int eq, EggGroupNode *node);
int EggMaterialCollection::collapse_equivalent_materials(int eq, EggMaterialCollection::MaterialReplacement &removed);

1817 17 replace_materials 0 4 2104 40 EggMaterialCollection::replace_materials 0 1 823 300
/**
 * Walks the egg hierarchy, changing out any reference to a material appearing
 * on the left side of the map with its corresponding material on the right
 * side.  This is most often done following a call to
 * collapse_equivalent_materials().  It does not directly affect the
 * Collection.
 */
132
static void EggMaterialCollection::replace_materials(EggGroupNode *node, EggMaterialCollection::MaterialReplacement const &replace);

1818 14 uniquify_mrefs 0 4 2104 37 EggMaterialCollection::uniquify_mrefs 0 1 824 131
/**
 * Guarantees that each material in the collection has a unique MRef name.
 * This is essential before writing an egg file.
 */
49
void EggMaterialCollection::uniquify_mrefs(void);

1819 12 sort_by_mref 0 4 2104 35 EggMaterialCollection::sort_by_mref 0 1 825 154
/**
 * Sorts all the materials into alphabetical order by MRef name.  Subsequent
 * operations using begin()/end() will traverse in this sorted order.
 */
47
void EggMaterialCollection::sort_by_mref(void);

1820 12 add_material 0 4 2104 35 EggMaterialCollection::add_material 0 1 826 165
/**
 * Explicitly adds a new material to the collection.  Returns true if the
 * material was added, false if it was already there or if there was some
 * error.
 */
64
bool EggMaterialCollection::add_material(EggMaterial *material);

1821 15 remove_material 0 4 2104 38 EggMaterialCollection::remove_material 0 1 827 160
/**
 * Explicitly removes a material from the collection.  Returns true if the
 * material was removed, false if it wasn't there or if there was some error.
 */
67
bool EggMaterialCollection::remove_material(EggMaterial *material);

1822 22 create_unique_material 0 4 2104 45 EggMaterialCollection::create_unique_material 0 1 828 421
// create_unique_material() creates a new material if there is not already
// one equivalent (according to eq, see EggMaterial::is_equivalent_to()) to
// the indicated material, or returns the existing one if there is.

/**
 * Creates a new material if there is not already one equivalent (according to
 * eq, see EggMaterial::is_equivalent_to()) to the indicated material, or
 * returns the existing one if there is.
 */
92
EggMaterial *EggMaterialCollection::create_unique_material(EggMaterial const &copy, int eq);

1823 9 find_mref 0 4 2104 32 EggMaterialCollection::find_mref 0 1 829 145
// Find a material with a particular MRef name.

/**
 * Returns the material with the indicated MRef name, or NULL if no material
 * matches.
 */
82
EggMaterial *EggMaterialCollection::find_mref(std::string const &mref_name) const;

1824 10 EggPolygon 0 260 2105 22 EggPolygon::EggPolygon 0 2 830 831 22
/**
 *
 */

/**
 *
 */
124
inline explicit EggPolygon::EggPolygon(std::string const &name = "");
inline EggPolygon::EggPolygon(EggPolygon const &copy);

1825 10 operator = 0 4 2105 22 EggPolygon::operator = 0 1 832 10
/**
 *
 */
59
inline void EggPolygon::operator =(EggPolygon const &copy);

1826 16 calculate_normal 0 4 2105 28 EggPolygon::calculate_normal 0 1 833 374
/**
 * Calculates the true polygon normal--the vector pointing out of the front of
 * the polygon--based on the vertices.  This does not return or change the
 * polygon's normal as set via set_normal().
 *
 * The return value is true if the normal is computed correctly, or false if
 * the polygon is degenerate and does not have at least three noncollinear
 * vertices.
 */
94
bool EggPolygon::calculate_normal(LNormald &result, CoordinateSystem cs = ::CS_default) const;

1827 9 is_planar 0 4 2105 21 EggPolygon::is_planar 0 1 834 103
/**
 * Returns true if all of the polygon's vertices lie within the same plane,
 * false otherwise.
 */
39
bool EggPolygon::is_planar(void) const;

1828 24 recompute_polygon_normal 0 4 2105 36 EggPolygon::recompute_polygon_normal 0 1 835 210
/**
 * Recalculates the normal according to the order of the vertices, and sets
 * it.  Returns true if the normal is computed correctly, or false if the
 * polygon is degenerate and does not have a normal.
 */
85
inline bool EggPolygon::recompute_polygon_normal(CoordinateSystem cs = ::CS_default);

1829 16 triangulate_into 0 4 2105 28 EggPolygon::triangulate_into 0 1 836 656
/**
 * Subdivides the polygon into triangles and adds each one to the indicated
 * container.  If the polygon is already a triangle, adds an exact copy of the
 * polygon to the container.  Does not remove the polygon from its existing
 * parent or modify it in any way.
 *
 * Returns true if the triangulation is successful, or false if there was some
 * error (in which case the container may contain some partial triangulation).
 *
 * If convex_also is true, both concave and convex polygons will be subdivided
 * into triangles; otherwise, only concave polygons will be subdivided, and
 * convex polygons will be copied unchanged into the container.
 */
90
inline bool EggPolygon::triangulate_into(EggGroupNode *container, bool convex_also) const;

1830 20 triangulate_in_place 0 4 2105 32 EggPolygon::triangulate_in_place 0 1 837 444
/**
 * Subdivides the polygon into triangles and adds those triangles to the
 * parent group node in place of the original polygon.  Returns a pointer to
 * the original polygon, which is likely about to be destructed.
 *
 * If convex_also is true, both concave and convex polygons will be subdivided
 * into triangles; otherwise, only concave polygons will be subdivided, and
 * convex polygons will be copied unchanged into the container.
 */
75
PointerTo< EggPolygon > EggPolygon::triangulate_in_place(bool convex_also);

1831 14 get_class_type 0 4 2105 26 EggPolygon::get_class_type 0 1 838 0
51
static TypeHandle EggPolygon::get_class_type(void);

1832 11 ~EggPolygon 0 516 2105 23 EggPolygon::~EggPolygon 0 0 0
30
EggPolygon::~EggPolygon(void);

1833 14 parse_egg_data 0 1 0 14 parse_egg_data 0 1 1003 53
/**
 * Parses an EggData from the raw egg syntax.
 */
67
PointerTo< EggData > parse_egg_data(std::string const &egg_syntax);

1834 14 parse_egg_node 0 1 0 14 parse_egg_node 0 1 1004 60
/**
 * Parses a single egg node from the raw egg syntax.
 */
67
PointerTo< EggNode > parse_egg_node(std::string const &egg_syntax);

1835 13 EggNurbsCurve 0 260 2106 28 EggNurbsCurve::EggNurbsCurve 0 2 839 840 22
/**
 *
 */

/**
 *
 */
139
inline explicit EggNurbsCurve::EggNurbsCurve(std::string const &name = "");
inline EggNurbsCurve::EggNurbsCurve(EggNurbsCurve const &copy);

1836 10 operator = 0 4 2106 25 EggNurbsCurve::operator = 0 1 841 10
/**
 *
 */
65
inline void EggNurbsCurve::operator =(EggNurbsCurve const &copy);

1837 5 setup 0 4 2106 20 EggNurbsCurve::setup 0 1 842 306
/**
 * Prepares a new curve definition with the indicated order and number of
 * knots.  This also implies a particular number of vertices as well (the
 * number of knots minus the order), but it is up to the user to add the
 * correct number of vertices to the curve by repeatedly calling push_back().
 */
52
void EggNurbsCurve::setup(int order, int num_knots);

1838 9 set_order 0 4 2106 24 EggNurbsCurve::set_order 0 1 843 273
/**
 * Directly changes the order to the indicated value (which must be an integer
 * in the range 1 <= order <= 4).  If possible, it is preferable to use the
 * setup() method instead of this method, since changing the order directly
 * may result in an invalid curve.
 */
48
inline void EggNurbsCurve::set_order(int order);

1839 13 set_num_knots 0 4 2106 28 EggNurbsCurve::set_num_knots 0 1 844 361
/**
 * Directly changes the number of knots.  This will either add zero-valued
 * knots onto the end, or truncate knot values from the end, depending on
 * whether the list is being increased or decreased.  If possible, it is
 * preferable to use the setup() method instead of directly setting the number
 * of knots, as this may result in an invalid curve.
 */
43
void EggNurbsCurve::set_num_knots(int num);

1840 8 set_knot 0 4 2106 23 EggNurbsCurve::set_knot 0 1 845 199
/**
 * Resets the value of the indicated knot as indicated.  k must be in the
 * range 0 <= k < get_num_knots(), and the value must be in the range
 * get_knot(k - 1) <= value <= get_knot(k + 1).
 */
57
inline void EggNurbsCurve::set_knot(int k, double value);

1841 8 is_valid 0 4 2106 23 EggNurbsCurve::is_valid 0 1 846 204
/**
 * Returns true if the NURBS parameters are all internally consistent (e.g.
 * it has the right number of vertices to match its number of knots and order
 * in each dimension), or false otherwise.
 */
41
bool EggNurbsCurve::is_valid(void) const;

1842 9 get_order 0 4 2106 24 EggNurbsCurve::get_order 0 1 847 215
/**
 * Returns the order of the curve.  The order is the degree of the NURBS
 * equation plus 1; for a typical NURBS, the order is 4.  With this
 * implementation of NURBS, the order must be in the range [1, 4].
 */
48
inline int EggNurbsCurve::get_order(void) const;

1843 10 get_degree 0 4 2106 25 EggNurbsCurve::get_degree 0 1 848 82
/**
 * Returns the degree of the curve.  For a typical NURBS, the degree is 3.
 */
49
inline int EggNurbsCurve::get_degree(void) const;

1844 13 get_num_knots 0 4 2106 28 EggNurbsCurve::get_num_knots 0 1 849 39
/**
 * Returns the number of knots.
 */
52
inline int EggNurbsCurve::get_num_knots(void) const;

1845 11 get_num_cvs 0 4 2106 26 EggNurbsCurve::get_num_cvs 0 1 850 367
/**
 * Returns the total number of control vertices that *should* be defined for
 * the curve.  This is determined by the number of knots and the order, in
 * each direction; it does not necessarily reflect the number of vertices that
 * have actually been added to the curve.  (However, if the number of vertices
 * in the curve are wrong, the curve is invalid.)
 */
50
inline int EggNurbsCurve::get_num_cvs(void) const;

1846 9 is_closed 0 4 2106 24 EggNurbsCurve::is_closed 0 1 851 204
/**
 * Returns true if the curve appears to be closed.  Since the Egg syntax does
 * not provide a means for explicit indication of closure, this has to be
 * guessed at by examining the curve itself.
 */
42
bool EggNurbsCurve::is_closed(void) const;

1847 8 get_knot 0 4 2106 23 EggNurbsCurve::get_knot 0 1 852 46
/**
 * Returns the nth knot value defined.
 */
51
inline double EggNurbsCurve::get_knot(int k) const;

1848 14 get_class_type 0 4 2106 29 EggNurbsCurve::get_class_type 0 1 853 0
54
static TypeHandle EggNurbsCurve::get_class_type(void);

1849 14 ~EggNurbsCurve 0 516 2106 29 EggNurbsCurve::~EggNurbsCurve 0 0 0
36
EggNurbsCurve::~EggNurbsCurve(void);

1850 10 operator = 0 4 2107 22 EggSurface::operator = 0 1 854 10
/**
 *
 */
59
inline void EggSurface::operator =(EggSurface const &copy);

1851 12 set_u_subdiv 0 4 2107 24 EggSurface::set_u_subdiv 0 1 855 300
/**
 * Sets the number of subdivisions in the U direction that will be requested
 * across the surface.  (This doesn't necessary guarantee that this number of
 * subdivisions will be made; it's just a hint to any surface renderer or
 * quick tesselator.)  Set the number to 0 to disable the hint.
 */
49
inline void EggSurface::set_u_subdiv(int subdiv);

1852 12 get_u_subdiv 0 4 2107 24 EggSurface::get_u_subdiv 0 1 856 134
/**
 * Returns the requested number of subdivisions in the U direction, or 0 if no
 * particular subdivisions have been requested.
 */
48
inline int EggSurface::get_u_subdiv(void) const;

1853 12 set_v_subdiv 0 4 2107 24 EggSurface::set_v_subdiv 0 1 857 300
/**
 * Sets the number of subdivisions in the U direction that will be requested
 * across the surface.  (This doesn't necessary guarantee that this number of
 * subdivisions will be made; it's just a hint to any surface renderer or
 * quick tesselator.)  Set the number to 0 to disable the hint.
 */
49
inline void EggSurface::set_v_subdiv(int subdiv);

1854 12 get_v_subdiv 0 4 2107 24 EggSurface::get_v_subdiv 0 1 858 134
/**
 * Returns the requested number of subdivisions in the U direction, or 0 if no
 * particular subdivisions have been requested.
 */
48
inline int EggSurface::get_v_subdiv(void) const;

1855 14 get_class_type 0 4 2107 26 EggSurface::get_class_type 0 1 859 0
51
static TypeHandle EggSurface::get_class_type(void);

1856 11 ~EggSurface 0 516 2107 23 EggSurface::~EggSurface 0 0 0
30
EggSurface::~EggSurface(void);

1857 15 EggNurbsSurface 0 260 2108 32 EggNurbsSurface::EggNurbsSurface 0 2 860 861 22
/**
 *
 */

/**
 *
 */
149
inline explicit EggNurbsSurface::EggNurbsSurface(std::string const &name = "");
inline EggNurbsSurface::EggNurbsSurface(EggNurbsSurface const &copy);

1858 10 operator = 0 4 2108 27 EggNurbsSurface::operator = 0 1 862 10
/**
 *
 */
69
inline void EggNurbsSurface::operator =(EggNurbsSurface const &copy);

1859 5 setup 0 4 2108 22 EggNurbsSurface::setup 0 1 863 349
/**
 * Prepares a new surface definition with the indicated order and number of
 * knots in each dimension.  This also implies a particular number of vertices
 * in each dimension as well (the number of knots minus the order), but it is
 * up to the user to add the correct number of vertices to the surface by
 * repeatedly calling push_back().
 */
88
void EggNurbsSurface::setup(int u_order, int v_order, int num_u_knots, int num_v_knots);

1860 11 set_u_order 0 4 2108 28 EggNurbsSurface::set_u_order 0 1 864 296
/**
 * Directly changes the order in the U direction to the indicated value (which
 * must be an integer in the range 1 <= u_order <= 4).  If possible, it is
 * preferable to use the setup() method instead of this method, since changing
 * the order directly may result in an invalid surface.
 */
54
inline void EggNurbsSurface::set_u_order(int u_order);

1861 11 set_v_order 0 4 2108 28 EggNurbsSurface::set_v_order 0 1 865 296
/**
 * Directly changes the order in the V direction to the indicated value (which
 * must be an integer in the range 1 <= v_order <= 4).  If possible, it is
 * preferable to use the setup() method instead of this method, since changing
 * the order directly may result in an invalid surface.
 */
54
inline void EggNurbsSurface::set_v_order(int v_order);

1862 15 set_num_u_knots 0 4 2108 32 EggNurbsSurface::set_num_u_knots 0 1 866 382
/**
 * Directly changes the number of knots in the U direction.  This will either
 * add zero-valued knots onto the end, or truncate knot values from the end,
 * depending on whether the list is being increased or decreased.  If
 * possible, it is preferable to use the setup() method instead of directly
 * setting the number of knots, as this may result in an invalid surface.
 */
47
void EggNurbsSurface::set_num_u_knots(int num);

1863 15 set_num_v_knots 0 4 2108 32 EggNurbsSurface::set_num_v_knots 0 1 867 382
/**
 * Directly changes the number of knots in the V direction.  This will either
 * add zero-valued knots onto the end, or truncate knot values from the end,
 * depending on whether the list is being increased or decreased.  If
 * possible, it is preferable to use the setup() method instead of directly
 * setting the number of knots, as this may result in an invalid surface.
 */
47
void EggNurbsSurface::set_num_v_knots(int num);

1864 10 set_u_knot 0 4 2108 27 EggNurbsSurface::set_u_knot 0 1 868 205
/**
 * Resets the value of the indicated knot as indicated.  k must be in the
 * range 0 <= k < get_num_u_knots(), and the value must be in the range
 * get_u_knot(k - 1) <= value <= get_u_knot(k + 1).
 */
61
inline void EggNurbsSurface::set_u_knot(int k, double value);

1865 10 set_v_knot 0 4 2108 27 EggNurbsSurface::set_v_knot 0 1 869 205
/**
 * Resets the value of the indicated knot as indicated.  k must be in the
 * range 0 <= k < get_num_v_knots(), and the value must be in the range
 * get_v_knot(k - 1) <= value <= get_v_knot(k + 1).
 */
61
inline void EggNurbsSurface::set_v_knot(int k, double value);

1866 6 set_cv 0 4 2108 23 EggNurbsSurface::set_cv 0 1 870 202
/**
 * Redefines the control vertex associated with a particular u, v coordinate
 * pair.  This is just a shorthand to access the EggPrimitive's normal vertex
 * assignment for a 2-d control vertex.
 */
71
inline void EggNurbsSurface::set_cv(int ui, int vi, EggVertex *vertex);

1867 8 is_valid 0 4 2108 25 EggNurbsSurface::is_valid 0 1 871 204
/**
 * Returns true if the NURBS parameters are all internally consistent (e.g.
 * it has the right number of vertices to match its number of knots and order
 * in each dimension), or false otherwise.
 */
43
bool EggNurbsSurface::is_valid(void) const;

1868 11 get_u_order 0 4 2108 28 EggNurbsSurface::get_u_order 0 1 872 235
/**
 * Returns the order of the surface in the U direction.  The order is the
 * degree of the NURBS equation plus 1; for a typical NURBS, the order is 4.
 * With this implementation of NURBS, the order must be in the range [1, 4].
 */
52
inline int EggNurbsSurface::get_u_order(void) const;

1869 11 get_v_order 0 4 2108 28 EggNurbsSurface::get_v_order 0 1 873 235
/**
 * Returns the order of the surface in the V direction.  The order is the
 * degree of the NURBS equation plus 1; for a typical NURBS, the order is 4.
 * With this implementation of NURBS, the order must be in the range [1, 4].
 */
52
inline int EggNurbsSurface::get_v_order(void) const;

1870 12 get_u_degree 0 4 2108 29 EggNurbsSurface::get_u_degree 0 1 874 106
/**
 * Returns the degree of the surface in the U direction.  For a typical NURBS,
 * the degree is 3.
 */
53
inline int EggNurbsSurface::get_u_degree(void) const;

1871 12 get_v_degree 0 4 2108 29 EggNurbsSurface::get_v_degree 0 1 875 106
/**
 * Returns the degree of the surface in the V direction.  for a typical NURBS,
 * the degree is 3.
 */
53
inline int EggNurbsSurface::get_v_degree(void) const;

1872 15 get_num_u_knots 0 4 2108 32 EggNurbsSurface::get_num_u_knots 0 1 876 58
/**
 * Returns the number of knots in the U direction.
 */
56
inline int EggNurbsSurface::get_num_u_knots(void) const;

1873 15 get_num_v_knots 0 4 2108 32 EggNurbsSurface::get_num_v_knots 0 1 877 58
/**
 * Returns the number of knots in the V direction.
 */
56
inline int EggNurbsSurface::get_num_v_knots(void) const;

1874 13 get_num_u_cvs 0 4 2108 30 EggNurbsSurface::get_num_u_cvs 0 1 878 351
/**
 * Returns the number of control vertices that should be present in the U
 * direction.  This is determined by the number of knots and the order; it
 * does not necessarily reflect the number of vertices that have actually been
 * added to the surface.  (However, if the number of vertices in the surface
 * are wrong, the surface is invalid.)
 */
54
inline int EggNurbsSurface::get_num_u_cvs(void) const;

1875 13 get_num_v_cvs 0 4 2108 30 EggNurbsSurface::get_num_v_cvs 0 1 879 351
/**
 * Returns the number of control vertices that should be present in the V
 * direction.  This is determined by the number of knots and the order; it
 * does not necessarily reflect the number of vertices that have actually been
 * added to the surface.  (However, if the number of vertices in the surface
 * are wrong, the surface is invalid.)
 */
54
inline int EggNurbsSurface::get_num_v_cvs(void) const;

1876 11 get_num_cvs 0 4 2108 28 EggNurbsSurface::get_num_cvs 0 1 880 375
/**
 * Returns the total number of control vertices that *should* be defined for
 * the surface.  This is determined by the number of knots and the order, in
 * each direction; it does not necessarily reflect the number of vertices that
 * have actually been added to the surface.  (However, if the number of
 * vertices in the surface are wrong, the surface is invalid.)
 */
52
inline int EggNurbsSurface::get_num_cvs(void) const;

1877 11 get_u_index 0 4 2108 28 EggNurbsSurface::get_u_index 0 1 881 265
/**
 * Returns the U index number of the given vertex within the EggPrimitive's
 * linear list of vertices.  An EggNurbsSurface maps a linear list of vertices
 * to its 2-d mesh; this returns the U index number that corresponds to the
 * nth vertex in the list.
 */
64
inline int EggNurbsSurface::get_u_index(int vertex_index) const;

1878 11 get_v_index 0 4 2108 28 EggNurbsSurface::get_v_index 0 1 882 265
/**
 * Returns the V index number of the given vertex within the EggPrimitive's
 * linear list of vertices.  An EggNurbsSurface maps a linear list of vertices
 * to its 2-d mesh; this returns the V index number that corresponds to the
 * nth vertex in the list.
 */
64
inline int EggNurbsSurface::get_v_index(int vertex_index) const;

1879 16 get_vertex_index 0 4 2108 33 EggNurbsSurface::get_vertex_index 0 1 883 111
/**
 * Returns the index number within the EggPrimitive's list of the control
 * vertex at position ui, vi.
 */
67
inline int EggNurbsSurface::get_vertex_index(int ui, int vi) const;

1880 11 is_closed_u 0 4 2108 28 EggNurbsSurface::is_closed_u 0 1 884 227
/**
 * Returns true if the surface appears to be closed in the U direction.  Since
 * the Egg syntax does not provide a means for explicit indication of closure,
 * this has to be guessed at by examining the surface itself.
 */
46
bool EggNurbsSurface::is_closed_u(void) const;

1881 11 is_closed_v 0 4 2108 28 EggNurbsSurface::is_closed_v 0 1 885 227
/**
 * Returns true if the surface appears to be closed in the V direction.  Since
 * the Egg syntax does not provide a means for explicit indication of closure,
 * this has to be guessed at by examining the surface itself.
 */
46
bool EggNurbsSurface::is_closed_v(void) const;

1882 10 get_u_knot 0 4 2108 27 EggNurbsSurface::get_u_knot 0 1 886 65
/**
 * Returns the nth knot value defined in the U direction.
 */
55
inline double EggNurbsSurface::get_u_knot(int k) const;

1883 10 get_v_knot 0 4 2108 27 EggNurbsSurface::get_v_knot 0 1 887 65
/**
 * Returns the nth knot value defined in the V direction.
 */
55
inline double EggNurbsSurface::get_v_knot(int k) const;

1884 6 get_cv 0 4 2108 23 EggNurbsSurface::get_cv 0 1 888 68
/**
 * Returns the control vertex at the indicate U, V position.
 */
64
inline EggVertex *EggNurbsSurface::get_cv(int ui, int vi) const;

1885 14 get_class_type 0 4 2108 31 EggNurbsSurface::get_class_type 0 1 889 0
56
static TypeHandle EggNurbsSurface::get_class_type(void);

1886 16 ~EggNurbsSurface 0 516 2108 33 EggNurbsSurface::~EggNurbsSurface 0 0 0
40
EggNurbsSurface::~EggNurbsSurface(void);

1887 8 EggPatch 0 260 2117 18 EggPatch::EggPatch 0 2 890 891 22
/**
 *
 */

/**
 *
 */
114
inline explicit EggPatch::EggPatch(std::string const &name = "");
inline EggPatch::EggPatch(EggPatch const &copy);

1888 10 operator = 0 4 2117 20 EggPatch::operator = 0 1 892 10
/**
 *
 */
55
inline void EggPatch::operator =(EggPatch const &copy);

1889 14 get_class_type 0 4 2117 24 EggPatch::get_class_type 0 1 893 0
49
static TypeHandle EggPatch::get_class_type(void);

1890 9 ~EggPatch 0 516 2117 19 EggPatch::~EggPatch 0 0 0
26
EggPatch::~EggPatch(void);

1891 8 EggPoint 0 260 2118 18 EggPoint::EggPoint 0 2 894 895 22
/**
 *
 */

/**
 *
 */
114
inline explicit EggPoint::EggPoint(std::string const &name = "");
inline EggPoint::EggPoint(EggPoint const &copy);

1892 10 operator = 0 4 2118 20 EggPoint::operator = 0 1 896 10
/**
 *
 */
55
inline void EggPoint::operator =(EggPoint const &copy);

1893 9 has_thick 0 4 2118 19 EggPoint::has_thick 0 1 897 10
/**
 *
 */
44
inline bool EggPoint::has_thick(void) const;

1894 9 get_thick 0 4 2118 19 EggPoint::get_thick 0 1 898 109
/**
 * Returns the thickness set on this particular point.  If there is no
 * thickness set, returns 1.0.
 */
46
inline double EggPoint::get_thick(void) const;

1895 9 set_thick 0 4 2118 19 EggPoint::set_thick 0 1 899 10
/**
 *
 */
46
inline void EggPoint::set_thick(double thick);

1896 11 clear_thick 0 4 2118 21 EggPoint::clear_thick 0 1 900 10
/**
 *
 */
40
inline void EggPoint::clear_thick(void);

1897 15 has_perspective 0 4 2118 25 EggPoint::has_perspective 0 1 901 10
/**
 *
 */
50
inline bool EggPoint::has_perspective(void) const;

1898 15 get_perspective 0 4 2118 25 EggPoint::get_perspective 0 1 902 125
/**
 * Returns the perspective flag set on this particular point.  If there is no
 * perspective flag set, returns false.
 */
50
inline bool EggPoint::get_perspective(void) const;

1899 15 set_perspective 0 4 2118 25 EggPoint::set_perspective 0 1 903 10
/**
 *
 */
56
inline void EggPoint::set_perspective(bool perspective);

1900 17 clear_perspective 0 4 2118 27 EggPoint::clear_perspective 0 1 904 10
/**
 *
 */
46
inline void EggPoint::clear_perspective(void);

1901 14 get_class_type 0 4 2118 24 EggPoint::get_class_type 0 1 905 0
49
static TypeHandle EggPoint::get_class_type(void);

1902 9 ~EggPoint 0 516 2118 19 EggPoint::~EggPoint 0 0 0
26
EggPoint::~EggPoint(void);

1903 15 EggPolysetMaker 0 260 2119 32 EggPolysetMaker::EggPolysetMaker 0 1 906 10
/**
 *
 */
39
EggPolysetMaker::EggPolysetMaker(void);

1904 14 set_properties 0 4 2119 31 EggPolysetMaker::set_properties 0 1 907 316
/**
 * Sets the set of properties that determines which polygons are allowed to be
 * grouped together into a single polyset.  This is the bitwise 'or' of all
 * the properties that matter.  If this is 0, all polygons (within a given
 * group) will be lumped into a common polyset regardless of their properties.
 */
53
void EggPolysetMaker::set_properties(int properties);

1905 14 get_class_type 0 4 2119 31 EggPolysetMaker::get_class_type 0 1 908 0
56
static TypeHandle EggPolysetMaker::get_class_type(void);

1906 16 ~EggPolysetMaker 0 516 2119 33 EggPolysetMaker::~EggPolysetMaker 0 0 0
40
EggPolysetMaker::~EggPolysetMaker(void);

1907 17 EggPoolUniquifier 0 260 2122 36 EggPoolUniquifier::EggPoolUniquifier 0 1 909 10
/**
 *
 */
43
EggPoolUniquifier::EggPoolUniquifier(void);

1908 14 get_class_type 0 4 2122 33 EggPoolUniquifier::get_class_type 0 1 910 0
58
static TypeHandle EggPoolUniquifier::get_class_type(void);

1909 18 ~EggPoolUniquifier 0 516 2122 37 EggPoolUniquifier::~EggPoolUniquifier 0 0 0
44
EggPoolUniquifier::~EggPoolUniquifier(void);

1910 12 EggSAnimData 0 260 2123 26 EggSAnimData::EggSAnimData 0 2 911 912 22
/**
 *
 */

/**
 *
 */
134
inline explicit EggSAnimData::EggSAnimData(std::string const &name = "");
inline EggSAnimData::EggSAnimData(EggSAnimData const &copy);

1911 10 operator = 0 4 2123 24 EggSAnimData::operator = 0 1 913 10
/**
 *
 */
63
inline void EggSAnimData::operator =(EggSAnimData const &copy);

1912 12 get_num_rows 0 4 2123 26 EggSAnimData::get_num_rows 0 1 914 100
/**
 * Returns the number of rows in the table.  For an SAnim table, each row has
 * one column.
 */
50
inline int EggSAnimData::get_num_rows(void) const;

1913 9 get_value 0 4 2123 23 EggSAnimData::get_value 0 1 915 106
/**
 * Returns the value at the indicated row.  Row must be in the range 0 <= row
 * < get_num_rows().
 */
53
inline double EggSAnimData::get_value(int row) const;

1914 9 set_value 0 4 2123 23 EggSAnimData::set_value 0 1 916 106
/**
 * Changes the value at the indicated row.  Row must be in the range 0 <= row
 * < get_num_rows().
 */
59
inline void EggSAnimData::set_value(int row, double value);

1915 8 optimize 0 4 2123 22 EggSAnimData::optimize 0 1 917 100
/**
 * Optimizes the data by collapsing a long table of duplicate values into a
 * single value.
 */
34
void EggSAnimData::optimize(void);

1916 14 get_class_type 0 4 2123 28 EggSAnimData::get_class_type 0 1 918 0
53
static TypeHandle EggSAnimData::get_class_type(void);

1917 13 ~EggSAnimData 0 516 2123 27 EggSAnimData::~EggSAnimData 0 0 0
34
EggSAnimData::~EggSAnimData(void);

1918 8 EggTable 0 260 2124 18 EggTable::EggTable 0 2 919 920 22
/**
 *
 */

/**
 *
 */
114
inline explicit EggTable::EggTable(std::string const &name = "");
inline EggTable::EggTable(EggTable const &copy);

1919 10 operator = 0 4 2124 20 EggTable::operator = 0 1 921 10
/**
 *
 */
55
inline void EggTable::operator =(EggTable const &copy);

1920 14 set_table_type 0 4 2124 24 EggTable::set_table_type 0 1 922 10
/**
 *
 */
63
inline void EggTable::set_table_type(EggTable::TableType type);

1921 14 get_table_type 0 4 2124 24 EggTable::get_table_type 0 1 923 10
/**
 *
 */
64
inline EggTable::TableType EggTable::get_table_type(void) const;

1922 13 has_transform 0 4 2124 23 EggTable::has_transform 0 1 924 90
/**
 * Returns true if the table contains a transform description, false
 * otherwise.
 */
41
bool EggTable::has_transform(void) const;

1923 17 string_table_type 0 4 2124 27 EggTable::string_table_type 0 1 925 163
/**
 * Returns the TableType value associated with the given string
 * representation, or TT_invalid if the string does not match any known
 * TableType value.
 */
82
static EggTable::TableType EggTable::string_table_type(std::string const &string);

1924 14 get_class_type 0 4 2124 24 EggTable::get_class_type 0 1 926 0
49
static TypeHandle EggTable::get_class_type(void);

1925 9 ~EggTable 0 516 2124 19 EggTable::~EggTable 0 0 0
26
EggTable::~EggTable(void);

1926 20 EggTextureCollection 0 260 2126 42 EggTextureCollection::EggTextureCollection 0 2 927 928 22
/**
 *
 */

/**
 *
 */
127
EggTextureCollection::EggTextureCollection(void);
EggTextureCollection::EggTextureCollection(EggTextureCollection const &copy);

1927 10 operator = 0 4 2126 32 EggTextureCollection::operator = 0 1 929 10
/**
 *
 */
72
void EggTextureCollection::operator =(EggTextureCollection const &copy);

1928 21 ~EggTextureCollection 0 516 2126 43 EggTextureCollection::~EggTextureCollection 0 0 10
/**
 *
 */
50
EggTextureCollection::~EggTextureCollection(void);

1929 5 clear 0 4 2126 27 EggTextureCollection::clear 0 1 930 52
/**
 * Removes all textures from the collection.
 */
39
void EggTextureCollection::clear(void);

1930 16 extract_textures 0 4 2126 38 EggTextureCollection::extract_textures 0 1 931 209
/**
 * Walks the egg hierarchy beginning at the indicated node, and removes any
 * EggTextures encountered in the hierarchy, adding them to the collection.
 * Returns the number of EggTextures encountered.
 */
63
int EggTextureCollection::extract_textures(EggGroupNode *node);

1931 8 is_empty 0 4 2126 30 EggTextureCollection::is_empty 0 1 932 86
/**
 * Returns true if there are no EggTexures in the collection, false otherwise.
 */
48
bool EggTextureCollection::is_empty(void) const;

1932 16 get_num_textures 0 4 2126 38 EggTextureCollection::get_num_textures 0 1 933 63
/**
 * Returns the number of EggTextures in the collection.
 */
55
int EggTextureCollection::get_num_textures(void) const;

1933 11 get_texture 0 4 2126 33 EggTextureCollection::get_texture 0 1 934 56
/**
 * Returns the nth EggTexture in the collection.
 */
63
EggTexture *EggTextureCollection::get_texture(int index) const;

1934 18 find_used_textures 0 4 2126 40 EggTextureCollection::find_used_textures 0 1 935 1178
/**
 * Walks the egg hierarchy beginning at the indicated node, looking for
 * textures that are referenced by primitives but are not already members of
 * the collection, adding them to the collection.
 *
 * If this is called following extract_textures(), it can be used to pick up
 * any additional texture references that appeared in the egg hierarchy (but
 * whose EggTexture node was not actually part of the hierarchy).
 *
 * If this is called in lieu of extract_textures(), it will fill up the
 * collection with all of the referenced textures (and only the referenced
 * textures), without destructively removing the EggTextures from the
 * hierarchy.
 *
 * This also has the side effect of incrementing the internal usage count for
 * a texture in the collection each time a texture reference is encountered.
 * This side effect is taken advantage of by remove_unused_textures().
 *
 * And one more side effect: this function identifies the presence of
 * multitexturing in the egg file, and calls multitexture_over() on each
 * texture appropriately so that, after this call, you may expect
 * get_multitexture_sort() to return a reasonable value for each texture.
 */
60
int EggTextureCollection::find_used_textures(EggNode *node);

1935 22 remove_unused_textures 0 4 2126 44 EggTextureCollection::remove_unused_textures 0 1 936 281
/**
 * Removes any textures from the collection that aren't referenced by any
 * primitives in the indicated egg hierarchy.  This also, incidentally, adds
 * textures to the collection that had been referenced by primitives but had
 * not previously appeared in the collection.
 */
65
void EggTextureCollection::remove_unused_textures(EggNode *node);

1936 28 collapse_equivalent_textures 0 4 2126 50 EggTextureCollection::collapse_equivalent_textures 0 2 937 938 1038
/**
 * Walks through the collection and collapses together any separate textures
 * that are equivalent according to the indicated equivalence factor, eq (see
 * EggTexture::is_equivalent_to()).  The return value is the number of
 * textures removed.
 *
 * This flavor of collapse_equivalent_textures() automatically adjusts all the
 * primitives in the egg hierarchy to refer to the new texture pointers.
 */

/**
 * Walks through the collection and collapses together any separate textures
 * that are equivalent according to the indicated equivalence factor, eq (see
 * EggTexture::is_equivalent_to()).  The return value is the number of
 * textures removed.
 *
 * This flavor of collapse_equivalent_textures() does not adjust any
 * primitives in the egg hierarchy; instead, it fills up the 'removed' map
 * with an entry for each removed texture, mapping it back to the equivalent
 * retained texture.  It's up to the user to then call replace_textures() with
 * this map, if desired, to apply these changes to the egg hierarchy.
 */
198
int EggTextureCollection::collapse_equivalent_textures(int eq, EggGroupNode *node);
int EggTextureCollection::collapse_equivalent_textures(int eq, EggTextureCollection::TextureReplacement &removed);

1937 16 replace_textures 0 4 2126 38 EggTextureCollection::replace_textures 0 1 939 297
/**
 * Walks the egg hierarchy, changing out any reference to a texture appearing
 * on the left side of the map with its corresponding texture on the right
 * side.  This is most often done following a call to
 * collapse_equivalent_textures().  It does not directly affect the
 * Collection.
 */
128
static void EggTextureCollection::replace_textures(EggGroupNode *node, EggTextureCollection::TextureReplacement const &replace);

1938 14 uniquify_trefs 0 4 2126 36 EggTextureCollection::uniquify_trefs 0 1 940 130
/**
 * Guarantees that each texture in the collection has a unique TRef name.
 * This is essential before writing an egg file.
 */
48
void EggTextureCollection::uniquify_trefs(void);

1939 12 sort_by_tref 0 4 2126 34 EggTextureCollection::sort_by_tref 0 1 941 153
/**
 * Sorts all the textures into alphabetical order by TRef name.  Subsequent
 * operations using begin()/end() will traverse in this sorted order.
 */
46
void EggTextureCollection::sort_by_tref(void);

1940 16 sort_by_basename 0 4 2126 38 EggTextureCollection::sort_by_basename 0 1 942 202
/**
 * Sorts all the textures into alphabetical order by the basename part
 * (including extension) of the filename.  Subsequent operations using
 * begin()/end() will traverse in this sorted order.
 */
50
void EggTextureCollection::sort_by_basename(void);

1941 11 operator [] 0 4 2126 33 EggTextureCollection::operator [] 0 1 943 56
/**
 * Returns the nth EggTexture in the collection.
 */
94
inline EggTexture *EggTextureCollection::operator [](EggTextureCollection::size_type n) const;

1942 4 size 0 4 2126 26 EggTextureCollection::size 0 1 944 63
/**
 * Returns the number of EggTextures in the collection.
 */
78
inline EggTextureCollection::size_type EggTextureCollection::size(void) const;

1943 11 add_texture 0 4 2126 33 EggTextureCollection::add_texture 0 1 945 163
/**
 * Explicitly adds a new texture to the collection.  Returns true if the
 * texture was added, false if it was already there or if there was some
 * error.
 */
60
bool EggTextureCollection::add_texture(EggTexture *texture);

1944 14 remove_texture 0 4 2126 36 EggTextureCollection::remove_texture 0 1 946 158
/**
 * Explicitly removes a texture from the collection.  Returns true if the
 * texture was removed, false if it wasn't there or if there was some error.
 */
63
bool EggTextureCollection::remove_texture(EggTexture *texture);

1945 21 create_unique_texture 0 4 2126 43 EggTextureCollection::create_unique_texture 0 1 947 414
// create_unique_texture() creates a new texture if there is not already one
// equivalent (according to eq, see EggTexture::is_equivalent_to()) to the
// indicated texture, or returns the existing one if there is.

/**
 * Creates a new texture if there is not already one equivalent (according to
 * eq, see EggTexture::is_equivalent_to()) to the indicated texture, or
 * returns the existing one if there is.
 */
88
EggTexture *EggTextureCollection::create_unique_texture(EggTexture const &copy, int eq);

1946 9 find_tref 0 4 2126 31 EggTextureCollection::find_tref 0 1 948 142
// Find a texture with a particular TRef name.

/**
 * Returns the texture with the indicated TRef name, or NULL if no texture
 * matches.
 */
80
EggTexture *EggTextureCollection::find_tref(std::string const &tref_name) const;

1947 13 find_filename 0 4 2126 35 EggTextureCollection::find_filename 0 1 949 140
// Find a texture with a particular filename.

/**
 * Returns the texture with the indicated filename, or NULL if no texture
 * matches.
 */
80
EggTexture *EggTextureCollection::find_filename(Filename const &filename) const;

1948 14 EggTriangleFan 0 260 2127 30 EggTriangleFan::EggTriangleFan 0 2 950 951 22
/**
 *
 */

/**
 *
 */
144
inline explicit EggTriangleFan::EggTriangleFan(std::string const &name = "");
inline EggTriangleFan::EggTriangleFan(EggTriangleFan const &copy);

1949 10 operator = 0 4 2127 26 EggTriangleFan::operator = 0 1 952 10
/**
 *
 */
67
inline void EggTriangleFan::operator =(EggTriangleFan const &copy);

1950 14 get_class_type 0 4 2127 30 EggTriangleFan::get_class_type 0 1 953 0
55
static TypeHandle EggTriangleFan::get_class_type(void);

1951 16 EggTriangleStrip 0 260 2128 34 EggTriangleStrip::EggTriangleStrip 0 2 954 955 22
/**
 *
 */

/**
 *
 */
154
inline explicit EggTriangleStrip::EggTriangleStrip(std::string const &name = "");
inline EggTriangleStrip::EggTriangleStrip(EggTriangleStrip const &copy);

1952 10 operator = 0 4 2128 28 EggTriangleStrip::operator = 0 1 956 10
/**
 *
 */
71
inline void EggTriangleStrip::operator =(EggTriangleStrip const &copy);

1953 14 get_class_type 0 4 2128 32 EggTriangleStrip::get_class_type 0 1 957 0
57
static TypeHandle EggTriangleStrip::get_class_type(void);

1954 11 EggXfmSAnim 0 260 2129 24 EggXfmSAnim::EggXfmSAnim 0 3 958 959 960 108
/**
 *
 */

/**
 *
 */

/**
 * Converts the older-style XfmAnim table to the newer-style XfmSAnim table.
 */
227
inline explicit EggXfmSAnim::EggXfmSAnim(std::string const &name = "", CoordinateSystem cs = ::CS_default);
EggXfmSAnim::EggXfmSAnim(EggXfmAnimData const &convert_from);
inline EggXfmSAnim::EggXfmSAnim(EggXfmSAnim const &copy);

1955 10 operator = 0 4 2129 23 EggXfmSAnim::operator = 0 1 961 10
/**
 *
 */
61
inline void EggXfmSAnim::operator =(EggXfmSAnim const &copy);

1956 7 set_fps 0 4 2129 20 EggXfmSAnim::set_fps 0 1 962 10
/**
 *
 */
45
inline void EggXfmSAnim::set_fps(double fps);

1957 9 clear_fps 0 4 2129 22 EggXfmSAnim::clear_fps 0 1 963 10
/**
 *
 */
41
inline void EggXfmSAnim::clear_fps(void);

1958 7 has_fps 0 4 2129 20 EggXfmSAnim::has_fps 0 1 964 10
/**
 *
 */
45
inline bool EggXfmSAnim::has_fps(void) const;

1959 7 get_fps 0 4 2129 20 EggXfmSAnim::get_fps 0 1 965 56
/**
 * This is only valid if has_fps() returns true.
 */
47
inline double EggXfmSAnim::get_fps(void) const;

1960 9 set_order 0 4 2129 22 EggXfmSAnim::set_order 0 1 966 10
/**
 *
 */
61
inline void EggXfmSAnim::set_order(std::string const &order);

1961 11 clear_order 0 4 2129 24 EggXfmSAnim::clear_order 0 1 967 10
/**
 *
 */
43
inline void EggXfmSAnim::clear_order(void);

1962 9 has_order 0 4 2129 22 EggXfmSAnim::has_order 0 1 968 10
/**
 *
 */
47
inline bool EggXfmSAnim::has_order(void) const;

1963 9 get_order 0 4 2129 22 EggXfmSAnim::get_order 0 1 969 10
/**
 *
 */
61
inline std::string const &EggXfmSAnim::get_order(void) const;

1964 18 get_standard_order 0 4 2129 31 EggXfmSAnim::get_standard_order 0 1 970 178
/**
 * Returns the standard order of matrix component composition.  This is what
 * the order string must be set to in order to use set_value() or add_data()
 * successfully.
 */
71
static inline std::string const &EggXfmSAnim::get_standard_order(void);

1965 21 get_coordinate_system 0 4 2129 34 EggXfmSAnim::get_coordinate_system 0 1 971 292
/**
 * Returns the coordinate system this table believes it is defined within.
 * This should always match the coordinate system of the EggData structure
 * that owns it.  It is necessary to store it here because the meaning of the
 * h, p, and r columns depends on the coordinate system.
 */
71
inline CoordinateSystem EggXfmSAnim::get_coordinate_system(void) const;

1966 8 optimize 0 4 2129 21 EggXfmSAnim::optimize 0 1 972 66
/**
 * Optimizes the table by collapsing redundant sub-tables.
 */
33
void EggXfmSAnim::optimize(void);

1967 26 optimize_to_standard_order 0 4 2129 39 EggXfmSAnim::optimize_to_standard_order 0 1 973 225
/**
 * Optimizes the table by collapsing redundant sub-tables, and simultaneously
 * ensures that the order string is the standard order (which is the same as
 * that supported by compose_matrix() and decompose_matrix()).
 */
51
void EggXfmSAnim::optimize_to_standard_order(void);

1968 9 normalize 0 4 2129 22 EggXfmSAnim::normalize 0 1 974 241
/**
 * The inverse operation of optimize(), this ensures that all the sub-tables
 * have the same length by duplicating rows as necessary.  This is needed
 * before doing operations like add_data() or set_value() on an existing
 * table.
 */
34
void EggXfmSAnim::normalize(void);

1969 12 get_num_rows 0 4 2129 25 EggXfmSAnim::get_num_rows 0 1 975 259
/**
 * Returns the effective number of rows in the table.  This is actually the
 * number of rows of the smallest subtable larger than one row.  This is a
 * convenience function that treats the table of tables as if it were a single
 * table of matrices.
 */
42
int EggXfmSAnim::get_num_rows(void) const;

1970 9 get_value 0 4 2129 22 EggXfmSAnim::get_value 0 1 976 342
/**
 * Returns the value of the aggregate row of the table as a matrix.  This is a
 * convenience function that treats the table of tables as if it were a single
 * table of matrices.  It is an error to call this if any SAnimData children
 * of this node have an improper name (e.g.  not a single letter, or not one
 * of "ijkabchprxyz").
 */
59
void EggXfmSAnim::get_value(int row, LMatrix4d &mat) const;

1971 9 set_value 0 4 2129 22 EggXfmSAnim::set_value 0 1 977 387
/**
 * Replaces the indicated row of the table with the given matrix.
 *
 * This function can only be called if all the constraints of add_data(),
 * below, are met.  Call normalize() first if you are not sure.
 *
 * The return value is true if the matrix can be decomposed and stored as
 * scale, shear, rotate, and translate, or false otherwise.  The data is set
 * in either case.
 */
59
bool EggXfmSAnim::set_value(int row, LMatrix4d const &mat);

1972 10 clear_data 0 4 2129 23 EggXfmSAnim::clear_data 0 1 978 93
/**
 * Removes all data from the table.  It does this by removing all of its
 * children.
 */
42
inline void EggXfmSAnim::clear_data(void);

1973 8 add_data 0 4 2129 21 EggXfmSAnim::add_data 0 1 979 1136
/**
 * Adds a new matrix to the table, by adding a new row to each of the
 * subtables.
 *
 * This is a convenience function that treats the table of tables as if it
 * were a single table of matrices.  It is an error to call this if any
 * SAnimData children of this node have an improper name (e.g.  not a single
 * letter, or not one of "ijkabchprxyz").
 *
 * This function has the further requirement that all nine of the subtables
 * must exist and be of the same length.  Furthermore, the order string must
 * be the standard order string, which matches the system compose_matrix() and
 * decompose_matrix() functions.
 *
 * Thus, you probably cannot take an existing EggXfmSAnim object and start
 * adding matrices to the end; you must clear out the original data first.
 * (As a special exception, if no tables exist, they will be created.)  The
 * method normalize() will do this for you on an existing EggXfmSAnim.
 *
 * This function may fail silently if the matrix cannot be decomposed into
 * scale, shear, rotate, and translate.  In this case, the closest
 * approximation is added to the table, and false is returned.
 */
49
bool EggXfmSAnim::add_data(LMatrix4d const &mat);

1974 18 add_component_data 0 4 2129 31 EggXfmSAnim::add_component_data 0 2 980 981 174
/**
 * Adds a new row to the named component (one of matrix_component_letters) of
 * the table.
 */

/**
 * Adds a new row to the indicated component (0-12) of the table.
 */
153
void EggXfmSAnim::add_component_data(std::string const &component_name, double value);
void EggXfmSAnim::add_component_data(int component, double value);

1975 18 compose_with_order 0 4 2129 31 EggXfmSAnim::compose_with_order 0 1 982 172
/**
 * Composes a matrix out of the nine individual components, respecting the
 * order string.  The components will be applied in the order indicated by the
 * string.
 */
205
static void EggXfmSAnim::compose_with_order(LMatrix4d &mat, LVecBase3d const &scale, LVecBase3d const &shear, LVecBase3d const &hpr, LVecBase3d const &trans, std::string const &order, CoordinateSystem cs);

1976 14 get_class_type 0 4 2129 27 EggXfmSAnim::get_class_type 0 1 983 0
52
static TypeHandle EggXfmSAnim::get_class_type(void);

1977 12 ~EggXfmSAnim 0 516 2129 25 EggXfmSAnim::~EggXfmSAnim 0 0 0
32
EggXfmSAnim::~EggXfmSAnim(void);

1978 14 EggXfmAnimData 0 260 2130 30 EggXfmAnimData::EggXfmAnimData 0 3 984 985 986 108
/**
 *
 */

/**
 *
 */

/**
 * Converts the newer-style XfmSAnim table to the older-style XfmAnim table.
 */
245
inline explicit EggXfmAnimData::EggXfmAnimData(std::string const &name = "", CoordinateSystem cs = ::CS_default);
EggXfmAnimData::EggXfmAnimData(EggXfmSAnim const &convert_from);
inline EggXfmAnimData::EggXfmAnimData(EggXfmAnimData const &copy);

1979 10 operator = 0 4 2130 26 EggXfmAnimData::operator = 0 1 987 10
/**
 *
 */
67
inline void EggXfmAnimData::operator =(EggXfmAnimData const &copy);

1980 9 set_order 0 4 2130 25 EggXfmAnimData::set_order 0 1 988 10
/**
 *
 */
64
inline void EggXfmAnimData::set_order(std::string const &order);

1981 11 clear_order 0 4 2130 27 EggXfmAnimData::clear_order 0 1 989 10
/**
 *
 */
46
inline void EggXfmAnimData::clear_order(void);

1982 9 has_order 0 4 2130 25 EggXfmAnimData::has_order 0 1 990 10
/**
 *
 */
50
inline bool EggXfmAnimData::has_order(void) const;

1983 9 get_order 0 4 2130 25 EggXfmAnimData::get_order 0 1 991 10
/**
 *
 */
64
inline std::string const &EggXfmAnimData::get_order(void) const;

1984 18 get_standard_order 0 4 2130 34 EggXfmAnimData::get_standard_order 0 1 992 178
/**
 * Returns the standard order of matrix component composition.  This is what
 * the order string must be set to in order to use set_value() or add_data()
 * successfully.
 */
74
static inline std::string const &EggXfmAnimData::get_standard_order(void);

1985 12 set_contents 0 4 2130 28 EggXfmAnimData::set_contents 0 1 993 10
/**
 *
 */
70
inline void EggXfmAnimData::set_contents(std::string const &contents);

1986 14 clear_contents 0 4 2130 30 EggXfmAnimData::clear_contents 0 1 994 10
/**
 *
 */
49
inline void EggXfmAnimData::clear_contents(void);

1987 12 has_contents 0 4 2130 28 EggXfmAnimData::has_contents 0 1 995 10
/**
 *
 */
53
inline bool EggXfmAnimData::has_contents(void) const;

1988 12 get_contents 0 4 2130 28 EggXfmAnimData::get_contents 0 1 996 10
/**
 *
 */
67
inline std::string const &EggXfmAnimData::get_contents(void) const;

1989 21 get_coordinate_system 0 4 2130 37 EggXfmAnimData::get_coordinate_system 0 1 997 292
/**
 * Returns the coordinate system this table believes it is defined within.
 * This should always match the coordinate system of the EggData structure
 * that owns it.  It is necessary to store it here because the meaning of the
 * h, p, and r columns depends on the coordinate system.
 */
74
inline CoordinateSystem EggXfmAnimData::get_coordinate_system(void) const;

1990 12 get_num_rows 0 4 2130 28 EggXfmAnimData::get_num_rows 0 1 998 51
/**
 * Returns the number of rows in the table.
 */
52
inline int EggXfmAnimData::get_num_rows(void) const;

1991 12 get_num_cols 0 4 2130 28 EggXfmAnimData::get_num_cols 0 1 999 148
/**
 * Returns the number of columns in the table.  This is set according to the
 * "contents" string, which defines the meaning of each column.
 */
52
inline int EggXfmAnimData::get_num_cols(void) const;

1992 9 get_value 0 4 2130 25 EggXfmAnimData::get_value 0 2 1000 1001 341
/**
 * Returns the value at the indicated row.  Row must be in the range 0 <= row
 * < get_num_rows(); col must be in the range 0 <= col < get_num_cols().
 */

/**
 * Returns the value of the aggregate row of the table as a matrix.  This is a
 * convenience function that treats the 2-d table as if it were a single table
 * of matrices.
 */
127
inline double EggXfmAnimData::get_value(int row, int col) const;
void EggXfmAnimData::get_value(int row, LMatrix4d &mat) const;

1993 14 get_class_type 0 4 2130 30 EggXfmAnimData::get_class_type 0 1 1002 0
55
static TypeHandle EggXfmAnimData::get_class_type(void);

1994 15 ~EggXfmAnimData 0 516 2130 31 EggXfmAnimData::~EggXfmAnimData 0 0 0
38
EggXfmAnimData::~EggXfmAnimData(void);

1004
1 0 0 7 3 2131 0 0 10 /**
 *
 */ 0 
2 0 0 15 3 2131 0 0 10 /**
 *
 */ 1 4 copy 1 2132  
3 0 0 7 4 2131 0 0 10 /**
 *
 */ 2 4 this 3 2131  4 copy 1 2132  
4 0 0 7 5 2135 0 0 0 0 
5 0 0 7 7 2136 0 0 10 /**
 *
 */ 0 
6 0 0 15 7 2136 0 0 10 /**
 *
 */ 1 4 copy 1 2137  
7 0 0 7 8 2136 0 0 10 /**
 *
 */ 2 4 this 3 2136  4 copy 1 2137  
8 0 0 4 9 2139 0 0 766 /**
 * 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.
 */ 2 4 this 3 2136  9 user_data 1 2131  
9 0 0 7 10 2131 0 0 122 /**
 * Returns the user data pointer most recently stored on this object, or NULL
 * if nothing was previously stored.
 */ 1 4 this 3 2137  
10 0 0 7 10 2131 0 0 104 /**
 * Returns the user data pointer of the indicated type, if it exists, or NULL
 * if it does not.
 */ 2 4 this 3 2137  4 type 1 2135  
11 0 0 6 11 2052 0 0 117 /**
 * Returns true if a generic user data pointer has recently been set and not
 * yet cleared, false otherwise.
 */ 1 4 this 3 2137  
12 0 0 6 11 2052 0 0 104 /**
 * Returns true if the user data pointer of the indicated type has been set,
 * false otherwise.
 */ 2 4 this 3 2137  4 type 1 2135  
13 0 0 4 12 2139 0 0 58 /**
 * Removes *all* user data pointers from the node.
 */ 1 4 this 3 2136  
14 0 0 4 12 2139 0 0 63 /**
 * Removes the user data pointer of the indicated type.
 */ 2 4 this 3 2136  4 type 1 2135  
15 0 0 7 13 2135 0 0 0 0 
16 0 0 15 20 2142 1023 0 10 /**
 *
 */ 1 4 copy 1 2140  
17 0 0 7 20 2142 1023 0 10 /**
 *
 */ 1 4 name 5 2143  
18 0 0 7 21 2142 1023 0 10 /**
 *
 */ 2 4 this 3 2142  4 copy 1 2140  
19 0 0 4 22 2139 0 0 10 /**
 *
 */ 2 4 this 3 2140  3 out 1 2144  
20 0 0 7 23 2135 0 0 0 0 
21 0 0 7 15 2136 0 0 0 1 4 this 3 2142  
22 0 0 6 18 2146 0 0 0 1 4 this 3 2142  
23 0 0 7 26 2147 1101 0 10 /**
 *
 */ 2 4 this 3 2147  4 copy 1 2148  
24 0 0 7 27 2001 0 0 10 /**
 *
 */ 1 4 this 3 2148  
25 0 0 6 28 2007 0 0 76 /**
 * Returns the number of nodes above this node in the egg hierarchy.
 */ 1 4 this 3 2148  
26 0 0 6 29 2052 0 0 123 /**
 * Returns true if there is an <Instance> node somewhere in the egg tree at or
 * above this node, false otherwise.
 */ 1 4 this 3 2148  
27 0 0 6 30 2052 0 0 124 /**
 * Returns true if there is a <Transform> entry somewhere in the egg tree at
 * or above this node, false otherwise.
 */ 1 4 this 3 2148  
28 0 0 6 31 2052 0 0 189 /**
 * Returns true if this node's vertices are not in the global coordinate
 * space.  This will be the case if there was an <Instance> node under a
 * transform at or above this node.
 */ 1 4 this 3 2148  
29 0 0 6 80 2150 0 0 711 /**
 * Returns the coordinate frame of the vertices referenced by primitives at or
 * under this node.  This is not the same as get_node_frame().
 *
 * Generally, vertices in an egg file are stored in the global coordinate
 * space, regardless of the transforms defined at each node.  Thus,
 * get_vertex_frame() will usually return the identity transform (global
 * coordinate space).  However, primitives under an <Instance> entry reference
 * their vertices in the coordinate system under effect at the time of the
 * <Instance>.  Thus, nodes under an <Instance> entry may return this non-
 * identity matrix.
 *
 * Specifically, this may return a non-identity matrix only if
 * is_local_coord() is true.
 */ 1 4 this 3 2148  
30 0 0 6 81 2150 0 0 133 /**
 * Returns the coordinate frame of the node itself.  This is simply the net
 * product of all transformations up to the root.
 */ 1 4 this 3 2148  
31 0 0 6 82 2150 0 0 104 /**
 * Returns the inverse of the matrix returned by get_vertex_frame().  See
 * get_vertex_frame().
 */ 1 4 this 3 2148  
32 0 0 6 83 2150 0 0 100 /**
 * Returns the inverse of the matrix returned by get_node_frame().  See
 * get_node_frame().
 */ 1 4 this 3 2148  
33 0 0 6 84 2150 0 0 231 /**
 * Returns the transformation matrix suitable for converting the vertices as
 * read from the egg file into the coordinate space of the node.  This is the
 * same thing as:
 *
 * get_vertex_frame() * get_node_frame_inv()
 *
 */ 1 4 this 3 2148  
34 0 0 6 85 2150 0 0 263 /**
 * Returns the transformation matrix suitable for converting vertices in the
 * coordinate space of the node to the appropriate coordinate space for
 * storing in the egg file.  This is the same thing as:
 *
 * get_node_frame() * get_vertex_frame_inv()
 *
 */ 1 4 this 3 2148  
35 0 0 6 86 2150 0 0 120 /**
 * Returns either a NULL pointer or a unique pointer shared by nodes with the
 * same get_vertex_frame() matrix.
 */ 1 4 this 3 2148  
36 0 0 6 87 2150 0 0 118 /**
 * Returns either a NULL pointer or a unique pointer shared by nodes with the
 * same get_node_frame() matrix.
 */ 1 4 this 3 2148  
37 0 0 6 88 2150 0 0 124 /**
 * Returns either a NULL pointer or a unique pointer shared by nodes with the
 * same get_vertex_frame_inv() matrix.
 */ 1 4 this 3 2148  
38 0 0 6 89 2150 0 0 122 /**
 * Returns either a NULL pointer or a unique pointer shared by nodes with the
 * same get_node_frame_inv() matrix.
 */ 1 4 this 3 2148  
39 0 0 6 90 2150 0 0 122 /**
 * Returns either a NULL pointer or a unique pointer shared by nodes with the
 * same get_vertex_to_node() matrix.
 */ 1 4 this 3 2148  
40 0 0 6 91 2150 0 0 122 /**
 * Returns either a NULL pointer or a unique pointer shared by nodes with the
 * same get_node_to_vertex() matrix.
 */ 1 4 this 3 2148  
41 0 0 4 92 2139 0 0 90 /**
 * Applies the indicated transformation to the node and all of its
 * descendants.
 */ 2 4 this 3 2147  3 mat 1 2150  
42 0 0 4 93 2139 0 0 213 /**
 * Applies the indicated transformation only to vertices that appear in global
 * space within vertex pools at this node and below.  Joints and other
 * transforms are not affected, nor are local vertices.
 */ 2 4 this 3 2147  3 mat 1 2150  
43 0 0 4 94 2139 0 0 382 /**
 * Removes any transform and instance records from this node in the scene
 * graph and below.  If an instance node is encountered, removes the instance
 * and applies the transform to its vertices, duplicating vertices if
 * necessary.
 *
 * Since this function may result in duplicated vertices, it may be a good
 * idea to call remove_unused_vertices() after calling this.
 */ 1 4 this 3 2147  
44 0 0 4 95 2139 0 0 159 /**
 * Applies the texture matrices to the UV's of the vertices that reference
 * them, and then removes the texture matrices from the textures themselves.
 */ 1 4 this 3 2147  
45 0 0 6 96 2007 0 0 45 /**
 * Rename by stripping out the prefix
 */ 2 4 this 3 2147  12 strip_prefix 1 2153  
46 0 0 6 97 2052 0 0 229 /**
 * Returns true if this particular node represents a <Joint> entry or not.
 * This is a handy thing to know since Joints are sorted to the end of their
 * sibling list when writing an egg file.  See EggGroupNode::write().
 */ 1 4 this 3 2148  
47 0 0 6 98 2052 0 0 109 /**
 * Returns true if this node represents a table of animation transformation
 * data, false otherwise.
 */ 1 4 this 3 2148  
48 0 0 6 99 2156 0 0 266 /**
 * Walks back up the hierarchy, looking for an EggGroup or EggPrimitive or
 * some such object at this level or above this node that has an alpha_mode
 * other than AM_unspecified.  Returns a valid EggRenderMode pointer if one is
 * found, or NULL otherwise.
 */ 1 4 this 3 2147  
49 0 0 6 100 2156 0 0 272 /**
 * Walks back up the hierarchy, looking for an EggGroup or EggPrimitive or
 * some such object at this level or above this node that has a
 * depth_write_mode other than DWM_unspecified.  Returns a valid EggRenderMode
 * pointer if one is found, or NULL otherwise.
 */ 1 4 this 3 2147  
50 0 0 6 101 2156 0 0 271 /**
 * Walks back up the hierarchy, looking for an EggGroup or EggPrimitive or
 * some such object at this level or above this node that has a
 * depth_test_mode other than DTM_unspecified.  Returns a valid EggRenderMode
 * pointer if one is found, or NULL otherwise.
 */ 1 4 this 3 2147  
51 0 0 6 102 2156 0 0 270 /**
 * Walks back up the hierarchy, looking for an EggGroup or EggPrimitive or
 * some such object at this level or above this node that has a
 * visibility_mode other than VM_unspecified.  Returns a valid EggRenderMode
 * pointer if one is found, or NULL otherwise.
 */ 1 4 this 3 2147  
52 0 0 6 103 2156 0 0 251 /**
 * Walks back up the hierarchy, looking for an EggGroup or EggPrimitive or
 * some such object at this level or above this node that has a depth_offset
 * specified.  Returns a valid EggRenderMode pointer if one is found, or NULL
 * otherwise.
 */ 1 4 this 3 2147  
53 0 0 6 104 2156 0 0 249 /**
 * Walks back up the hierarchy, looking for an EggGroup or EggPrimitive or
 * some such object at this level or above this node that has a draw_order
 * specified.  Returns a valid EggRenderMode pointer if one is found, or NULL
 * otherwise.
 */ 1 4 this 3 2147  
54 0 0 6 105 2156 0 0 238 /**
 * Walks back up the hierarchy, looking for an EggGroup or EggPrimitive or
 * some such object at this level or above this node that has a bin specified.
 * Returns a valid EggRenderMode pointer if one is found, or NULL otherwise.
 */ 1 4 this 3 2147  
55 0 0 6 106 2052 0 0 321 /**
 * Walks back up the hierarchy, looking for an EggGroup at this level or above
 * that has the "indexed" scalar set.  Returns the value of the indexed scalar
 * if it is found, or false if it is not.
 *
 * In other words, returns true if the "indexed" flag is in effect for the
 * indicated node, false otherwise.
 */ 1 4 this 3 2147  
56 0 0 6 107 2052 0 0 311 /**
 * Walks back up the hierarchy, looking for an EggGroup at this level or above
 * that has the "decal" flag set.  Returns the value of the decal flag if it
 * is found, or false if it is not.
 *
 * In other words, returns true if the "decal" flag is in effect for the
 * indicated node, false otherwise.
 */ 1 4 this 3 2147  
57 0 0 4 108 2139 0 0 0 3 4 this 3 2148  3 out 1 2144  12 indent_level 1 2007  
58 0 0 6 109 2052 0 0 296 /**
 * Parses the egg syntax given in the indicate string as if it had been read
 * from the egg file within this object's definition.  Updates the object
 * accordingly.  Returns true if successful, false if there was some parse
 * error or if the object does not support this functionality.
 */ 2 4 this 3 2147  10 egg_syntax 1 2143  
59 0 0 4 110 2139 0 0 0 1 4 this 3 2148  
60 0 0 38 111 2003 0 0 0 1 4 this 3 2148  
61 0 0 7 112 2135 0 0 0 0 
62 0 0 15 35 2001 0 0 10 /**
 *
 */ 1 4 copy 1 2157  
63 0 0 7 35 2001 0 0 0 1 4 name 5 2143  
64 0 0 7 36 2001 0 0 10 /**
 *
 */ 2 4 this 3 2001  4 copy 1 2157  
65 0 0 6 37 2052 0 0 10 /**
 *
 */ 1 4 this 3 2157  
66 0 0 6 38 2159 0 0 10 /**
 *
 */ 1 4 this 3 2157  
67 0 0 4 39 2139 0 0 10 /**
 *
 */ 1 4 this 3 2001  
68 0 0 7 40 2147 1101 0 358 /**
 * Returns the first child in the group's list of children, or NULL if the
 * list of children is empty.  Can be used with get_next_child() to return the
 * complete list of children without using the iterator class; however, this
 * is non-thread-safe, and so is not recommended except for languages other
 * than C++ which cannot use the iterators.
 */ 1 4 this 3 2001  
69 0 0 7 41 2147 1101 0 506 /**
 * Returns the next child in the group's list of children since the last call
 * to get_first_child() or get_next_child(), or NULL if the last child has
 * been returned.  Can be used with get_first_child() to return the complete
 * list of children without using the iterator class; however, this is non-
 * thread-safe, and so is not recommended except for languages other than C++
 * which cannot use the iterators.
 *
 * It is an error to call this without previously calling get_first_child().
 */ 1 4 this 3 2001  
70 0 0 38 42 2003 0 0 0 1 4 this 3 2157  
71 0 0 7 47 2147 1101 0 143 /**
 * Adds the indicated child to the group and returns it.  If the child node is
 * already a child of some other node, removes it first.
 */ 2 4 this 3 2001  4 node 1 2147  
72 0 0 7 48 2147 1101 0 152 /**
 * Removes the indicated child node from the group and returns it.  If the
 * child was not already in the group, does nothing and returns NULL.
 */ 2 4 this 3 2001  4 node 1 2147  
73 0 0 4 49 2139 0 0 171 /**
 * Moves all the children from the other node to this one.  This is especially
 * useful because the group node copy assignment operator does not copy
 * children.
 */ 2 4 this 3 2001  5 other 1 2001  
74 0 0 7 50 2147 1101 0 169 /**
 * Returns the child of this node whose name is the indicated string, or NULL
 * if there is no child of this node by that name.  Does not search
 * recursively.
 */ 2 4 this 3 2157  4 name 1 2143  
75 0 0 6 51 2052 0 0 160 /**
 * Returns true if any nodes at this level and below include a reference to a
 * file via an absolute pathname, or false if all references are relative.
 */ 1 4 this 3 2157  
76 0 0 4 52 2139 0 0 207 /**
 * Walks the tree and attempts to resolve any filenames encountered.  This
 * looks up filenames along the specified search path; it does not
 * automatically search the model_path for missing files.
 */ 2 4 this 3 2001  10 searchpath 1 2161  
77 0 0 4 53 2139 0 0 190 /**
 * Similar to resolve_filenames, but each non-absolute filename encountered is
 * arbitrarily taken to be in the indicated directory, whether or not the so-
 * named filename exists.
 */ 2 4 this 3 2001  9 directory 1 2164  
78 0 0 4 54 2139 0 0 136 /**
 * Reverses the vertex ordering of all polygons defined at this node and
 * below.  Does not change the surface normals, if any.
 */ 1 4 this 3 2001  
79 0 0 4 55 2139 0 0 711 /**
 * Recomputes all the vertex normals for polygon geometry at this group node
 * and below so that they accurately reflect the vertex positions.  A shared
 * edge between two polygons (even in different groups) is considered smooth
 * if the angle between the two edges is less than threshold degrees.
 *
 * This function also removes degenerate polygons that do not have enough
 * vertices to define a normal.  It does not affect normals for other kinds of
 * primitives like Nurbs or Points.
 *
 * This function does not remove or adjust vertices in the vertex pool; it
 * only adds new vertices with the correct normals.  Thus, it is a good idea
 * to call remove_unused_vertices() after calling this.
 */ 3 4 this 3 2001  9 threshold 1 2010  2 cs 5 2094  
80 0 0 4 56 2139 0 0 672 /**
 * Recomputes all the polygon normals for polygon geometry at this group node
 * and below so that they accurately reflect the vertex positions.  Normals
 * are removed from the vertices and defined only on polygons, giving the
 * geometry a faceted appearance.
 *
 * This function also removes degenerate polygons that do not have enough
 * vertices to define a normal.  It does not affect normals for other kinds of
 * primitives like Nurbs or Points.
 *
 * This function does not remove or adjust vertices in the vertex pool; it
 * only adds new vertices with the normals removed.  Thus, it is a good idea
 * to call remove_unused_vertices() after calling this.
 */ 2 4 this 3 2001  2 cs 5 2094  
81 0 0 4 57 2139 0 0 317 /**
 * Removes all normals from primitives, and the vertices they reference, at
 * this node and below.
 *
 * This function does not remove or adjust vertices in the vertex pool; it
 * only adds new vertices with the normal removed.  Thus, it is a good idea to
 * call remove_unused_vertices() after calling this.
 */ 1 4 this 3 2001  
82 0 0 6 58 2052 0 0 767 /**
 * This function recomputes the tangent and binormal for the named texture
 * coordinate set for all vertices at this level and below.  Use the empty
 * string for the default texture coordinate set.
 *
 * It is necessary for each vertex to already have a normal (or at least a
 * polygon normal), as well as a texture coordinate in the named texture
 * coordinate set, before calling this function.  You might precede this with
 * recompute_vertex_normals() to ensure that the normals exist.
 *
 * Like recompute_vertex_normals(), this function does not remove or adjust
 * vertices in the vertex pool; it only adds new vertices with the new
 * tangents and binormals computed.  Thus, it is a good idea to call
 * remove_unused_vertices() after calling this.
 */ 2 4 this 3 2001  7 uv_name 1 2165  
83 0 0 6 58 2052 0 0 138 /**
 * This function recomputes the tangent and binormal for the named texture
 * coordinate sets.  Returns true if anything was done.
 */ 2 4 this 3 2001  5 names 1 2168  
84 0 0 6 59 2052 0 0 160 /**
 * This function recomputes the tangent and binormal for any texture
 * coordinate set that affects a normal map.  Returns true if anything was
 * done.
 */ 1 4 this 3 2001  
85 0 0 6 61 2007 0 0 428 /**
 * Replace all higher-order polygons at this point in the scene graph and
 * below with triangles.  Returns the total number of new triangles produced,
 * less degenerate polygons removed.
 *
 * If flags contains T_polygon and T_convex, both concave and convex polygons
 * will be subdivided into triangles; with only T_polygon, only concave
 * polygons will be subdivided, and convex polygons will be largely unchanged.
 */ 2 4 this 3 2001  5 flags 1 2007  
86 0 0 4 62 2139 0 0 84 /**
 * Combine triangles together into triangle strips, at this group and below.
 */ 2 4 this 3 2001  5 flags 1 2007  
87 0 0 4 63 2139 0 0 127 /**
 * Creates PointLight primitives to reference any otherwise unreferences
 * vertices discovered in this group or below.
 */ 1 4 this 3 2001  
88 0 0 6 64 2007 0 0 45 /**
 * Rename by stripping out the prefix
 */ 3 4 this 3 2001  12 strip_prefix 1 2153  7 recurse 1 2052  
89 0 0 6 65 2007 0 0 692 /**
 * Removes all vertices from VertexPools within this group or below that are
 * not referenced by at least one primitive.  Also collapses together
 * equivalent vertices, and renumbers all vertices after the operation so
 * their indices are consecutive, beginning at zero.  Returns the total number
 * of vertices removed.
 *
 * Note that this operates on the VertexPools within this group level, without
 * respect to primitives that reference these vertices (unlike other functions
 * like strip_normals()).  It is therefore most useful to call this on the
 * EggData root, rather than on a subgroup within the hierarchy, since a
 * VertexPool may appear anywhere in the hierarchy.
 */ 2 4 this 3 2001  7 recurse 1 2052  
90 0 0 6 66 2007 0 0 181 /**
 * Removes primitives at this level and below which appear to be degenerate;
 * e.g.  polygons with fewer than 3 vertices, etc.  Returns the number of
 * primitives removed.
 */ 2 4 this 3 2001  7 recurse 1 2052  
91 0 0 4 67 2139 0 0 319 /**
 * Resets the connected_shading information on all primitives at this node and
 * below, so that it may be accurately rederived by the next call to
 * get_connected_shading().
 *
 * It may be a good idea to call remove_unused_vertices() as well, to
 * establish the correct connectivity between common vertices.
 */ 1 4 this 3 2001  
92 0 0 4 68 2139 0 0 194 /**
 * Queries the connected_shading information on all primitives at this node
 * and below, to ensure that it has been completely filled in before we start
 * mucking around with vertices.
 */ 1 4 this 3 2001  
93 0 0 4 69 2139 0 0 1065 /**
 * Applies per-vertex normal and color to all vertices, if they are in fact
 * per-vertex (and different for each vertex), or moves them to the primitive
 * if they are all the same.
 *
 * After this call, either the primitive will have normals or its vertices
 * will, but not both.  Ditto for colors.
 *
 * If use_connected_shading is true, each polygon is considered in conjunction
 * with all connected polygons; otherwise, each polygon is considered
 * individually.
 *
 * If allow_per_primitive is false, S_per_face or S_overall will treated like
 * S_per_vertex: normals and colors will always be assigned to the vertices.
 * In this case, there will never be per-primitive colors or normals after
 * this call returns.  On the other hand, if allow_per_primitive is true, then
 * S_per_face means that normals and colors should be assigned to the
 * primitives, and removed from the vertices, as described above.
 *
 * This may create redundant vertices in the vertex pool, so it may be a good
 * idea to follow this up with remove_unused_vertices().
 */ 4 4 this 3 2001  21 use_connected_shading 1 2052  19 allow_per_primitive 1 2052  7 recurse 1 2052  
94 0 0 4 70 2139 0 0 424 /**
 * Sets the last vertex of the triangle (or each component) to the primitive
 * normal and/or color, if the primitive is flat-shaded.  This reflects the
 * OpenGL convention of storing flat-shaded properties on the last vertex,
 * although it is not usually a convention in Egg.
 *
 * This may create redundant vertices in the vertex pool, so it may be a good
 * idea to follow this up with remove_unused_vertices().
 */ 2 4 this 3 2001  7 recurse 1 2052  
95 0 0 4 71 2139 0 0 427 /**
 * Sets the first vertex of the triangle (or each component) to the primitive
 * normal and/or color, if the primitive is flat-shaded.  This reflects the
 * DirectX convention of storing flat-shaded properties on the first vertex,
 * although it is not usually a convention in Egg.
 *
 * This may create redundant vertices in the vertex pool, so it may be a good
 * idea to follow this up with remove_unused_vertices().
 */ 2 4 this 3 2001  7 recurse 1 2052  
96 0 0 4 72 2139 0 0 217 /**
 * Intended as a followup to apply_last_attribute(), this also sets an
 * attribute on the first vertices of the primitive, if they don't already
 * have an attribute set, just so they end up with *something*.
 */ 2 4 this 3 2001  7 recurse 1 2052  
97 0 0 6 73 2052 0 0 124 /**
 * Returns true if there are any primitives (e.g.  polygons) defined within
 * this group or below, false otherwise.
 */ 1 4 this 3 2157  
98 0 0 6 74 2052 0 0 154 /**
 * Returns true if there are any primitives (e.g.  polygons) defined within
 * this group or below, but the search does not include nested joints.
 */ 1 4 this 3 2157  
99 0 0 6 75 2052 0 0 164 /**
 * Returns true if any of the primitives (e.g.  polygons) defined within this
 * group or below have either face or vertex normals defined, false otherwise.
 */ 1 4 this 3 2157  
100 0 0 6 76 2052 0 0 60 /**
 * Returns true if the 2-d v1 is to the right of v2.
 */ 2 2 v1 1 2170  2 v2 1 2170  
101 0 0 7 77 2135 0 0 0 0 
102 0 0 7 115 2173 1112 0 10 /**
 *
 */ 2 4 this 3 2173  4 copy 1 2174  
103 0 0 4 116 2139 0 0 10 /**
 *
 */ 2 4 this 3 2173  4 type 1 2010  
104 0 0 4 117 2139 0 0 10 /**
 *
 */ 1 4 this 3 2173  
105 0 0 6 118 2052 0 0 10 /**
 *
 */ 1 4 this 3 2174  
106 0 0 6 119 2010 0 0 56 /**
 * This is only valid if has_fps() returns true.
 */ 1 4 this 3 2174  
107 0 0 4 120 2139 0 0 50 /**
 * Removes all data and empties the table.
 */ 1 4 this 3 2173  
108 0 0 4 121 2139 0 0 46 /**
 * Adds a single element to the table.
 */ 2 4 this 3 2173  5 value 1 2010  
109 0 0 6 122 2007 0 0 55 /**
 * Returns the number of elements in the table.
 */ 1 4 this 3 2174  
110 0 0 4 123 2139 0 0 79 /**
 * Rounds each element of the table to the nearest multiple of quantum.
 */ 2 4 this 3 2173  7 quantum 1 2010  
111 0 0 7 124 2135 0 0 0 0 
112 0 0 15 127 2178 1124 0 10 /**
 *
 */ 1 4 copy 1 2176  
113 0 0 7 127 2178 1124 0 10 /**
 *
 */ 1 4 name 5 2143  
114 0 0 7 128 2178 1124 0 10 /**
 *
 */ 2 4 this 3 2178  4 copy 1 2176  
115 0 0 4 129 2139 0 0 10 /**
 *
 */ 2 4 this 3 2178  3 fps 1 2010  
116 0 0 4 130 2139 0 0 10 /**
 *
 */ 1 4 this 3 2178  
117 0 0 6 131 2052 0 0 10 /**
 *
 */ 1 4 this 3 2176  
118 0 0 6 132 2010 0 0 56 /**
 * This is only valid if has_fps() returns true.
 */ 1 4 this 3 2176  
119 0 0 4 133 2139 0 0 10 /**
 *
 */ 2 4 this 3 2178  10 num_frames 1 2007  
120 0 0 4 134 2139 0 0 10 /**
 *
 */ 1 4 this 3 2178  
121 0 0 6 135 2052 0 0 10 /**
 *
 */ 1 4 this 3 2176  
122 0 0 6 136 2007 0 0 63 /**
 * This is only valid if has_num_frames() returns true.
 */ 1 4 this 3 2176  
123 0 0 7 140 2135 0 0 0 0 
124 0 0 7 146 2092 1129 0 10 /**
 *
 */ 0 
125 0 0 15 146 2092 1129 0 10 /**
 *
 */ 1 4 copy 1 2179  
126 0 0 6 147 2092 0 0 10 /**
 *
 */ 2 4 this 3 2092  4 copy 1 2179  
127 0 0 6 149 2052 0 0 10 /**
 *
 */ 1 4 this 3 2179  
128 0 0 6 150 2181 0 0 10 /**
 *
 */ 1 4 this 3 2179  
129 0 0 4 151 2139 0 0 10 /**
 *
 */ 2 4 this 3 2092  6 normal 1 2181  
130 0 0 4 152 2139 0 0 10 /**
 *
 */ 1 4 this 3 2092  
131 0 0 6 153 2052 0 0 113 /**
 * Returns true if this normal matches that of the other EggAttributes object,
 * include the morph list.
 */ 2 4 this 3 2179  5 other 1 2179  
132 0 0 4 154 2139 0 0 130 /**
 * Sets this normal to be the same as the other's, include morphs.  If the
 * other has no normal, this clears the normal.
 */ 2 4 this 3 2092  5 other 1 2179  
133 0 0 6 155 2052 0 0 10 /**
 *
 */ 1 4 this 3 2179  
134 0 0 7 156 2185 0 0 107 /**
 * Returns the color set on this particular attribute.  If there is no color
 * set, returns white.
 */ 1 4 this 3 2179  
135 0 0 4 157 2139 0 0 10 /**
 *
 */ 2 4 this 3 2092  5 Color 1 2186  
136 0 0 4 158 2139 0 0 10 /**
 *
 */ 1 4 this 3 2092  
137 0 0 6 159 2052 0 0 112 /**
 * Returns true if this color matches that of the other EggAttributes object,
 * include the morph list.
 */ 2 4 this 3 2179  5 other 1 2179  
138 0 0 4 160 2139 0 0 127 /**
 * Sets this color to be the same as the other's, include morphs.  If the
 * other has no color, this clears the color.
 */ 2 4 this 3 2092  5 other 1 2179  
139 0 0 4 161 2139 0 0 78 /**
 * Writes the attributes to the indicated output stream in Egg format.
 */ 3 4 this 3 2179  3 out 1 2144  12 indent_level 1 2007  
140 0 0 6 162 2052 0 0 149 /**
 * An ordering operator to compare two vertices for sorting order.  This
 * imposes an arbitrary ordering useful to identify unique vertices.
 */ 2 4 this 3 2179  5 other 1 2179  
141 0 0 6 163 2007 0 0 149 /**
 * An ordering operator to compare two vertices for sorting order.  This
 * imposes an arbitrary ordering useful to identify unique vertices.
 */ 2 4 this 3 2179  5 other 1 2179  
142 0 0 4 164 2139 0 0 73 /**
 * Applies the indicated transformation matrix to the attributes.
 */ 2 4 this 3 2092  3 mat 1 2150  
143 0 0 7 173 2135 0 0 0 0 
144 0 0 6 144 2187 0 0 0 1 4 this 3 2092  
145 0 0 15 175 2190 1023 0 10 /**
 *
 */ 1 4 copy 1 2188  
146 0 0 7 175 2190 1023 0 10 /**
 *
 */ 2 4 name 1 2143  3 uvw 1 2191  
147 0 0 7 175 2190 1023 0 10 /**
 *
 */ 2 4 name 1 2143  2 uv 1 2194  
148 0 0 7 176 2190 1023 0 10 /**
 *
 */ 2 4 this 3 2190  4 copy 1 2188  
149 0 0 6 177 2143 0 0 227 /**
 * Returns the actual name that should be set for a given name string.
 * Usually this is the same string that is input, but for historical reasons
 * the texture coordinate name "default" is mapped to the empty string.
 */ 1 4 name 1 2143  
150 0 0 4 178 2139 0 0 10 /**
 *
 */ 2 4 this 3 2190  4 name 1 2143  
151 0 0 6 179 2007 0 0 150 /**
 * Returns the number of components of the texture coordinate set.  This is
 * either 2 (the normal case) or 3 (for a 3-d texture coordinate).
 */ 1 4 this 3 2188  
152 0 0 6 180 2052 0 0 131 /**
 * Returns true if the texture coordinate has a third, w component, false if
 * it is just a normal 2-d texture coordinate.
 */ 1 4 this 3 2188  
153 0 0 7 181 2198 0 0 77 /**
 * Returns the texture coordinate pair, if get_num_dimensions() is 2.
 */ 1 4 this 3 2188  
154 0 0 6 182 2191 0 0 181 /**
 * Returns the texture coordinate triple, if get_num_dimensions() is 3.  This
 * is also legal to call if get_num_dimensions() is 2 (but the last dimension
 * will be zero).
 */ 1 4 this 3 2188  
155 0 0 4 183 2139 0 0 133 /**
 * Sets the texture coordinate pair.  This makes the texture coordinate a 2-d
 * texture coordinate, which is the usual case.
 */ 2 4 this 3 2190  8 texCoord 1 2194  
156 0 0 4 184 2139 0 0 110 /**
 * Sets the texture coordinate triple.  This makes the texture coordinate a
 * 3-d texture coordinate.
 */ 2 4 this 3 2190  8 texCoord 1 2191  
157 0 0 6 185 2052 0 0 10 /**
 *
 */ 1 4 this 3 2188  
158 0 0 6 186 2052 0 0 10 /**
 *
 */ 1 4 this 3 2188  
159 0 0 6 187 2181 0 0 10 /**
 *
 */ 1 4 this 3 2188  
160 0 0 7 188 2200 0 0 10 /**
 *
 */ 1 4 this 3 2188  
161 0 0 4 189 2139 0 0 10 /**
 *
 */ 2 4 this 3 2190  7 tangent 1 2181  
162 0 0 4 190 2139 0 0 158 /**
 * Sets the tangent vector, along with a fourth parameter that is multiplied
 * with the result of cross(normal, tangent) when computing the binormal.
 */ 2 4 this 3 2190  7 tangent 1 2201  
163 0 0 4 191 2139 0 0 10 /**
 *
 */ 1 4 this 3 2190  
164 0 0 6 192 2052 0 0 10 /**
 *
 */ 1 4 this 3 2188  
165 0 0 6 193 2181 0 0 10 /**
 *
 */ 1 4 this 3 2188  
166 0 0 4 194 2139 0 0 10 /**
 *
 */ 2 4 this 3 2190  8 binormal 1 2181  
167 0 0 4 195 2139 0 0 10 /**
 *
 */ 1 4 this 3 2190  
168 0 0 7 196 2190 1023 0 149 /**
 * Creates a new EggVertexUV that contains the averaged values of the two
 * given objects.  It is an error if they don't have the same name.
 */ 2 5 first 1 2188  6 second 1 2188  
169 0 0 4 197 2139 0 0 149 /**
 * Applies the indicated transformation matrix to the UV's tangent and/or
 * binormal.  This does nothing if there is no tangent or binormal.
 */ 2 4 this 3 2190  3 mat 1 2150  
170 0 0 4 198 2139 0 0 10 /**
 *
 */ 3 4 this 3 2188  3 out 1 2144  12 indent_level 1 2007  
171 0 0 6 199 2007 0 0 149 /**
 * An ordering operator to compare two vertices for sorting order.  This
 * imposes an arbitrary ordering useful to identify unique vertices.
 */ 2 4 this 3 2188  5 other 1 2188  
172 0 0 7 204 2135 0 0 0 0 
173 0 0 15 206 2205 1023 0 10 /**
 *
 */ 1 4 copy 1 2203  
174 0 0 7 206 2205 1023 0 10 /**
 *
 */ 2 4 name 1 2143  3 aux 1 2201  
175 0 0 7 207 2205 1023 0 10 /**
 *
 */ 2 4 this 3 2205  4 copy 1 2203  
176 0 0 4 208 2139 0 0 10 /**
 *
 */ 2 4 this 3 2205  4 name 1 2143  
177 0 0 6 209 2201 0 0 48 /**
 * Returns the auxiliary data quadruple.
 */ 1 4 this 3 2203  
178 0 0 4 210 2139 0 0 45 /**
 * Sets the auxiliary data quadruple.
 */ 2 4 this 3 2205  3 aux 1 2201  
179 0 0 7 211 2205 1023 0 150 /**
 * Creates a new EggVertexAux that contains the averaged values of the two
 * given objects.  It is an error if they don't have the same name.
 */ 2 5 first 1 2203  6 second 1 2203  
180 0 0 4 212 2139 0 0 10 /**
 *
 */ 3 4 this 3 2203  3 out 1 2144  12 indent_level 1 2007  
181 0 0 6 213 2007 0 0 149 /**
 * An ordering operator to compare two vertices for sorting order.  This
 * imposes an arbitrary ordering useful to identify unique vertices.
 */ 2 4 this 3 2203  5 other 1 2203  
182 0 0 7 214 2135 0 0 0 0 
183 0 0 7 220 2089 1191 0 10 /**
 *
 */ 0 
184 0 0 15 220 2089 1191 0 109 /**
 * Copies all properties of the vertex except its vertex pool, index number,
 * and group membership.
 */ 1 4 copy 1 2206  
185 0 0 7 221 2089 1191 0 109 /**
 * Copies all properties of the vertex except its vertex pool, index number,
 * and group membership.
 */ 2 4 this 3 2089  4 copy 1 2206  
186 0 0 7 223 2090 1101 0 123 /**
 * Returns the vertex pool this vertex belongs in.  This may be NULL if the
 * vertex has not been added to a pool.
 */ 1 4 this 3 2206  
187 0 0 6 224 2052 0 0 386 /**
 * 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.
 */ 1 4 this 3 2206  
188 0 0 4 225 2139 0 0 98 /**
 * Sets the vertex position.  This variant sets the vertex to a two-
 * dimensional value.
 */ 2 4 this 3 2089  3 pos 1 2208  
189 0 0 4 225 2139 0 0 100 /**
 * Sets the vertex position.  This variant sets the vertex to a three-
 * dimensional value.
 */ 2 4 this 3 2089  3 pos 1 2210  
190 0 0 4 225 2139 0 0 99 /**
 * Sets the vertex position.  This variant sets the vertex to a four-
 * dimensional value.
 */ 2 4 this 3 2089  3 pos 1 2211  
191 0 0 4 225 2139 0 0 98 /**
 * Sets the vertex position.  This variant sets the vertex to a one-
 * dimensional value.
 */ 2 4 this 3 2089  3 pos 1 2010  
192 0 0 4 226 2139 0 0 319 /**
 * 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.
 */ 2 4 this 3 2089  3 pos 1 2211  
193 0 0 6 227 2007 0 0 368 // 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). 1 4 this 3 2206  
194 0 0 6 228 2010 0 0 108 /**
 * Only valid if get_num_dimensions() returns 1. Returns the position as a
 * one-dimensional value.
 */ 1 4 this 3 2206  
195 0 0 7 229 2214 0 0 108 /**
 * Only valid if get_num_dimensions() returns 2. Returns the position as a
 * two-dimensional value.
 */ 1 4 this 3 2206  
196 0 0 7 230 2216 0 0 110 /**
 * Valid if get_num_dimensions() returns 3 or 4. Returns the position as a
 * three-dimensional value.
 */ 1 4 this 3 2206  
197 0 0 7 231 2217 0 0 309 /**
 * 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.
 */ 1 4 this 3 2206  
198 0 0 6 232 2052 0 0 272 /**
 * 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.
 */ 1 4 this 3 2206  
199 0 0 6 232 2052 0 0 132 /**
 * Returns true if the vertex has the named UV coordinate pair, and the named
 * UV coordinate pair is 2-d, false otherwise.
 */ 2 4 this 3 2206  4 name 1 2143  
200 0 0 7 233 2198 0 0 308 /**
 * 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.
 */ 1 4 this 3 2206  
201 0 0 7 233 2198 0 0 126 /**
 * Returns the named UV coordinate pair on the vertex.  It is an error to call
 * this if has_uv(name) returned false.
 */ 2 4 this 3 2206  4 name 1 2143  
202 0 0 4 234 2139 0 0 277 /**
 * 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.
 */ 2 4 this 3 2089  8 texCoord 1 2194  
203 0 0 4 234 2139 0 0 174 /**
 * 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.
 */ 3 4 this 3 2089  4 name 1 2143  8 texCoord 1 2194  
204 0 0 4 235 2139 0 0 59 /**
 * Removes all UV coordinate pairs from the vertex.
 */ 1 4 this 3 2089  
205 0 0 4 235 2139 0 0 93 /**
 * Removes the named UV coordinate pair from the vertex, along with any UV
 * morphs.
 */ 2 4 this 3 2089  4 name 1 2143  
206 0 0 6 236 2052 0 0 136 /**
 * Returns true if the vertex has the named UV coordinate triple, and the
 * named UV coordinate triple is 3-d, false otherwise.
 */ 2 4 this 3 2206  4 name 1 2143  
207 0 0 6 237 2191 0 0 129 /**
 * Returns the named UV coordinate triple on the vertex.  It is an error to
 * call this if has_uvw(name) returned false.
 */ 2 4 this 3 2206  4 name 1 2143  
208 0 0 4 238 2139 0 0 186 /**
 * 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.
 */ 3 4 this 3 2089  4 name 1 2143  8 texCoord 1 2191  
209 0 0 7 239 2188 0 0 298 /**
 * 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.
 */ 2 4 this 3 2206  4 name 1 2143  
210 0 0 7 240 2190 1023 0 204 /**
 * 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.
 */ 2 4 this 3 2089  4 name 1 2143  
211 0 0 4 241 2139 0 0 163 /**
 * Sets the indicated EggVertexUV on the vertex.  This replaces any UV
 * coordinate pair with the same name already on the vertex, including UV
 * morphs.
 */ 2 4 this 3 2089  9 vertex_uv 1 2190  
212 0 0 6 242 2052 0 0 78 /**
 * Returns true if the vertex has any auxiliary data, false otherwise.
 */ 1 4 this 3 2206  
213 0 0 6 242 2052 0 0 77 /**
 * Returns true if the vertex has the named auxiliary data quadruple.
 */ 2 4 this 3 2206  4 name 1 2143  
214 0 0 4 243 2139 0 0 54 /**
 * Removes all auxiliary data from the vertex.
 */ 1 4 this 3 2089  
215 0 0 4 243 2139 0 0 60 /**
 * Removes the named auxiliary data from the vertex.
 */ 2 4 this 3 2089  4 name 1 2143  
216 0 0 6 244 2201 0 0 133 /**
 * Returns the named auxiliary data quadruple on the vertex.  It is an error
 * to call this if has_aux(name) returned false.
 */ 2 4 this 3 2206  4 name 1 2143  
217 0 0 4 245 2139 0 0 148 /**
 * Sets the indicated auxiliary data quadruple on the vertex.  This replaces
 * any auxiliary data with the same name already on the vertex.
 */ 3 4 this 3 2089  4 name 1 2143  3 aux 1 2201  
218 0 0 7 246 2203 0 0 273 /**
 * Returns the named EggVertexAux object, which defines the auxiliary data for
 * this name.  This object might be shared between multiple vertices.  You
 * should not attempt to modify this object; instead, call modify_aux_object
 * to return a modifiable pointer.
 */ 2 4 this 3 2206  4 name 1 2143  
219 0 0 7 247 2205 1023 0 178 /**
 * Returns a modifiable pointer to the named EggVertexAux object, which
 * defines the auxiliary data for this name.  Returns NULL if there is no such
 * named UV object.
 */ 2 4 this 3 2089  4 name 1 2143  
220 0 0 4 248 2139 0 0 136 /**
 * Sets the indicated EggVertexAux on the vertex.  This replaces any auxiliary
 * data with the same name already on the vertex.
 */ 2 4 this 3 2089  10 vertex_aux 1 2205  
221 0 0 7 249 2089 1191 0 284 /**
 * Creates a new vertex that lies in between the two given vertices.  The
 * attributes for the UV sets they have in common are averaged.
 *
 * Both vertices need to be either in no pool, or in the same pool.  In the
 * latter case, the new vertex will be placed in that pool.
 */ 2 5 first 1 2206  6 second 1 2206  
222 0 0 6 250 2007 0 0 66 /**
 * Returns the index number of the vertex within its pool.
 */ 1 4 this 3 2206  
223 0 0 4 251 2139 0 0 486 /**
 * 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.
 */ 2 4 this 3 2089  14 external_index 1 2007  
224 0 0 6 252 2007 0 0 85 /**
 * Returns the number set by set_external_index().  See set_external_index().
 */ 1 4 this 3 2206  
225 0 0 4 253 2139 0 0 225 /**
 * Similar to set_external_index(), but this is a different number which may
 * be used for a different purpose by the calling code.  The egg library does
 * not assign any meaning to this number or use it in any way.
 */ 2 4 this 3 2089  15 external_index2 1 2007  
226 0 0 6 254 2007 0 0 90 /**
 * Returns the number set by set_external_index2().  See
 * set_external_index2().
 */ 1 4 this 3 2206  
227 0 0 4 255 2139 0 0 74 /**
 * Writes the vertex to the indicated output stream in Egg format.
 */ 3 4 this 3 2206  3 out 1 2144  12 indent_level 1 2007  
228 0 0 6 256 2052 0 0 149 /**
 * An ordering operator to compare two vertices for sorting order.  This
 * imposes an arbitrary ordering useful to identify unique vertices.
 */ 2 4 this 3 2206  5 other 1 2206  
229 0 0 6 257 2007 0 0 746 /**
 * 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.
 */ 2 4 this 3 2206  5 other 1 2206  
230 0 0 6 258 2007 0 0 134 /**
 * Returns the number of primitives that own this vertex whose vertices are
 * interpreted to be in a local coordinate system.
 */ 1 4 this 3 2206  
231 0 0 6 259 2007 0 0 131 /**
 * Returns the number of primitives that own this vertex whose vertices are
 * interpreted in the global coordinate system.
 */ 1 4 this 3 2206  
232 0 0 4 260 2139 0 0 69 /**
 * Applies the indicated transformation matrix to the vertex.
 */ 2 4 this 3 2089  3 mat 1 2150  
233 0 0 6 261 2052 0 0 90 /**
 * Returns true if the indicated group references this vertex, false
 * otherwise.
 */ 2 4 this 3 2206  5 group 1 2218  
234 0 0 4 262 2139 0 0 406 /**
 * 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.
 */ 2 4 this 3 2089  5 other 1 2206  
235 0 0 4 263 2139 0 0 100 /**
 * Removes all group references from the vertex, so that it is not assigned to
 * any group.
 */ 1 4 this 3 2089  
236 0 0 6 264 2007 0 0 116 /**
 * Returns the number of times the vertex appears in the indicated primitive,
 * or 0 if it does not appear.
 */ 2 4 this 3 2206  4 prim 1 2220  
237 0 0 4 265 2139 0 0 0 1 4 this 3 2206  
238 0 0 4 266 2139 0 0 0 1 4 this 3 2206  
239 0 0 4 267 2139 0 0 10 /**
 *
 */ 2 4 this 3 2206  3 out 1 2144  
240 0 0 7 272 2135 0 0 0 0 
241 0 0 7 216 2136 0 0 0 1 4 this 3 2089  
242 0 0 6 218 2092 0 0 0 1 4 this 3 2089  
243 0 0 15 274 2090 1101 0 198 /**
 * Copying a vertex pool is of questionable value, since it will copy all of
 * the vertices and assign new pointers to them all.  There will be no
 * polygons referring to the new vertices.
 */ 1 4 copy 1 2222  
244 0 0 7 274 2090 1101 0 10 /**
 *
 */ 1 4 name 1 2143  
245 0 0 6 275 2052 0 0 147 /**
 * Returns true if the indicated vertex has been defined in the vertex pool,
 * false otherwise.  This does not include forward references.
 */ 2 4 this 3 2222  5 index 1 2007  
246 0 0 6 276 2052 0 0 131 /**
 * Returns true if any vertices in the pool are undefined forward-reference
 * vertices, false if all vertices are defined.
 */ 1 4 this 3 2222  
247 0 0 6 277 2052 0 0 128 /**
 * Returns true if any vertices in the pool are fully defined vertices, false
 * if all vertices are forward references.
 */ 1 4 this 3 2222  
248 0 0 7 278 2089 1191 0 124 /**
 * Returns the vertex in the pool with the indicated index number, or NULL if
 * no vertices have that index number.
 */ 2 4 this 3 2222  5 index 1 2007  
249 0 0 7 279 2089 1191 0 124 /**
 * Returns the vertex in the pool with the indicated index number, or NULL if
 * no vertices have that index number.
 */ 2 4 this 3 2222  5 index 1 2007  
250 0 0 7 280 2089 1191 0 327 /**
 * Returns the vertex in the pool with the indicated index number.  If there
 * is not a vertex in the pool with the indicated index number, creates a
 * special forward-reference EggVertex that has no data, on the assumption
 * that the vertex pool has not yet been fully read and more data will be
 * available later.
 */ 2 4 this 3 2090  5 index 1 2007  
251 0 0 6 281 2007 0 0 140 /**
 * Returns the highest index number used by any vertex in the pool (except
 * forward references).  Returns -1 if the pool is empty.
 */ 1 4 this 3 2222  
252 0 0 4 282 2139 0 0 276 /**
 * Artificially changes the "highest index number", so that a newly created
 * vertex will begin at this number plus 1.  This can be used to default a
 * vertex pool to start counting at 1 (or any other index number), instead of
 * the default of 0.  Use with caution.
 */ 2 4 this 3 2090  13 highest_index 1 2007  
253 0 0 6 283 2007 0 0 83 /**
 * Returns the maximum number of dimensions used by any vertex in the pool.
 */ 1 4 this 3 2222  
254 0 0 6 284 2052 0 0 100 /**
 * Returns true if any vertex in the pool has a normal defined, false if none
 * of them do.
 */ 1 4 this 3 2222  
255 0 0 6 285 2052 0 0 99 /**
 * Returns true if any vertex in the pool has a color defined, false if none
 * of them do.
 */ 1 4 this 3 2222  
256 0 0 6 286 2052 0 0 152 /**
 * Returns true if any vertex in the pool has a color defined other than
 * white, false if no vertices have colors, or if all colors are white.
 */ 1 4 this 3 2222  
257 0 0 6 288 2052 0 0 96 /**
 * Returns true if any vertex in the pool has a uv defined, false if none of
 * them do.
 */ 1 4 this 3 2222  
258 0 0 6 289 2052 0 0 106 /**
 * Returns true if any vertex in the pool has auxiliary data defined, false if
 * none of them do.
 */ 1 4 this 3 2222  
259 0 0 4 290 2139 0 0 351 /**
 * Returns the list of UV names that are defined by any vertices in the pool,
 * as well as the subset of UV names that actually define 3-d texture
 * coordinates ("uvw_names").  Also returns the subset of UV/UVW names that
 * define a tangent and binormal.  It is the user's responsibility to clear
 * both vectors before calling this method.
 */ 4 4 this 3 2222  8 uv_names 1 2153  9 uvw_names 1 2153  9 tbn_names 1 2153  
260 0 0 4 291 2139 0 0 100 /**
 * Returns the list of auxiliary data names that are defined by any vertices
 * in the pool.
 */ 2 4 this 3 2222  9 aux_names 1 2153  
261 0 0 6 292 2224 0 0 54 /**
 * Returns the number of vertices in the pool.
 */ 1 4 this 3 2222  
262 0 0 7 293 2089 1191 0 809 /**
 * Adds the indicated vertex to the pool.  It is an error if the vertex is
 * already a member of this or any other pool.  The vertex must have been
 * allocated from the free store; its pointer will now be owned by the vertex
 * pool.  If the index number is supplied, tries to assign that index number;
 * it is an error if the index number is already in use.
 *
 * It is possible that a forward reference to this vertex was requested in the
 * past; if so, the data from the supplied vertex is copied onto the forward
 * reference, which becomes the actual vertex.  In this case, a different
 * pointer is saved (and returned) than the one actually passed in.  In the
 * usual case, however, the vertex pointer passed in is the one that is saved
 * in the vertex pool and returned from this method.
 */ 3 4 this 3 2090  6 vertex 1 2089  5 index 5 2007  
263 0 0 7 294 2089 1191 0 128 /**
 * Allocates and returns a new vertex from the pool.  This is one of three
 * ways to add new vertices to a vertex pool.
 */ 1 4 this 3 2090  
264 0 0 7 294 2089 1191 0 266 /**
 * Allocates and returns a new vertex from the pool.  This is one of three
 * ways to add new vertices to a vertex pool.
 *
 * This flavor of make_new_vertex() explicitly sets the vertex position as it
 * is allocated.  It does not attempt to share vertices.
 */ 2 4 this 3 2090  3 pos 1 2208  
265 0 0 7 294 2089 1191 0 266 /**
 * Allocates and returns a new vertex from the pool.  This is one of three
 * ways to add new vertices to a vertex pool.
 *
 * This flavor of make_new_vertex() explicitly sets the vertex position as it
 * is allocated.  It does not attempt to share vertices.
 */ 2 4 this 3 2090  3 pos 1 2210  
266 0 0 7 294 2089 1191 0 266 /**
 * Allocates and returns a new vertex from the pool.  This is one of three
 * ways to add new vertices to a vertex pool.
 *
 * This flavor of make_new_vertex() explicitly sets the vertex position as it
 * is allocated.  It does not attempt to share vertices.
 */ 2 4 this 3 2090  3 pos 1 2211  
267 0 0 7 294 2089 1191 0 266 /**
 * Allocates and returns a new vertex from the pool.  This is one of three
 * ways to add new vertices to a vertex pool.
 *
 * This flavor of make_new_vertex() explicitly sets the vertex position as it
 * is allocated.  It does not attempt to share vertices.
 */ 2 4 this 3 2090  3 pos 1 2010  
268 0 0 7 295 2089 1191 0 192 /**
 * Creates a new vertex in the pool that is a copy of the indicated one and
 * returns it.  If there is already a vertex in the pool like the indicated
 * one, simply returns that one.
 */ 2 4 this 3 2090  4 copy 1 2206  
269 0 0 7 296 2089 1191 0 212 /**
 * If the EggVertexPool already has a vertex matching the indicated vertex,
 * returns it; otherwise, returns NULL.  This is similar to
 * create_unique_vertex() except that a new vertex is never created.
 */ 2 4 this 3 2090  4 copy 1 2206  
270 0 0 4 297 2139 0 0 114 /**
 * Removes the vertex from the pool.  It is an error if the vertex is not
 * already a member of the pool.
 */ 2 4 this 3 2090  6 vertex 1 2089  
271 0 0 6 298 2007 0 0 292 /**
 * Removes all vertices from the pool that are not referenced by at least one
 * primitive.  Also collapses together equivalent vertices, and renumbers all
 * vertices after the operation so their indices are consecutive, beginning at
 * zero.  Returns the number of vertices removed.
 */ 1 4 this 3 2090  
272 0 0 4 299 2139 0 0 113 /**
 * Adds all of the unused vertices in this vertex pool to the indicated
 * primitive, in ascending order.
 */ 2 4 this 3 2090  4 prim 1 2225  
273 0 0 4 300 2139 0 0 419 /**
 * Applies the indicated transformation matrix to all the vertices.  However,
 * vertices that are attached to primitives that believe their vertices are in
 * a local coordinate system are transformed only by the scale and rotation
 * component.  If a vertex happens to be attached both to a local and a global
 * primitive, and the transformation includes a translation component, the
 * vertex will be split.
 */ 2 4 this 3 2090  3 mat 1 2150  
274 0 0 4 301 2139 0 0 186 /**
 * Re-orders (and re-numbers) the vertices in this vertex pool so that they
 * appear in increasing order by the optional external_index that has been
 * assigned to each vertex.
 */ 1 4 this 3 2090  
275 0 0 7 302 2135 0 0 0 0 
276 0 0 7 304 2156 1299 0 10 /**
 *
 */ 0 
277 0 0 15 304 2156 1299 0 10 /**
 *
 */ 1 4 copy 1 2226  
278 0 0 6 305 2156 0 0 10 /**
 *
 */ 2 4 this 3 2156  4 copy 1 2226  
279 0 0 4 306 2139 0 0 78 /**
 * Writes the attributes to the indicated output stream in Egg format.
 */ 3 4 this 3 2226  3 out 1 2144  12 indent_level 1 2007  
280 0 0 4 311 2139 0 0 500 /**
 * Specifies precisely how the transparency for this geometry should be
 * achieved, or if it should be used.  The default, AM_unspecified, is to use
 * transparency if the geometry has a color whose alpha value is non-1, or if
 * it has a four-channel texture applied; otherwise, AM_on forces transparency
 * on, and AM_off forces it off.  The other flavors of transparency are
 * specific ways to turn on transparency, which may or may not be supported by
 * a particular rendering backend.
 */ 2 4 this 3 2156  4 mode 1 2026  
281 0 0 6 312 2026 0 0 110 /**
 * Returns the alpha mode that was set, or AM_unspecified if nothing was set.
 * See set_alpha_mode().
 */ 1 4 this 3 2226  
282 0 0 4 313 2139 0 0 160 /**
 * Specifies whether writes should be made to the depth buffer (assuming the
 * rendering backend provides a depth buffer) when rendering this geometry.
 */ 2 4 this 3 2156  4 mode 1 2027  
283 0 0 6 314 2027 0 0 124 /**
 * Returns the depth_write mode that was set, or DWM_unspecified if nothing
 * was set.  See set_depth_write_mode().
 */ 1 4 this 3 2226  
284 0 0 4 315 2139 0 0 238 /**
 * Specifies whether this geometry should be tested against the depth buffer
 * when it is drawn (assuming the rendering backend provides a depth buffer).
 * Note that this is different, and independent from, the depth_write mode.
 */ 2 4 this 3 2156  4 mode 1 2028  
285 0 0 6 316 2028 0 0 122 /**
 * Returns the depth_test mode that was set, or DTM_unspecified if nothing was
 * set.  See set_depth_test_mode().
 */ 1 4 this 3 2226  
286 0 0 4 317 2139 0 0 252 /**
 * Specifies whether this geometry is to be considered normally visible, or
 * hidden.  If it is hidden, it is either not loaded into the scene graph at
 * all, or loaded as a "stashed" node, according to the setting of egg-
 * suppress-hidden.
 */ 2 4 this 3 2156  4 mode 1 2029  
287 0 0 6 318 2029 0 0 121 /**
 * Returns the visibility mode that was set, or VM_unspecified if nothing was
 * set.  See set_visibility_mode().
 */ 1 4 this 3 2226  
288 0 0 4 319 2139 0 0 198 /**
 * Sets the "depth-offset" flag associated with this object.  This adds or
 * subtracts an offset bias into the depth buffer.  See also DepthOffsetAttrib
 * and NodePath::set_depth_offset().
 */ 2 4 this 3 2156  4 bias 1 2007  
289 0 0 6 320 2007 0 0 105 /**
 * Returns the "depth-offset" flag as set for this particular object.  See
 * set_depth_offset().
 */ 1 4 this 3 2226  
290 0 0 6 321 2052 0 0 117 /**
 * Returns true if the depth-offset flag has been set for this particular
 * object.  See set_depth_offset().
 */ 1 4 this 3 2226  
291 0 0 4 322 2139 0 0 97 /**
 * Removes the depth-offset flag from this particular object.  See
 * set_depth_offset().
 */ 1 4 this 3 2156  
292 0 0 4 323 2139 0 0 260 /**
 * Sets the "draw-order" flag associated with this object.  This specifies a
 * particular order in which objects of this type should be drawn, within the
 * specified bin.  If a bin is not explicitly specified, "fixed" is used.  See
 * also set_bin().
 */ 2 4 this 3 2156  5 order 1 2007  
293 0 0 6 324 2007 0 0 101 /**
 * Returns the "draw-order" flag as set for this particular object.  See
 * set_draw_order().
 */ 1 4 this 3 2226  
294 0 0 6 325 2052 0 0 113 /**
 * Returns true if the draw-order flag has been set for this particular
 * object.  See set_draw_order().
 */ 1 4 this 3 2226  
295 0 0 4 326 2139 0 0 93 /**
 * Removes the draw-order flag from this particular object.  See
 * set_draw_order().
 */ 1 4 this 3 2156  
296 0 0 4 327 2139 0 0 378 /**
 * Sets the "bin" string for this particular object.  This names a particular
 * bin in which the object should be rendered.  The exact meaning of a bin is
 * implementation defined, but generally a GeomBin matching each bin name must
 * also be specifically added to the rendering engine (e.g.  the
 * CullTraverser) in use for this to work.  See also set_draw_order().
 */ 2 4 this 3 2156  3 bin 1 2143  
297 0 0 6 328 2143 0 0 103 /**
 * Returns the bin name that has been set for this particular object, if any.
 * See set_bin().
 */ 1 4 this 3 2226  
298 0 0 6 329 2052 0 0 97 /**
 * Returns true if a bin name has been set for this particular object.  See
 * set_bin().
 */ 1 4 this 3 2226  
299 0 0 4 330 2139 0 0 91 /**
 * Removes the bin name that was set for this particular object.  See
 * set_bin().
 */ 1 4 this 3 2156  
300 0 0 6 331 2052 0 0 34 // Comparison operators are handy. 2 4 this 3 2226  5 other 1 2226  
301 0 0 6 332 2052 0 0 0 2 4 this 3 2226  5 other 1 2226  
302 0 0 6 333 2052 0 0 0 2 4 this 3 2226  5 other 1 2226  
303 0 0 6 334 2026 0 0 167 /**
 * Returns the AlphaMode value associated with the given string
 * representation, or AM_unspecified if the string does not match any known
 * AlphaMode value.
 */ 1 6 string 1 2143  
304 0 0 6 335 2027 0 0 178 /**
 * Returns the DepthWriteMode value associated with the given string
 * representation, or DWM_unspecified if the string does not match any known
 * DepthWriteMode value.
 */ 1 6 string 1 2143  
305 0 0 6 336 2028 0 0 176 /**
 * Returns the DepthTestMode value associated with the given string
 * representation, or DTM_unspecified if the string does not match any known
 * DepthTestMode value.
 */ 1 6 string 1 2143  
306 0 0 6 337 2029 0 0 169 /**
 * Returns the HiddenMode value associated with the given string
 * representation, or VM_unspecified if the string does not match any known
 * HiddenMode value.
 */ 1 6 string 1 2143  
307 0 0 7 338 2135 0 0 0 0 
308 0 0 7 341 2228 1302 0 10 /**
 *
 */ 0 
309 0 0 15 341 2228 1302 0 10 /**
 *
 */ 1 4 copy 1 2229  
310 0 0 6 342 2228 0 0 10 /**
 *
 */ 2 4 this 3 2228  4 copy 1 2229  
311 0 0 4 344 2139 0 0 51 /**
 * Resets the transform to empty, identity.
 */ 1 4 this 3 2228  
312 0 0 4 345 2139 0 0 72 /**
 * Appends a 2-d translation operation to the current transform.
 */ 2 4 this 3 2228  9 translate 1 2170  
313 0 0 4 346 2139 0 0 72 /**
 * Appends a 3-d translation operation to the current transform.
 */ 2 4 this 3 2228  9 translate 1 2230  
314 0 0 4 347 2139 0 0 141 /**
 * Appends a 2-d rotation to the current transform.  The rotation angle is
 * specified in degrees counterclockwise about the origin.
 */ 2 4 this 3 2228  5 angle 1 2010  
315 0 0 4 348 2139 0 0 152 /**
 * Appends a rotation about the X axis to the current transform.  The rotation
 * angle is specified in degrees counterclockwise about the axis.
 */ 2 4 this 3 2228  5 angle 1 2010  
316 0 0 4 349 2139 0 0 152 /**
 * Appends a rotation about the Y axis to the current transform.  The rotation
 * angle is specified in degrees counterclockwise about the axis.
 */ 2 4 this 3 2228  5 angle 1 2010  
317 0 0 4 350 2139 0 0 152 /**
 * Appends a rotation about the Z axis to the current transform.  The rotation
 * angle is specified in degrees counterclockwise about the axis.
 */ 2 4 this 3 2228  5 angle 1 2010  
318 0 0 4 351 2139 0 0 160 /**
 * Appends an arbitrary 3-d rotation to the current transform, expressed as a
 * quaternion.  This is converted to axis-angle notation for the egg file.
 */ 2 4 this 3 2228  4 quat 1 2232  
319 0 0 4 351 2139 0 0 162 /**
 * Appends a 3-d rotation about an arbitrary axis to the current transform.
 * The rotation angle is specified in degrees counterclockwise about the axis.
 */ 3 4 this 3 2228  5 angle 1 2010  4 axis 1 2230  
320 0 0 4 352 2139 0 0 73 /**
 * Appends a possibly non-uniform scale to the current transform.
 */ 2 4 this 3 2228  5 scale 1 2235  
321 0 0 4 353 2139 0 0 73 /**
 * Appends a possibly non-uniform scale to the current transform.
 */ 2 4 this 3 2228  5 scale 1 2238  
322 0 0 4 354 2139 0 0 60 /**
 * Appends a uniform scale to the current transform.
 */ 2 4 this 3 2228  5 scale 1 2010  
323 0 0 4 355 2139 0 0 68 /**
 * Appends an arbitrary 3x3 matrix to the current transform.
 */ 2 4 this 3 2228  3 mat 1 2241  
324 0 0 4 356 2139 0 0 68 /**
 * Appends an arbitrary 4x4 matrix to the current transform.
 */ 2 4 this 3 2228  3 mat 1 2150  
325 0 0 6 357 2052 0 0 174 /**
 * Returns true if the transform is nonempty, false if it is empty (no
 * transform components have been added).  This is true for either a 2-d or a
 * 3-d transform.
 */ 1 4 this 3 2229  
326 0 0 6 358 2052 0 0 328 /**
 * Returns true if the transform is specified as a 2-d transform, e.g.  with a
 * 3x3 matrix, or false if it is specified as a 3-d transform (with a 4x4
 * matrix), or not specified at all.
 *
 * Normally, EggTextures have a 2-d matrix (but occasionally they use a 3-d
 * matrix), and EggGroups always have a 3-d matrix.
 */ 1 4 this 3 2229  
327 0 0 4 359 2139 0 0 139 /**
 * Sets the overall transform as a 3x3 matrix.  This completely replaces
 * whatever componentwise transform may have been defined.
 */ 2 4 this 3 2228  3 mat 1 2241  
328 0 0 6 360 2052 0 0 328 /**
 * Returns true if the transform is specified as a 3-d transform, e.g.  with a
 * 4x4 matrix, or false if it is specified as a 2-d transform (with a 2x2
 * matrix), or not specified at all.
 *
 * Normally, EggTextures have a 3-d matrix (but occasionally they use a 3-d
 * matrix), and EggGroups always have a 3-d matrix.
 */ 1 4 this 3 2229  
329 0 0 4 361 2139 0 0 139 /**
 * Sets the overall transform as a 4x4 matrix.  This completely replaces
 * whatever componentwise transform may have been defined.
 */ 2 4 this 3 2228  3 mat 1 2150  
330 0 0 7 362 2244 0 0 119 /**
 * Returns the overall transform as a 3x3 matrix.  It is an error to call this
 * if has_transform3d() is true.
 */ 1 4 this 3 2229  
331 0 0 6 363 2150 0 0 190 /**
 * Returns the overall transform as a 4x4 matrix.  It is valid to call this
 * even if has_transform2d() is true; in this case, the 3x3 transform will be
 * expanded to a 4x4 matrix.
 */ 1 4 this 3 2229  
332 0 0 6 364 2052 0 0 80 /**
 * Returns true if the described transform is identity, false otherwise.
 */ 1 4 this 3 2229  
333 0 0 6 366 2007 0 0 71 /**
 * Returns the number of components that make up the transform.
 */ 1 4 this 3 2229  
334 0 0 6 367 2031 0 0 49 /**
 * Returns the type of the nth component.
 */ 2 4 this 3 2229  1 n 1 2007  
335 0 0 6 368 2010 0 0 252 /**
 * Returns the solitary number associated with the nth component.  In the case
 * of a rotation, this is the angle in degrees to rotate; in the case of
 * uniform scale, this is the amount of the scale.  Other types do not use
 * this property.
 */ 2 4 this 3 2229  1 n 1 2007  
336 0 0 6 369 2235 0 0 239 /**
 * Returns the 2-component vector associated with the nth component.  This may
 * be the translate vector, rotate axis, or non-uniform scale.  It is an error
 * to call this if the component type does not use a 2-d vector property.
 */ 2 4 this 3 2229  1 n 1 2007  
337 0 0 6 370 2238 0 0 239 /**
 * Returns the 3-component vector associated with the nth component.  This may
 * be the translate vector, rotate axis, or non-uniform scale.  It is an error
 * to call this if the component type does not use a 3-d vector property.
 */ 2 4 this 3 2229  1 n 1 2007  
338 0 0 6 371 2241 0 0 141 /**
 * Returns the 3x3 matrix associated with the nth component.  It is an error
 * to call this if the component type is not CT_matrix3.
 */ 2 4 this 3 2229  1 n 1 2007  
339 0 0 6 372 2150 0 0 141 /**
 * Returns the 4x4 matrix associated with the nth component.  It is an error
 * to call this if the component type is not CT_matrix4.
 */ 2 4 this 3 2229  1 n 1 2007  
340 0 0 4 373 2139 0 0 70 /**
 * Writes the transform to the indicated stream in Egg format.
 */ 4 4 this 3 2229  3 out 1 2144  12 indent_level 1 2007  5 label 1 2143  
341 0 0 7 375 2246 1336 0 0 1 4 this 3 2245  
342 0 0 4 376 2139 0 0 0 3 4 this 3 2245  3 out 1 2144  12 indent_level 1 2007  
343 0 0 4 377 2139 0 0 0 2 4 this 3 2246  3 mat 1 2150  
344 0 0 7 378 2135 0 0 0 0 
345 0 0 7 381 2247 1339 0 10 /**
 *
 */ 4 9 switch_in 1 2010  10 switch_out 1 2010  6 center 1 2210  4 fade 5 2010  
346 0 0 7 382 2135 0 0 0 0 
347 0 0 15 403 2248 1348 0 10 /**
 *
 */ 1 4 copy 1 2218  
348 0 0 7 403 2248 1348 0 10 /**
 *
 */ 1 4 name 5 2143  
349 0 0 7 404 2248 1348 0 10 /**
 *
 */ 2 4 this 3 2248  4 copy 1 2218  
350 0 0 4 406 2139 0 0 100 /**
 * Writes the group and all of its children to the indicated output stream in
 * Egg format.
 */ 3 4 this 3 2218  3 out 1 2144  12 indent_level 1 2007  
351 0 0 4 407 2139 0 0 92 /**
 * Writes just the <Billboard> entry and related fields to the indicated
 * ostream.
 */ 3 4 this 3 2218  3 out 1 2144  12 indent_level 1 2007  
352 0 0 4 408 2139 0 0 90 /**
 * Writes just the <Collide> entry and related fields to the indicated
 * ostream.
 */ 3 4 this 3 2218  3 out 1 2144  12 indent_level 1 2007  
353 0 0 4 409 2139 0 0 78 /**
 * Writes the <Model> flag and related flags to the indicated ostream.
 */ 3 4 this 3 2218  3 out 1 2144  12 indent_level 1 2007  
354 0 0 4 410 2139 0 0 79 /**
 * Writes the <Switch> flag and related flags to the indicated ostream.
 */ 3 4 this 3 2218  3 out 1 2144  12 indent_level 1 2007  
355 0 0 4 411 2139 0 0 83 /**
 * Writes just the <ObjectTypes> entries, if any, to the indicated ostream.
 */ 3 4 this 3 2218  3 out 1 2144  12 indent_level 1 2007  
356 0 0 4 412 2139 0 0 56 /**
 * Writes the flags related to decaling, if any.
 */ 3 4 this 3 2218  3 out 1 2144  12 indent_level 1 2007  
357 0 0 4 413 2139 0 0 75 /**
 * Writes just the <Tag> entries, if any, to the indicated ostream.
 */ 3 4 this 3 2218  3 out 1 2144  12 indent_level 1 2007  
358 0 0 4 414 2139 0 0 114 /**
 * Writes the flags inherited from EggRenderMode and similar flags that
 * control obscure render effects.
 */ 3 4 this 3 2218  3 out 1 2144  12 indent_level 1 2007  
359 0 0 6 415 2052 0 0 229 /**
 * Returns true if this particular node represents a <Joint> entry or not.
 * This is a handy thing to know since Joints are sorted to the end of their
 * sibling list when writing an egg file.  See EggGroupNode::write().
 */ 1 4 this 3 2218  
360 0 0 6 416 2156 0 0 267 /**
 * Walks back up the hierarchy, looking for an EggGroup or EggPrimitive or
 * some such object at this level or above this group that has an alpha_mode
 * other than AM_unspecified.  Returns a valid EggRenderMode pointer if one is
 * found, or NULL otherwise.
 */ 1 4 this 3 2248  
361 0 0 6 417 2156 0 0 273 /**
 * Walks back up the hierarchy, looking for an EggGroup or EggPrimitive or
 * some such object at this level or above this group that has a
 * depth_write_mode other than DWM_unspecified.  Returns a valid EggRenderMode
 * pointer if one is found, or NULL otherwise.
 */ 1 4 this 3 2248  
362 0 0 6 418 2156 0 0 272 /**
 * Walks back up the hierarchy, looking for an EggGroup or EggPrimitive or
 * some such object at this level or above this group that has a
 * depth_test_mode other than DTM_unspecified.  Returns a valid EggRenderMode
 * pointer if one is found, or NULL otherwise.
 */ 1 4 this 3 2248  
363 0 0 6 419 2156 0 0 271 /**
 * Walks back up the hierarchy, looking for an EggGroup or EggPrimitive or
 * some such object at this level or above this group that has a
 * visibility_mode other than VM_unspecified.  Returns a valid EggRenderMode
 * pointer if one is found, or NULL otherwise.
 */ 1 4 this 3 2248  
364 0 0 6 420 2156 0 0 252 /**
 * Walks back up the hierarchy, looking for an EggGroup or EggPrimitive or
 * some such object at this level or above this group that has a depth_offset
 * specified.  Returns a valid EggRenderMode pointer if one is found, or NULL
 * otherwise.
 */ 1 4 this 3 2248  
365 0 0 6 421 2156 0 0 250 /**
 * Walks back up the hierarchy, looking for an EggGroup or EggPrimitive or
 * some such object at this level or above this group that has a draw_order
 * specified.  Returns a valid EggRenderMode pointer if one is found, or NULL
 * otherwise.
 */ 1 4 this 3 2248  
366 0 0 6 422 2156 0 0 243 /**
 * Walks back up the hierarchy, looking for an EggGroup or EggPrimitive or
 * some such object at this level or above this group that has a bin
 * specified.  Returns a valid EggRenderMode pointer if one is found, or NULL
 * otherwise.
 */ 1 4 this 3 2248  
367 0 0 6 423 2052 0 0 321 /**
 * Walks back up the hierarchy, looking for an EggGroup at this level or above
 * that has the "indexed" scalar set.  Returns the value of the indexed scalar
 * if it is found, or false if it is not.
 *
 * In other words, returns true if the "indexed" flag is in effect for the
 * indicated node, false otherwise.
 */ 1 4 this 3 2248  
368 0 0 6 424 2052 0 0 311 /**
 * Walks back up the hierarchy, looking for an EggGroup at this level or above
 * that has the "decal" flag set.  Returns the value of the decal flag if it
 * is found, or false if it is not.
 *
 * In other words, returns true if the "decal" flag is in effect for the
 * indicated node, false otherwise.
 */ 1 4 this 3 2248  
369 0 0 4 425 2139 0 0 10 /**
 *
 */ 2 4 this 3 2248  4 type 1 2039  
370 0 0 6 426 2039 0 0 10 /**
 *
 */ 1 4 this 3 2218  
371 0 0 6 427 2052 0 0 368 /**
 * Returns true if this group is an instance type node; i.e.  it begins the
 * root of a local coordinate space.  This is not related to instancing
 * (multiple copies of a node in a scene graph).
 *
 * This also includes the case of the node including a billboard flag without
 * an explicit center, which implicitly makes the node behave like an
 * instance.
 */ 1 4 this 3 2218  
372 0 0 4 428 2139 0 0 10 /**
 *
 */ 2 4 this 3 2248  4 type 1 2041  
373 0 0 6 429 2041 0 0 10 /**
 *
 */ 1 4 this 3 2218  
374 0 0 4 430 2139 0 0 694 /**
 * Sets the point around which the billboard will rotate, if this node
 * contains a billboard specification.
 *
 * If a billboard type is given but no billboard_center is specified, then the
 * group node is treated as an <Instance>, and the billboard rotates around
 * the origin.  If, however, a billboard_center is specified, then the group
 * node is *not* treated as an <Instance>, and the billboard rotates around
 * the specified point.
 *
 * The point is in the same coordinate system as the vertices of this node:
 * usually global, but possibly local if there is an <Instance> somewhere
 * above.  Specifically, this is the coordinate system defined by
 * get_vertex_frame().
 */ 2 4 this 3 2248  16 billboard_center 1 2210  
375 0 0 4 431 2139 0 0 10 /**
 *
 */ 1 4 this 3 2248  
376 0 0 6 432 2052 0 0 10 /**
 *
 */ 1 4 this 3 2218  
377 0 0 6 433 2210 0 0 10 /**
 *
 */ 1 4 this 3 2218  
378 0 0 4 434 2139 0 0 10 /**
 *
 */ 2 4 this 3 2248  4 type 1 2042  
379 0 0 6 435 2042 0 0 10 /**
 *
 */ 1 4 this 3 2218  
380 0 0 4 436 2139 0 0 10 /**
 *
 */ 2 4 this 3 2248  5 flags 1 2007  
381 0 0 6 437 2043 0 0 10 /**
 *
 */ 1 4 this 3 2218  
382 0 0 4 438 2139 0 0 10 /**
 *
 */ 2 4 this 3 2248  14 collision_name 1 2143  
383 0 0 4 439 2139 0 0 10 /**
 *
 */ 1 4 this 3 2248  
384 0 0 6 440 2052 0 0 10 /**
 *
 */ 1 4 this 3 2218  
385 0 0 6 441 2143 0 0 10 /**
 *
 */ 1 4 this 3 2218  
386 0 0 4 442 2139 0 0 10 /**
 *
 */ 2 4 this 3 2248  4 type 1 2040  
387 0 0 6 443 2040 0 0 10 /**
 *
 */ 1 4 this 3 2218  
388 0 0 6 444 2052 0 0 91 /**
 * Returns true if the specified DCS type is not DC_none and not
 * DC_unspecified.
 */ 1 4 this 3 2218  
389 0 0 4 445 2139 0 0 10 /**
 *
 */ 2 4 this 3 2248  4 type 1 2044  
390 0 0 6 446 2044 0 0 10 /**
 *
 */ 1 4 this 3 2218  
391 0 0 4 447 2139 0 0 10 /**
 *
 */ 2 4 this 3 2248  4 flag 1 2052  
392 0 0 6 448 2052 0 0 10 /**
 *
 */ 1 4 this 3 2218  
393 0 0 4 449 2139 0 0 10 /**
 *
 */ 2 4 this 3 2248  3 fps 1 2010  
394 0 0 6 450 2010 0 0 10 /**
 *
 */ 1 4 this 3 2218  
395 0 0 4 451 2139 0 0 10 /**
 *
 */ 2 4 this 3 2248  11 object_type 1 2143  
396 0 0 4 452 2139 0 0 10 /**
 *
 */ 1 4 this 3 2248  
397 0 0 6 453 2007 0 0 10 /**
 *
 */ 1 4 this 3 2218  
398 0 0 6 454 2143 0 0 10 /**
 *
 */ 2 4 this 3 2218  5 index 1 2007  
399 0 0 6 456 2052 0 0 104 /**
 * Returns true if the indicated object type has been added to the group, or
 * false otherwise.
 */ 2 4 this 3 2218  11 object_type 1 2143  
400 0 0 6 457 2052 0 0 178 /**
 * Removes the first instance of the indicated object type from the group if
 * it is present.  Returns true if the object type was found and removed,
 * false otherwise.
 */ 2 4 this 3 2248  11 object_type 1 2143  
401 0 0 4 458 2139 0 0 10 /**
 *
 */ 2 4 this 3 2248  4 flag 1 2052  
402 0 0 6 459 2052 0 0 10 /**
 *
 */ 1 4 this 3 2218  
403 0 0 4 460 2139 0 0 10 /**
 *
 */ 2 4 this 3 2248  4 flag 1 2052  
404 0 0 6 461 2052 0 0 10 /**
 *
 */ 1 4 this 3 2218  
405 0 0 4 462 2139 0 0 10 /**
 *
 */ 2 4 this 3 2248  4 flag 1 2052  
406 0 0 6 463 2052 0 0 10 /**
 *
 */ 1 4 this 3 2218  
407 0 0 4 464 2139 0 0 10 /**
 *
 */ 2 4 this 3 2248  4 flag 1 2052  
408 0 0 6 465 2052 0 0 10 /**
 *
 */ 1 4 this 3 2218  
409 0 0 4 466 2139 0 0 10 /**
 *
 */ 2 4 this 3 2248  4 flag 1 2052  
410 0 0 6 467 2052 0 0 10 /**
 *
 */ 1 4 this 3 2218  
411 0 0 4 468 2139 0 0 10 /**
 *
 */ 2 4 this 3 2248  4 flag 1 2052  
412 0 0 6 469 2052 0 0 10 /**
 *
 */ 1 4 this 3 2218  
413 0 0 4 470 2139 0 0 10 /**
 *
 */ 2 4 this 3 2248  4 flag 1 2052  
414 0 0 6 471 2052 0 0 10 /**
 *
 */ 1 4 this 3 2218  
415 0 0 4 472 2139 0 0 10 /**
 *
 */ 2 4 this 3 2248  4 flag 1 2052  
416 0 0 6 473 2052 0 0 10 /**
 *
 */ 1 4 this 3 2218  
417 0 0 4 474 2139 0 0 106 /**
 * If this flag is true, geometry at this node and below will be generated as
 * indexed geometry.
 */ 2 4 this 3 2248  4 flag 1 2052  
418 0 0 4 475 2139 0 0 10 /**
 *
 */ 1 4 this 3 2248  
419 0 0 6 476 2052 0 0 10 /**
 *
 */ 1 4 this 3 2218  
420 0 0 6 477 2052 0 0 10 /**
 *
 */ 1 4 this 3 2218  
421 0 0 4 478 2139 0 0 10 /**
 *
 */ 2 4 this 3 2248  4 mask 1 2249  
422 0 0 4 479 2139 0 0 10 /**
 *
 */ 1 4 this 3 2248  
423 0 0 6 480 2052 0 0 10 /**
 *
 */ 1 4 this 3 2218  
424 0 0 7 481 2249 0 0 10 /**
 *
 */ 1 4 this 3 2218  
425 0 0 4 482 2139 0 0 10 /**
 *
 */ 2 4 this 3 2248  4 mask 1 2249  
426 0 0 4 483 2139 0 0 10 /**
 *
 */ 1 4 this 3 2248  
427 0 0 6 484 2052 0 0 10 /**
 *
 */ 1 4 this 3 2218  
428 0 0 7 485 2249 0 0 10 /**
 *
 */ 1 4 this 3 2218  
429 0 0 4 486 2139 0 0 10 /**
 *
 */ 2 4 this 3 2248  4 mask 1 2249  
430 0 0 4 487 2139 0 0 10 /**
 *
 */ 1 4 this 3 2248  
431 0 0 6 488 2052 0 0 10 /**
 *
 */ 1 4 this 3 2218  
432 0 0 7 489 2249 0 0 10 /**
 *
 */ 1 4 this 3 2218  
433 0 0 4 490 2139 0 0 10 /**
 *
 */ 2 4 this 3 2248  10 blend_mode 1 2045  
434 0 0 6 491 2045 0 0 10 /**
 *
 */ 1 4 this 3 2218  
435 0 0 4 492 2139 0 0 10 /**
 *
 */ 2 4 this 3 2248  15 blend_operand_a 1 2046  
436 0 0 6 493 2046 0 0 10 /**
 *
 */ 1 4 this 3 2218  
437 0 0 4 494 2139 0 0 10 /**
 *
 */ 2 4 this 3 2248  15 blend_operand_b 1 2046  
438 0 0 6 495 2046 0 0 10 /**
 *
 */ 1 4 this 3 2218  
439 0 0 4 496 2139 0 0 10 /**
 *
 */ 2 4 this 3 2248  11 blend_color 1 2186  
440 0 0 4 497 2139 0 0 49 /**
 * Removes the blend color specification.
 */ 1 4 this 3 2248  
441 0 0 6 498 2052 0 0 79 /**
 * Returns true if the blend color has been specified, false otherwise.
 */ 1 4 this 3 2218  
442 0 0 6 499 2186 0 0 96 /**
 * Returns the blend color if one has been specified, or (0, 0, 0, 0) if one
 * has not.
 */ 1 4 this 3 2218  
443 0 0 4 500 2139 0 0 10 /**
 *
 */ 2 4 this 3 2248  3 lod 1 2245  
444 0 0 4 501 2139 0 0 10 /**
 *
 */ 1 4 this 3 2248  
445 0 0 6 502 2052 0 0 10 /**
 *
 */ 1 4 this 3 2218  
446 0 0 7 503 2245 0 0 10 /**
 *
 */ 1 4 this 3 2218  
447 0 0 4 504 2139 0 0 524 /**
 * Associates a user-defined value with a user-defined key which is stored on
 * the node.  This value has no meaning to Panda; but it is stored
 * indefinitely on the node until it is requested again.  This value will be
 * copied to the PandaNode that is created for this particular EggGroup if the
 * egg file is loaded as a scene.
 *
 * Each unique key stores a different string value.  There is no effective
 * limit on the number of different keys that may be stored or on the length
 * of any one key's value.
 */ 3 4 this 3 2248  3 key 1 2143  5 value 1 2143  
448 0 0 6 505 2143 0 0 182 /**
 * Retrieves the user-defined value that was previously set on this node for
 * the particular key, if any.  If no value has been previously set, returns
 * the empty string.
 */ 2 4 this 3 2218  3 key 1 2143  
449 0 0 6 506 2052 0 0 170 /**
 * Returns true if a value has been defined on this node for the particular
 * key (even if that value is the empty string), or false if no value has been
 * set.
 */ 2 4 this 3 2218  3 key 1 2143  
450 0 0 4 507 2139 0 0 158 /**
 * Removes the value defined for this key on this particular node.  After a
 * call to clear_tag(), has_tag() will return false for the indicated key.
 */ 2 4 this 3 2248  3 key 1 2143  
451 0 0 6 508 2229 0 0 315 /**
 * Returns a read-only accessor to the initial pose transform.  This is the
 * <DefaultPose> entry for a Joint, and defines only the initial transform
 * pose for the unanimated joint; it has nothing to do with the group's
 * <Transform> entry, which defines the (eventual) space of the group's
 * vertices.
 */ 1 4 this 3 2218  
452 0 0 6 509 2228 0 0 314 /**
 * Returns a writable accessor to the initial pose transform.  This is the
 * <DefaultPose> entry for a Joint, and defines only the initial transform
 * pose for the unanimated joint; it has nothing to do with the group's
 * <Transform> entry, which defines the (eventual) space of the group's
 * vertices.
 */ 1 4 this 3 2248  
453 0 0 4 510 2139 0 0 289 /**
 * Replaces the initial pose transform.  This is the <DefaultPose> entry for a
 * Joint, and defines only the initial transform pose for the unanimated
 * joint; it has nothing to do with the group's <Transform> entry, which
 * defines the (eventual) space of the group's vertices.
 */ 2 4 this 3 2248  9 transform 1 2229  
454 0 0 4 511 2139 0 0 71 /**
 * Removes the initial pose transform.  See set_default_pose().
 */ 1 4 this 3 2248  
455 0 0 4 512 2139 0 0 0 2 4 this 3 2248  7 u_speed 1 2250  
456 0 0 4 513 2139 0 0 0 2 4 this 3 2248  7 v_speed 1 2250  
457 0 0 4 514 2139 0 0 0 2 4 this 3 2248  7 w_speed 1 2250  
458 0 0 4 515 2139 0 0 0 2 4 this 3 2248  7 r_speed 1 2250  
459 0 0 6 516 2010 0 0 0 1 4 this 3 2218  
460 0 0 6 517 2010 0 0 0 1 4 this 3 2218  
461 0 0 6 518 2010 0 0 0 1 4 this 3 2218  
462 0 0 6 519 2010 0 0 0 1 4 this 3 2218  
463 0 0 6 520 2052 0 0 0 1 4 this 3 2248  
464 0 0 4 568 2139 0 0 213 /**
 * Adds the vertex to the set of those referenced by the group, at the
 * indicated membership level.  If the vertex is already being referenced,
 * increases the membership amount by the indicated amount.
 */ 3 4 this 3 2248  4 vert 1 2089  10 membership 5 2010  
465 0 0 4 569 2139 0 0 130 /**
 * Removes the vertex from the set of those referenced by the group.  Does
 * nothing if the vertex is not already reffed.
 */ 2 4 this 3 2248  4 vert 1 2089  
466 0 0 4 570 2139 0 0 56 /**
 * Removes all vertices from the reference list.
 */ 1 4 this 3 2248  
467 0 0 6 571 2010 0 0 139 /**
 * Returns the amount of membership of the indicated vertex in this group.  If
 * the vertex is not reffed by the group, returns 0.
 */ 2 4 this 3 2218  4 vert 1 2206  
468 0 0 4 572 2139 0 0 106 /**
 * Explicitly sets the net membership of the indicated vertex in this group to
 * the given value.
 */ 3 4 this 3 2248  4 vert 1 2089  10 membership 1 2010  
469 0 0 4 573 2139 0 0 195 /**
 * Moves all of the vertex references from the indicated other group into this
 * one.  If a given vertex was previously shared by both groups, the relative
 * memberships will be summed.
 */ 2 4 this 3 2248  5 other 1 2248  
470 0 0 4 574 2139 0 0 0 1 4 this 3 2218  
471 0 0 4 575 2139 0 0 207 /**
 * Adds a new <Ref> entry to the group.  This declares an internal reference
 * to another node, and is used to implement scene-graph instancing; it is
 * only valid if the group_type is GT_instance.
 */ 2 4 this 3 2248  5 group 1 2248  
472 0 0 6 576 2007 0 0 90 /**
 * Returns the number of <Ref> entries within this group.  See
 * add_group_ref().
 */ 1 4 this 3 2218  
473 0 0 7 577 2248 1348 0 79 /**
 * Returns the nth <Ref> entry within this group.  See add_group_ref().
 */ 2 4 this 3 2218  1 n 1 2007  
474 0 0 4 579 2139 0 0 79 /**
 * Removes the nth <Ref> entry within this group.  See add_group_ref().
 */ 2 4 this 3 2248  1 n 1 2007  
475 0 0 4 580 2139 0 0 84 /**
 * Removes all of the <Ref> entries within this group.  See add_group_ref().
 */ 1 4 this 3 2248  
476 0 0 6 581 2039 0 0 163 /**
 * Returns the GroupType value associated with the given string
 * representation, or GT_invalid if the string does not match any known
 * GroupType value.
 */ 1 6 strval 1 2143  
477 0 0 6 582 2044 0 0 155 /**
 * Returns the DartType value associated with the given string representation,
 * or DT_none if the string does not match any known DartType value.
 */ 1 6 strval 1 2143  
478 0 0 6 583 2040 0 0 160 /**
 * Returns the DCSType value associated with the given string representation,
 * or DC_unspecified if the string does not match any known DCSType value.
 */ 1 6 strval 1 2143  
479 0 0 6 584 2041 0 0 168 /**
 * Returns the BillboardType value associated with the given string
 * representation, or BT_none if the string does not match any known
 * BillboardType value.
 */ 1 6 strval 1 2143  
480 0 0 6 585 2042 0 0 179 /**
 * Returns the CollisionSolidType value associated with the given string
 * representation, or CST_none if the string does not match any known
 * CollisionSolidType value.
 */ 1 6 strval 1 2143  
481 0 0 6 586 2043 0 0 260 /**
 * Returns the CollideFlags value associated with the given string
 * representation, or CF_none if the string does not match any known
 * CollideFlags value.  This only recognizes a single keyword; it does not
 * attempt to parse a string of keywords.
 */ 1 6 strval 1 2143  
482 0 0 6 587 2045 0 0 154 /**
 * Returns the BlendMode value associated with the given string
 * representation, or BM_none if the string does not match any known
 * BlendMode.
 */ 1 6 strval 1 2143  
483 0 0 6 588 2046 0 0 160 /**
 * Returns the BlendOperand value associated with the given string
 * representation, or BO_none if the string does not match any known
 * BlendOperand.
 */ 1 6 strval 1 2143  
484 0 0 7 589 2135 0 0 0 0 
485 0 0 7 385 2001 0 0 0 1 4 this 3 2248  
486 0 0 6 387 2156 0 0 0 1 4 this 3 2248  
487 0 0 6 389 2228 0 0 0 1 4 this 3 2248  
488 0 0 15 591 2253 1488 0 10 /**
 *
 */ 1 4 copy 1 2251  
489 0 0 23 591 2253 1488 0 10 /**
 *
 */ 1 4 copy 1 2218  
490 0 0 7 591 2253 1488 0 10 /**
 *
 */ 1 4 name 5 2143  
491 0 0 4 592 2139 0 0 10 /**
 *
 */ 2 4 this 3 2253  10 bin_number 1 2007  
492 0 0 6 593 2007 0 0 10 /**
 *
 */ 1 4 this 3 2251  
493 0 0 7 594 2135 0 0 0 0 
494 0 0 6 597 2007 0 0 208 /**
 * The main entry point to EggBinMaker.  Walks the egg scene graph beginning
 * at the indicated root node, and moves all binnable nodes into EggBin
 * objects.  Returns the number of EggBins created.
 */ 2 4 this 3 2254  10 root_group 1 2001  
495 0 0 4 598 2139 0 0 171 /**
 * May be overridden in derived classes to perform some setup work as each
 * node is encountered.  This will be called once for each node in the egg
 * hierarchy.
 */ 2 4 this 3 2254  4 node 1 2147  
496 0 0 6 599 2007 0 0 0 2 4 this 3 2254  4 node 1 2148  
497 0 0 6 600 2052 0 0 361 /**
 * May be overridden in derived classes to create additional bins within a
 * particular bin number, based on some arbitrary property of nodes.  This
 * function establishes an arbitrary but fixed ordering between nodes; if two
 * nodes do not sort to the same position, different bins are created for each
 * one (with the same bin number on each bin).
 */ 4 4 this 3 2254  10 bin_number 1 2007  1 a 1 2148  1 b 1 2148  
498 0 0 6 601 2052 0 0 145 /**
 * May be overridden in derived classes to specify whether a particular group
 * node, apparently redundant, may be safely collapsed out.
 */ 3 4 this 3 2254  5 group 1 2218  10 bin_number 1 2007  
499 0 0 6 602 2143 0 0 130 /**
 * May be overridden in derived classes to define a name for each new bin,
 * based on its bin number, and a sample child.
 */ 3 4 this 3 2254  10 bin_number 1 2007  5 child 1 2148  
500 0 0 7 603 2253 1488 0 352 /**
 * May be overridden in derived classes to construct a new EggBin object (or
 * some derived class, if needed), and preload some initial data into as
 * required.
 *
 * child is an arbitrary child of the bin, and collapse_from is the group the
 * bin is being collapsed with, if any (implying collapse_group() returned
 * true), or NULL if not.
 */ 4 4 this 3 2254  10 bin_number 1 2007  5 child 1 2148  13 collapse_from 1 2248  
501 0 0 7 604 2135 0 0 0 0 
502 0 0 15 606 2257 1504 0 10 /**
 *
 */ 1 4 copy 1 2255  
503 0 0 7 606 2257 1504 0 10 /**
 *
 */ 2 9 node_name 1 2143  7 comment 1 2143  
504 0 0 7 607 2257 1504 0 10 /**
 *
 */ 2 4 this 3 2257  4 copy 1 2255  
505 0 0 7 607 2257 1504 0 10 /**
 *
 */ 2 4 this 3 2257  7 comment 1 2143  
506 0 0 4 609 2139 0 0 10 /**
 *
 */ 2 4 this 3 2257  7 comment 1 2143  
507 0 0 6 610 2143 0 0 10 /**
 *
 */ 1 4 this 3 2255  
508 0 0 38 611 2003 0 0 0 1 4 this 3 2255  
509 0 0 7 612 2135 0 0 0 0 
510 0 0 6 608 2143 0 0 0 1 4 this 3 2255  
511 0 0 7 615 2258 1512 0 10 /**
 *
 */ 2 4 this 3 2258  4 copy 1 2259  
512 0 0 6 616 2143 0 0 64 /**
 * Returns the default extension for this filename type.
 */ 1 4 this 3 2259  
513 0 0 6 617 2164 0 0 61 /**
 * Returns a nonmodifiable reference to the filename.
 */ 1 4 this 3 2259  
514 0 0 4 618 2139 0 0 10 /**
 *
 */ 2 4 this 3 2258  8 filename 1 2164  
515 0 0 6 619 2164 0 0 472 /**
 * Returns the full pathname to the file, if it is known; otherwise, returns
 * the same thing as get_filename().
 *
 * This function simply returns whatever was set by the last call to
 * set_fullpath().  This string is not written to the egg file; its main
 * purpose is to record the full path to a filename (for instance, a texture
 * filename) if it is known, for egg structures that are generated in-memory
 * and then immediately converted to a scene graph.
 */ 1 4 this 3 2259  
516 0 0 4 620 2139 0 0 84 /**
 * Records the full pathname to the file, for the benefit of get_fullpath().
 */ 2 4 this 3 2258  8 fullpath 1 2164  
517 0 0 7 621 2135 0 0 0 0 
518 0 0 15 630 2087 1521 0 10 /**
 *
 */ 1 4 copy 1 2261  
519 0 0 7 630 2087 1521 0 10 /**
 *
 */ 2 9 tref_name 1 2143  8 filename 1 2164  
520 0 0 7 631 2087 1521 0 10 /**
 *
 */ 2 4 this 3 2087  4 copy 1 2261  
521 0 0 4 633 2139 0 0 86 /**
 * Writes the texture definition to the indicated output stream in Egg format.
 */ 3 4 this 3 2261  3 out 1 2144  12 indent_level 1 2007  
522 0 0 6 635 2052 0 0 899 /**
 * Returns true if the two textures are equivalent in all relevant properties
 * (according to eq), false otherwise.
 *
 * The Equivalence parameter, eq, should be set to the bitwise OR of the
 * following properties, according to what you consider relevant:
 *
 * EggTexture::E_basename: The basename part of the texture filename, without
 * the directory prefix *or* the filename extension.
 *
 * EggTexture::E_extension: The extension part of the texture filename.
 *
 * EggTexture::E_dirname: The directory prefix of the texture filename.
 *
 * EggTexture::E_complete_filename: The union of the above three; that is, the
 * complete filename, with directory, basename, and extension.
 *
 * EggTexture::E_transform: The texture matrix.
 *
 * EggTexture::E_attributes: All remaining texture attributes (mode, mipmap,
 * etc.) except TRef name.
 *
 * EggTexture::E_tref_name: The TRef name.
 */ 3 4 this 3 2261  5 other 1 2261  2 eq 1 2007  
523 0 0 6 636 2052 0 0 224 /**
 * An ordering operator to compare two textures for sorting order.  This
 * imposes an arbitrary ordering useful to identify unique textures, according
 * to the indicated Equivalence factor.  See is_equivalent_to().
 */ 3 4 this 3 2261  5 other 1 2261  2 eq 1 2007  
524 0 0 6 637 2052 0 0 260 /**
 * Given the number of color components (channels) in the image file as
 * actually read from the disk, return true if this texture seems to have an
 * alpha channel or not.  This depends on the EggTexture's format as well as
 * the number of channels.
 */ 2 4 this 3 2261  14 num_components 1 2007  
525 0 0 4 651 2139 0 0 10 /**
 *
 */ 2 4 this 3 2087  12 texture_type 1 2068  
526 0 0 6 652 2068 0 0 10 /**
 *
 */ 1 4 this 3 2261  
527 0 0 4 653 2139 0 0 10 /**
 *
 */ 2 4 this 3 2087  6 format 1 2069  
528 0 0 6 654 2069 0 0 10 /**
 *
 */ 1 4 this 3 2261  
529 0 0 4 655 2139 0 0 10 /**
 *
 */ 2 4 this 3 2087  4 mode 1 2070  
530 0 0 6 656 2070 0 0 10 /**
 *
 */ 1 4 this 3 2261  
531 0 0 4 657 2139 0 0 10 /**
 *
 */ 2 4 this 3 2087  4 mode 1 2071  
532 0 0 6 658 2071 0 0 10 /**
 *
 */ 1 4 this 3 2261  
533 0 0 4 659 2139 0 0 10 /**
 *
 */ 2 4 this 3 2087  4 mode 1 2071  
534 0 0 6 660 2071 0 0 120 /**
 * Returns the amount specified for U wrap.  This may be unspecified, even if
 * there is an overall wrap value.
 */ 1 4 this 3 2261  
535 0 0 6 661 2071 0 0 178 /**
 * Determines the appropriate wrap in the U direction.  This is different from
 * get_wrap_u() in that if the U wrap is unspecified, it returns the overall
 * wrap value.
 */ 1 4 this 3 2261  
536 0 0 4 662 2139 0 0 10 /**
 *
 */ 2 4 this 3 2087  4 mode 1 2071  
537 0 0 6 663 2071 0 0 120 /**
 * Returns the amount specified for V wrap.  This may be unspecified, even if
 * there is an overall wrap value.
 */ 1 4 this 3 2261  
538 0 0 6 664 2071 0 0 178 /**
 * Determines the appropriate wrap in the V direction.  This is different from
 * get_wrap_v() in that if the V wrap is unspecified, it returns the overall
 * wrap value.
 */ 1 4 this 3 2261  
539 0 0 4 665 2139 0 0 10 /**
 *
 */ 2 4 this 3 2087  4 mode 1 2071  
540 0 0 6 666 2071 0 0 120 /**
 * Returns the amount specified for W wrap.  This may be unspecified, even if
 * there is an overall wrap value.
 */ 1 4 this 3 2261  
541 0 0 6 667 2071 0 0 178 /**
 * Determines the appropriate wrap in the W direction.  This is different from
 * get_wrap_w() in that if the W wrap is unspecified, it returns the overall
 * wrap value.
 */ 1 4 this 3 2261  
542 0 0 4 668 2139 0 0 10 /**
 *
 */ 2 4 this 3 2087  4 type 1 2072  
543 0 0 6 669 2072 0 0 10 /**
 *
 */ 1 4 this 3 2261  
544 0 0 4 670 2139 0 0 10 /**
 *
 */ 2 4 this 3 2087  4 type 1 2072  
545 0 0 6 671 2072 0 0 10 /**
 *
 */ 1 4 this 3 2261  
546 0 0 4 672 2139 0 0 127 /**
 * Sets the degree of anisotropic filtering for this texture.  1 is off;
 * higher levels indicate filtering in effect.
 */ 2 4 this 3 2087  18 anisotropic_degree 1 2007  
547 0 0 4 673 2139 0 0 79 /**
 * Removes the specification of anisotropic filtering from the texture.
 */ 1 4 this 3 2087  
548 0 0 6 674 2052 0 0 128 /**
 * Returns true if a value for the anisotropic filtering degree has been
 * specified for this texture, false otherwise.
 */ 1 4 this 3 2261  
549 0 0 6 675 2007 0 0 132 /**
 * Returns the anisotropic filtering degree that has been specified for this
 * texture, or 0 if nothing has been specified.
 */ 1 4 this 3 2261  
550 0 0 4 676 2139 0 0 10 /**
 *
 */ 2 4 this 3 2087  4 type 1 2073  
551 0 0 6 677 2073 0 0 10 /**
 *
 */ 1 4 this 3 2261  
552 0 0 6 678 2052 0 0 162 /**
 * Returns true if this texture's environment type or combine mode allows the
 * texture to have an effect on the polygon's alpha values, false otherwise.
 */ 1 4 this 3 2261  
553 0 0 4 679 2139 0 0 10 /**
 *
 */ 3 4 this 3 2087  7 channel 1 2075  2 cm 1 2074  
554 0 0 6 680 2074 0 0 10 /**
 *
 */ 2 4 this 3 2261  7 channel 1 2075  
555 0 0 4 681 2139 0 0 10 /**
 *
 */ 4 4 this 3 2087  7 channel 1 2075  1 n 1 2007  2 cs 1 2077  
556 0 0 6 682 2077 0 0 10 /**
 *
 */ 3 4 this 3 2261  7 channel 1 2075  1 n 1 2007  
557 0 0 4 683 2139 0 0 10 /**
 *
 */ 4 4 this 3 2087  7 channel 1 2075  1 n 1 2007  2 co 1 2078  
558 0 0 6 684 2078 0 0 10 /**
 *
 */ 3 4 this 3 2261  7 channel 1 2075  1 n 1 2007  
559 0 0 4 685 2139 0 0 614 /**
 * Sets the saved_result flag.  When this is true, the output of this stage is
 * not part of the normal pipeline--that is, it will not be supplied as the
 * "previous" source for the next texture stage--but it will instead be
 * supplied as the "last_saved_result" source for any future stages, until the
 * next TextureStage with a saved_result set true is encountered.
 *
 * This can be used to reuse the results of this texture stage as input to
 * more than one stage later in the pipeline.
 *
 * The last texture in the pipeline (the one with the highest sort value)
 * should not have this flag set.
 */ 2 4 this 3 2087  12 saved_result 1 2052  
560 0 0 6 686 2052 0 0 92 /**
 * Returns the current setting of the saved_result flag.  See
 * set_saved_result().
 */ 1 4 this 3 2261  
561 0 0 4 687 2139 0 0 10 /**
 *
 */ 2 4 this 3 2087  7 tex_gen 1 2079  
562 0 0 6 688 2079 0 0 10 /**
 *
 */ 1 4 this 3 2261  
563 0 0 4 689 2139 0 0 10 /**
 *
 */ 2 4 this 3 2087  13 quality_level 1 2080  
564 0 0 6 690 2080 0 0 10 /**
 *
 */ 1 4 this 3 2261  
565 0 0 4 691 2139 0 0 442 /**
 * Specifies the particular TextureStage this texture will be rendered on by
 * name.  If this is omitted, the texture will be rendered on the default
 * TextureStage, unless some other stage-specific property is specificied, in
 * which case the texture will be rendered on a TextureStage with the same
 * name as the tref.  This is in support of multitexturing.
 *
 * Each different TextureStage in the world must be uniquely named.
 */ 2 4 this 3 2087  10 stage_name 1 2143  
566 0 0 4 692 2139 0 0 56 /**
 * Removes the named TextureStage specification.
 */ 1 4 this 3 2087  
567 0 0 6 693 2052 0 0 107 /**
 * Returns true if a stage name has been explicitly specified for this
 * texture, false otherwise.
 */ 1 4 this 3 2261  
568 0 0 6 694 2143 0 0 146 /**
 * Returns the stage name that has been specified for this texture, or the
 * tref name if no texture stage has explicitly been specified.
 */ 1 4 this 3 2261  
569 0 0 4 695 2139 0 0 178 /**
 * Sets the importance of this texture with respect to other textures also
 * applied on the same geometry.  This is only meaningful in the presence of
 * multitexturing.
 */ 2 4 this 3 2087  8 priority 1 2007  
570 0 0 4 696 2139 0 0 116 /**
 * Removes the specification of multitexture priority from the texture.  The
 * default priority value is 0.
 */ 1 4 this 3 2087  
571 0 0 6 697 2052 0 0 127 /**
 * Returns true if a priority value for multitexture importance has been
 * specified for the texture, false otherwise.
 */ 1 4 this 3 2261  
572 0 0 6 698 2007 0 0 142 /**
 * Returns the multitexture importance value that has been specified for the
 * texture, or 0 if no priority value has been specified.
 */ 1 4 this 3 2261  
573 0 0 4 699 2139 0 0 10 /**
 *
 */ 2 4 this 3 2087  5 color 1 2186  
574 0 0 4 700 2139 0 0 10 /**
 *
 */ 1 4 this 3 2087  
575 0 0 6 701 2052 0 0 76 /**
 * Returns true if a blend color has been specified for the texture.
 */ 1 4 this 3 2261  
576 0 0 6 702 2186 0 0 91 /**
 * Returns the blend color if one has been specified, or (0, 0, 0, 1)
 * otherwise.
 */ 1 4 this 3 2261  
577 0 0 4 703 2139 0 0 10 /**
 *
 */ 2 4 this 3 2087  12 border_color 1 2186  
578 0 0 4 704 2139 0 0 10 /**
 *
 */ 1 4 this 3 2087  
579 0 0 6 705 2052 0 0 77 /**
 * Returns true if a border color has been specified for the texture.
 */ 1 4 this 3 2261  
580 0 0 6 706 2186 0 0 92 /**
 * Returns the border color if one has been specified, or (0, 0, 0, 1)
 * otherwise.
 */ 1 4 this 3 2261  
581 0 0 4 707 2139 0 0 309 /**
 * Specifies the named set of texture coordinates that this texture will use
 * when it is applied to geometry.  Geometry may have multiple sets of texture
 * coordinates defined, by name.
 *
 * If this is not specified for a particular texture, the default set of
 * texture coordinates will be used.
 */ 2 4 this 3 2087  7 uv_name 1 2143  
582 0 0 4 708 2139 0 0 153 /**
 * Removes the restriction to a particular named set of texture coordinates
 * and restores the texture to using the default texture coordinates.
 */ 1 4 this 3 2087  
583 0 0 6 709 2052 0 0 110 /**
 * Returns true if a texcoord name has been explicitly specified for this
 * texture, false otherwise.
 */ 1 4 this 3 2261  
584 0 0 6 710 2143 0 0 152 /**
 * Returns the texcoord name that has been specified for this texture, or the
 * empty string if no texcoord name has explicitly been specified.
 */ 1 4 this 3 2261  
585 0 0 4 711 2139 0 0 220 /**
 * Sets an additional factor that will scale all three r, g, b components
 * after the texture has been applied.  This is used only when a combine mode
 * is in effect.
 *
 * The only legal values are 1, 2, or 4.
 */ 2 4 this 3 2087  9 rgb_scale 1 2007  
586 0 0 4 712 2139 0 0 95 /**
 * Removes the rgb_scale from the texture and restores it to the default value
 * of 1.
 */ 1 4 this 3 2087  
587 0 0 6 713 2052 0 0 95 /**
 * Returns true if an rgb_scale has been specified for the texture, false
 * otherwise.
 */ 1 4 this 3 2261  
588 0 0 6 714 2007 0 0 129 /**
 * Returns the rgb_scale value that has been specified for the texture, or 1
 * if no rgb_scale value has been specified.
 */ 1 4 this 3 2261  
589 0 0 4 715 2139 0 0 211 /**
 * Sets an additional factor that will scale the alpha component after the
 * texture has been applied.  This is used only when a combine mode is in
 * effect.
 *
 * The only legal values are 1, 2, or 4.
 */ 2 4 this 3 2087  11 alpha_scale 1 2007  
590 0 0 4 716 2139 0 0 97 /**
 * Removes the alpha_scale from the texture and restores it to the default
 * value of 1.
 */ 1 4 this 3 2087  
591 0 0 6 717 2052 0 0 97 /**
 * Returns true if an alpha_scale has been specified for the texture, false
 * otherwise.
 */ 1 4 this 3 2261  
592 0 0 6 718 2007 0 0 133 /**
 * Returns the alpha_scale value that has been specified for the texture, or 1
 * if no alpha_scale value has been specified.
 */ 1 4 this 3 2261  
593 0 0 4 719 2139 0 0 235 /**
 * Specifies a separate file that will be loaded in with the 1- or 3-component
 * texture and applied as the alpha channel.  This is useful when loading
 * textures from file formats that do not support alpha, for instance jpg.
 */ 2 4 this 3 2087  8 filename 1 2164  
594 0 0 4 720 2139 0 0 10 /**
 *
 */ 1 4 this 3 2087  
595 0 0 6 721 2052 0 0 131 /**
 * Returns true if a separate file for the alpha component has been applied,
 * false otherwise.  See set_alpha_filename().
 */ 1 4 this 3 2261  
596 0 0 6 722 2164 0 0 172 /**
 * Returns the separate file assigned for the alpha channel.  It is an error
 * to call this unless has_alpha_filename() returns true.  See
 * set_alpha_filename().
 */ 1 4 this 3 2261  
597 0 0 4 723 2139 0 0 93 /**
 * Records the full pathname to the file, for the benefit of
 * get_alpha_fullpath().
 */ 2 4 this 3 2087  8 fullpath 1 2164  
598 0 0 6 724 2164 0 0 463 /**
 * Returns the full pathname to the alpha file, if it is known; otherwise,
 * returns the same thing as get_alpha_filename().
 *
 * This function simply returns whatever was set by the last call to
 * set_alpha_fullpath().  This string is not written to the egg file; its main
 * purpose is to record the full path to the alpha filename if it is known,
 * for egg structures that are generated in-memory and then immediately
 * converted to a scene graph.
 */ 1 4 this 3 2261  
599 0 0 4 725 2139 0 0 416 /**
 * If a separate alpha-file is specified, this indicates which channel number
 * should be extracted from this file to derive the alpha channel for the
 * final image.  The default is 0, which means the grayscale combination of r,
 * g, b.  Otherwise, this should be the 1-based channel number, for instance
 * 1, 2, or 3 for r, g, or b, respectively, or 4 for the alpha channel of a
 * four-component image.
 */ 2 4 this 3 2087  18 alpha_file_channel 1 2007  
600 0 0 4 726 2139 0 0 98 /**
 * Removes the specification of a particular channel to use from the alpha-
 * file image.
 */ 1 4 this 3 2087  
601 0 0 6 727 2052 0 0 112 /**
 * Returns true if a particular channel has been specified for the alpha-file
 * image, false otherwise.
 */ 1 4 this 3 2261  
602 0 0 6 728 2007 0 0 167 /**
 * Returns the particular channel that has been specified for the alpha-file
 * image, or 0 if no channel has been specified.  See
 * set_alpha_file_channel().
 */ 1 4 this 3 2261  
603 0 0 4 729 2139 0 0 380 /**
 * Sets the multiview flag.
 *
 * If multiview is true, the filename should contain a hash mark ('#'), which
 * will be filled in with the view number; and a multiview texture will be
 * defined with a series of images, one for each view.
 *
 * A multiview texture is most often used for stereo textures, but other uses
 * are also possible, such as for texture animation.
 */ 2 4 this 3 2087  9 multiview 1 2052  
604 0 0 6 730 2052 0 0 83 /**
 * Returns the current setting of the multiview flag.  See set_multiview().
 */ 1 4 this 3 2261  
605 0 0 4 731 2139 0 0 197 /**
 * When loading a 3-D multiview texture, this parameter is necessary to
 * specify how many views will be expected.  The z size is determined
 * implicitly from the number of images loaded.
 */ 2 4 this 3 2087  9 num_views 1 2007  
606 0 0 4 732 2139 0 0 91 /**
 * Removes the specification of the number of views for a 3-D multiview
 * texture.
 */ 1 4 this 3 2087  
607 0 0 6 733 2052 0 0 116 /**
 * Returns true if the number of views has been specified for the 3-D
 * multiview texture, false otherwise.
 */ 1 4 this 3 2261  
608 0 0 6 734 2007 0 0 114 /**
 * Returns the specified number of views specified for the 3-D multiview
 * texture.  See set_num_views().
 */ 1 4 this 3 2261  
609 0 0 4 735 2139 0 0 546 /**
 * Sets the read_mipmaps flag.
 *
 * If read_mipmaps is true, the filename should contain a hash mark ('#'),
 * which will be filled in with the mipmap level number; and the texture will
 * be defined with a series of images, one for each mipmap level.
 *
 * If the filename is of a type that already requires a hash mark, such as a
 * cube map or a 3-d texture, then the filename should now require two hash
 * marks, and the first one indicates the mipmap level number, while the
 * second indicates the face number or 3-d level number.
 */ 2 4 this 3 2087  12 read_mipmaps 1 2052  
610 0 0 6 736 2052 0 0 92 /**
 * Returns the current setting of the read_mipmaps flag.  See
 * set_read_mipmaps().
 */ 1 4 this 3 2261  
611 0 0 4 737 2139 0 0 61 /**
 * Sets the minimum mipmap level that may be sampled.
 */ 2 4 this 3 2087  7 min_lod 1 2010  
612 0 0 4 738 2139 0 0 80 /**
 * Removes the specification of a minimum mipmap level from the texture.
 */ 1 4 this 3 2087  
613 0 0 6 739 2052 0 0 120 /**
 * Returns true if a value for the minimum mipmap level has been specified for
 * this texture, false otherwise.
 */ 1 4 this 3 2261  
614 0 0 6 740 2010 0 0 85 /**
 * Returns the minimum mipmap level that has been specified for this texture.
 */ 1 4 this 3 2261  
615 0 0 4 741 2139 0 0 61 /**
 * Sets the maximum mipmap level that may be sampled.
 */ 2 4 this 3 2087  7 max_lod 1 2010  
616 0 0 4 742 2139 0 0 80 /**
 * Removes the specification of a maximum mipmap level from the texture.
 */ 1 4 this 3 2087  
617 0 0 6 743 2052 0 0 120 /**
 * Returns true if a value for the maximum mipmap level has been specified for
 * this texture, false otherwise.
 */ 1 4 this 3 2261  
618 0 0 6 744 2010 0 0 85 /**
 * Returns the maximum mipmap level that has been specified for this texture.
 */ 1 4 this 3 2261  
619 0 0 4 745 2139 0 0 86 /**
 * Sets the mipmap level bias that is added to the mipmap level to be sampled.
 */ 2 4 this 3 2087  8 lod_bias 1 2010  
620 0 0 4 746 2139 0 0 80 /**
 * Removes the specification of a maximum mipmap level from the texture.
 */ 1 4 this 3 2087  
621 0 0 6 747 2052 0 0 120 /**
 * Returns true if a value for the maximum mipmap level has been specified for
 * this texture, false otherwise.
 */ 1 4 this 3 2261  
622 0 0 6 748 2010 0 0 85 /**
 * Returns the maximum mipmap level that has been specified for this texture.
 */ 1 4 this 3 2261  
623 0 0 4 749 2139 0 0 173 /**
 * Resets the multitexture flags set by multitexture_over().  After this call,
 * get_multitexture() will return false, and get_multitexture_sort() will
 * return 0.
 */ 1 4 this 3 2087  
624 0 0 6 750 2052 0 0 434 /**
 * Indicates that this texture should be layered on top of the other texture.
 * This will guarantee that this->get_multitexture_sort() >
 * other->get_multitexture_sort(), at least until clear_multitexture() is
 * called on either one.
 *
 * The return value is true if successful, or false if there is a failure
 * because the other texture was already layered on top of this one (or there
 * is a three- or more-way cycle).
 */ 2 4 this 3 2087  5 other 1 2087  
625 0 0 6 751 2007 0 0 333 /**
 * Returns an integer that represents the depth to which this texture is
 * layered on all other textures in the egg file.  In general, if texture A is
 * layered over texture B, then sort(A) > sort(B).  If texture A is never
 * layered over any other texture, then sort(A) == 0.  More than that is
 * difficult to guarantee.
 */ 1 4 this 3 2261  
626 0 0 6 752 2068 0 0 171 /**
 * Returns the Texture_ype value associated with the given string
 * representation, or TT_unspecified if the string does not match any known
 * TextureType value.
 */ 1 6 string 1 2143  
627 0 0 6 753 2069 0 0 157 /**
 * Returns the Format value associated with the given string representation,
 * or F_unspecified if the string does not match any known Format value.
 */ 1 6 string 1 2143  
628 0 0 6 754 2070 0 0 175 /**
 * Returns the CompressionMode value associated with the given string
 * representation, or CM_default if the string does not match any known
 * CompressionMode value.
 */ 1 6 string 1 2143  
629 0 0 6 755 2071 0 0 162 /**
 * Returns the WrapMode value associated with the given string representation,
 * or WM_unspecified if the string does not match any known WrapMode value.
 */ 1 6 string 1 2143  
630 0 0 6 756 2072 0 0 169 /**
 * Returns the FilterType value associated with the given string
 * representation, or FT_unspecified if the string does not match any known
 * FilterType value.
 */ 1 6 string 1 2143  
631 0 0 6 757 2073 0 0 160 /**
 * Returns the EnvType value associated with the given string representation,
 * or ET_unspecified if the string does not match any known EnvType value.
 */ 1 6 string 1 2143  
632 0 0 6 758 2074 0 0 171 /**
 * Returns the CombineMode value associated with the given string
 * representation, or CM_unspecified if the string does not match any known
 * CombineMode value.
 */ 1 6 string 1 2143  
633 0 0 6 759 2077 0 0 175 /**
 * Returns the CombineSource value associated with the given string
 * representation, or CS_unspecified if the string does not match any known
 * CombineSource value.
 */ 1 6 string 1 2143  
634 0 0 6 760 2078 0 0 177 /**
 * Returns the CombineOperand value associated with the given string
 * representation, or CO_unspecified if the string does not match any known
 * CombineOperand value.
 */ 1 6 string 1 2143  
635 0 0 6 761 2079 0 0 158 /**
 * Returns the TexGen value associated with the given string representation,
 * or ET_unspecified if the string does not match any known TexGen value.
 */ 1 6 string 1 2143  
636 0 0 6 762 2080 0 0 158 /**
 * Returns the TexGen value associated with the given string representation,
 * or ET_unspecified if the string does not match any known TexGen value.
 */ 1 6 string 1 2143  
637 0 0 7 796 2135 0 0 0 0 
638 0 0 7 624 2258 1512 0 0 1 4 this 3 2087  
639 0 0 6 626 2156 0 0 0 1 4 this 3 2087  
640 0 0 6 628 2228 0 0 0 1 4 this 3 2087  
641 0 0 15 798 2088 1683 0 10 /**
 *
 */ 1 4 copy 1 2263  
642 0 0 7 798 2088 1683 0 10 /**
 *
 */ 1 9 mref_name 1 2143  
643 0 0 6 800 2052 0 0 411 /**
 * Returns true if the two materials are equivalent in all relevant properties
 * (according to eq), false otherwise.
 *
 * The Equivalence parameter, eq, should be set to the bitwise OR of the
 * following properties, according to what you consider relevant:
 *
 * EggMaterial::E_attributes: All material attributes (diff, spec, etc.)
 * except MRef name.
 *
 * EggMaterial::E_mref_name: The MRef name.
 */ 3 4 this 3 2263  5 other 1 2263  2 eq 1 2007  
644 0 0 6 801 2052 0 0 226 /**
 * An ordering operator to compare two materials for sorting order.  This
 * imposes an arbitrary ordering useful to identify unique materials,
 * according to the indicated Equivalence factor.  See is_equivalent_to().
 */ 3 4 this 3 2263  5 other 1 2263  2 eq 1 2007  
645 0 0 4 802 2139 0 0 24 /**
 * @since 1.10.0
 */ 2 4 this 3 2088  4 base 1 2186  
646 0 0 4 803 2139 0 0 24 /**
 * @since 1.10.0
 */ 1 4 this 3 2088  
647 0 0 6 804 2052 0 0 24 /**
 * @since 1.10.0
 */ 1 4 this 3 2263  
648 0 0 7 805 2185 0 0 142 /**
 * It is legal to call this even if has_base() returns false.  If so, it
 * simply returns the default base color.
 *
 * @since 1.10.0
 */ 1 4 this 3 2263  
649 0 0 4 806 2139 0 0 10 /**
 *
 */ 2 4 this 3 2088  4 diff 1 2186  
650 0 0 4 807 2139 0 0 10 /**
 *
 */ 1 4 this 3 2088  
651 0 0 6 808 2052 0 0 10 /**
 *
 */ 1 4 this 3 2263  
652 0 0 7 809 2185 0 0 122 /**
 * It is legal to call this even if has_diff() returns false.  If so, it
 * simply returns the default diff color.
 */ 1 4 this 3 2263  
653 0 0 4 810 2139 0 0 10 /**
 *
 */ 2 4 this 3 2088  3 amb 1 2186  
654 0 0 4 811 2139 0 0 10 /**
 *
 */ 1 4 this 3 2088  
655 0 0 6 812 2052 0 0 10 /**
 *
 */ 1 4 this 3 2263  
656 0 0 7 813 2185 0 0 120 /**
 * It is legal to call this even if has_amb() returns false.  If so, it simply
 * returns the default amb color.
 */ 1 4 this 3 2263  
657 0 0 4 814 2139 0 0 10 /**
 *
 */ 2 4 this 3 2088  4 emit 1 2186  
658 0 0 4 815 2139 0 0 10 /**
 *
 */ 1 4 this 3 2088  
659 0 0 6 816 2052 0 0 10 /**
 *
 */ 1 4 this 3 2263  
660 0 0 7 817 2185 0 0 122 /**
 * It is legal to call this even if has_emit() returns false.  If so, it
 * simply returns the default emit color.
 */ 1 4 this 3 2263  
661 0 0 4 818 2139 0 0 10 /**
 *
 */ 2 4 this 3 2088  4 spec 1 2186  
662 0 0 4 819 2139 0 0 10 /**
 *
 */ 1 4 this 3 2088  
663 0 0 6 820 2052 0 0 10 /**
 *
 */ 1 4 this 3 2263  
664 0 0 7 821 2185 0 0 122 /**
 * It is legal to call this even if has_spec() returns false.  If so, it
 * simply returns the default spec color.
 */ 1 4 this 3 2263  
665 0 0 4 822 2139 0 0 10 /**
 *
 */ 2 4 this 3 2088  9 shininess 1 2010  
666 0 0 4 823 2139 0 0 10 /**
 *
 */ 1 4 this 3 2088  
667 0 0 6 824 2052 0 0 10 /**
 *
 */ 1 4 this 3 2263  
668 0 0 6 825 2010 0 0 10 /**
 *
 */ 1 4 this 3 2263  
669 0 0 4 826 2139 0 0 24 /**
 * @since 1.10.0
 */ 2 4 this 3 2088  9 roughness 1 2010  
670 0 0 4 827 2139 0 0 24 /**
 * @since 1.10.0
 */ 1 4 this 3 2088  
671 0 0 6 828 2052 0 0 24 /**
 * @since 1.10.0
 */ 1 4 this 3 2263  
672 0 0 6 829 2010 0 0 24 /**
 * @since 1.10.0
 */ 1 4 this 3 2263  
673 0 0 4 830 2139 0 0 24 /**
 * @since 1.10.0
 */ 2 4 this 3 2088  8 metallic 1 2010  
674 0 0 4 831 2139 0 0 24 /**
 * @since 1.10.0
 */ 1 4 this 3 2088  
675 0 0 6 832 2052 0 0 24 /**
 * @since 1.10.0
 */ 1 4 this 3 2263  
676 0 0 6 833 2010 0 0 24 /**
 * @since 1.10.0
 */ 1 4 this 3 2263  
677 0 0 4 834 2139 0 0 24 /**
 * @since 1.10.0
 */ 2 4 this 3 2088  3 ior 1 2010  
678 0 0 4 835 2139 0 0 24 /**
 * @since 1.10.0
 */ 1 4 this 3 2088  
679 0 0 6 836 2052 0 0 24 /**
 * @since 1.10.0
 */ 1 4 this 3 2263  
680 0 0 6 837 2010 0 0 24 /**
 * @since 1.10.0
 */ 1 4 this 3 2263  
681 0 0 4 838 2139 0 0 10 /**
 *
 */ 2 4 this 3 2088  5 local 1 2052  
682 0 0 4 839 2139 0 0 10 /**
 *
 */ 1 4 this 3 2088  
683 0 0 6 840 2052 0 0 10 /**
 *
 */ 1 4 this 3 2263  
684 0 0 6 841 2052 0 0 10 /**
 *
 */ 1 4 this 3 2263  
685 0 0 7 852 2135 0 0 0 0 
686 0 0 7 862 2225 1691 0 10 /**
 *
 */ 2 4 this 3 2225  4 copy 1 2220  
687 0 0 7 864 2225 1691 0 0 1 4 this 3 2220  
688 0 0 6 865 2156 0 0 271 /**
 * Walks back up the hierarchy, looking for an EggGroup or EggPrimitive or
 * some such object at this level or above this primitive that has an
 * alpha_mode other than AM_unspecified.  Returns a valid EggRenderMode
 * pointer if one is found, or NULL otherwise.
 */ 1 4 this 3 2225  
689 0 0 6 866 2156 0 0 272 /**
 * Walks back up the hierarchy, looking for an EggGroup or EggPrimitive or
 * some such object at this level or above this node that has a
 * depth_write_mode other than DWM_unspecified.  Returns a valid EggRenderMode
 * pointer if one is found, or NULL otherwise.
 */ 1 4 this 3 2225  
690 0 0 6 867 2156 0 0 271 /**
 * Walks back up the hierarchy, looking for an EggGroup or EggPrimitive or
 * some such object at this level or above this node that has a
 * depth_test_mode other than DTM_unspecified.  Returns a valid EggRenderMode
 * pointer if one is found, or NULL otherwise.
 */ 1 4 this 3 2225  
691 0 0 6 868 2156 0 0 270 /**
 * Walks back up the hierarchy, looking for an EggGroup or EggPrimitive or
 * some such object at this level or above this node that has a
 * visibility_mode other than VM_unspecified.  Returns a valid EggRenderMode
 * pointer if one is found, or NULL otherwise.
 */ 1 4 this 3 2225  
692 0 0 6 869 2156 0 0 256 /**
 * Walks back up the hierarchy, looking for an EggGroup or EggPrimitive or
 * some such object at this level or above this primitive that has a
 * depth_offset specified.  Returns a valid EggRenderMode pointer if one is
 * found, or NULL otherwise.
 */ 1 4 this 3 2225  
693 0 0 6 870 2156 0 0 254 /**
 * Walks back up the hierarchy, looking for an EggGroup or EggPrimitive or
 * some such object at this level or above this primitive that has a
 * draw_order specified.  Returns a valid EggRenderMode pointer if one is
 * found, or NULL otherwise.
 */ 1 4 this 3 2225  
694 0 0 6 871 2156 0 0 247 /**
 * Walks back up the hierarchy, looking for an EggGroup or EggPrimitive or
 * some such object at this level or above this primitive that has a bin
 * specified.  Returns a valid EggRenderMode pointer if one is found, or NULL
 * otherwise.
 */ 1 4 this 3 2225  
695 0 0 6 872 2143 0 0 223 /**
 * Returns the name of the primitive for the purposes of sorting primitives
 * into different groups, if there is one.
 *
 * Presently, this is defined as the primitive name itself, unless it begins
 * with a digit.
 */ 1 4 this 3 2220  
696 0 0 6 873 2086 0 0 696 /**
 * Returns the shading properties apparent on this particular primitive.  This
 * returns S_per_vertex if the vertices have colors or normals (and they are
 * not all the same values), or for a simple primitive, S_overall otherwise.
 * A composite primitive may also return S_per_face if the individual
 * component primitives have colors or normals that are not all the same
 * values.
 *
 * To get the most accurate results, you should call clear_shading() on all
 * connected primitives (or on all primitives in the egg file), followed by
 * get_shading() on each primitive.  You may find it easiest to call these
 * methods on the EggData root node (they are defined on EggGroupNode).
 */ 1 4 this 3 2220  
697 0 0 4 874 2139 0 0 128 /**
 * Resets the connected_shading member in this primitive, so that
 * get_connected_shading() will recompute a new value.
 */ 1 4 this 3 2225  
698 0 0 6 875 2086 0 0 479 /**
 * Determines what sort of shading properties this primitive's connected
 * neighbors have.
 *
 * To get the most accurate results, you should first call
 * clear_connected_shading() on all connected primitives (or on all primitives
 * in the egg file). It might also be a good idea to call
 * remove_unused_vertices() to ensure proper connectivity.
 *
 * You may find it easiest to call these other methods on the EggData root
 * node (they are defined on EggGroupNode).
 */ 1 4 this 3 2220  
699 0 0 4 876 2139 0 0 211 /**
 * Replaces the current list of textures with the indicated texture.
 *
 * @deprecated This method is used in support of single-texturing only.
 * Please use the multitexture variant add_texture instead.
 */ 2 4 this 3 2225  7 texture 1 2087  
700 0 0 6 877 2052 0 0 232 /**
 * Returns true if the primitive has any textures specified, false otherwise.
 *
 * @deprecated This method is used in support of single-texturing only.
 * New code should be written to use the multitexture variants instead.
 */ 1 4 this 3 2220  
701 0 0 6 877 2052 0 0 98 /**
 * Returns true if the primitive has the particular indicated texture, false
 * otherwise.
 */ 2 4 this 3 2220  7 texture 1 2087  
702 0 0 7 878 2087 1521 0 263 /**
 * Returns the first texture on the primitive, if any, or NULL if there are no
 * textures on the primitive.
 *
 * @deprecated This method is used in support of single-texturing only.
 * New code should be written to use the multitexture variants instead.
 */ 1 4 this 3 2220  
703 0 0 7 878 2087 1521 0 74 /**
 * Returns the nth texture that has been applied to the primitive.
 */ 2 4 this 3 2220  1 n 1 2007  
704 0 0 4 879 2139 0 0 276 /**
 * Applies the indicated texture to the primitive.
 *
 * Note that, in the case of multiple textures being applied to a single
 * primitive, the order in which the textures are applied does not affect the
 * rendering order; use EggTexture::set_sort() to specify that.
 */ 2 4 this 3 2225  7 texture 1 2087  
705 0 0 4 880 2139 0 0 52 /**
 * Removes any texturing from the primitive.
 */ 1 4 this 3 2225  
706 0 0 6 881 2007 0 0 67 /**
 * Returns the number of textures applied to the primitive.
 */ 1 4 this 3 2220  
707 0 0 4 883 2139 0 0 59 /**
 * Applies the indicated material to the primitive.
 */ 2 4 this 3 2225  8 material 1 2088  
708 0 0 4 884 2139 0 0 51 /**
 * Removes any material from the primitive.
 */ 1 4 this 3 2225  
709 0 0 7 885 2088 1683 0 97 /**
 * Returns a pointer to the applied material, or NULL if there is no material
 * applied.
 */ 1 4 this 3 2220  
710 0 0 6 886 2052 0 0 160 /**
 * Returns true if the primitive is materiald (and get_material() will return
 * a real pointer), false otherwise (and get_material() will return NULL).
 */ 1 4 this 3 2220  
711 0 0 4 887 2139 0 0 204 /**
 * Sets the backfacing flag of the polygon.  If this is true, the polygon will
 * be rendered so that both faces are visible; if it is false, only the front
 * face of the polygon will be visible.
 */ 2 4 this 3 2225  4 flag 1 2052  
712 0 0 6 888 2052 0 0 79 /**
 * Retrieves the backfacing flag of the polygon.  See set_bface_flag().
 */ 1 4 this 3 2220  
713 0 0 4 897 2139 0 0 72 /**
 * Copies the rendering attributes from the indicated primitive.
 */ 2 4 this 3 2225  5 other 1 2179  
714 0 0 4 897 2139 0 0 72 /**
 * Copies the rendering attributes from the indicated primitive.
 */ 2 4 this 3 2225  5 other 1 2220  
715 0 0 6 898 2052 0 0 295 /**
 * Returns true if any vertex on the primitive has a specific normal set,
 * false otherwise.
 *
 * If you call unify_attributes() first, this will also return false even if
 * all the vertices were set to the same value (since unify_attributes()
 * removes redundant vertex properties).
 */ 1 4 this 3 2220  
716 0 0 6 899 2052 0 0 294 /**
 * Returns true if any vertex on the primitive has a specific color set, false
 * otherwise.
 *
 * If you call unify_attributes() first, this will also return false even if
 * all the vertices were set to the same value (since unify_attributes()
 * removes redundant vertex properties).
 */ 1 4 this 3 2220  
717 0 0 4 900 2139 0 0 766 /**
 * If the shading property is S_per_vertex, ensures that all vertices have a
 * normal and a color, and the overall primitive does not.
 *
 * If the shading property is S_per_face, and this is a composite primitive,
 * ensures that all components have a normal and a color, and the vertices and
 * overall primitive do not.  (If this is a simple primitive, S_per_face works
 * the same as S_overall, below).
 *
 * If the shading property is S_overall, ensures that no vertices or
 * components have a normal or a color, and the overall primitive does (if any
 * exists at all).
 *
 * After this call, either the primitive will have normals or its vertices
 * will, but not both.  Ditto for colors.
 *
 * This may create redundant vertices in the vertex pool.
 */ 2 4 this 3 2225  7 shading 1 2086  
718 0 0 4 901 2139 0 0 350 /**
 * Sets the last vertex of the triangle (or each component) to the primitive
 * normal and/or color, if the primitive is flat-shaded.  This reflects the
 * OpenGL convention of storing flat-shaded properties on the last vertex,
 * although it is not usually a convention in Egg.
 *
 * This may introduce redundant vertices to the vertex pool.
 */ 1 4 this 3 2225  
719 0 0 4 902 2139 0 0 353 /**
 * Sets the first vertex of the triangle (or each component) to the primitive
 * normal and/or color, if the primitive is flat-shaded.  This reflects the
 * DirectX convention of storing flat-shaded properties on the first vertex,
 * although it is not usually a convention in Egg.
 *
 * This may introduce redundant vertices to the vertex pool.
 */ 1 4 this 3 2225  
720 0 0 4 903 2139 0 0 217 /**
 * Intended as a followup to apply_last_attribute(), this also sets an
 * attribute on the first vertices of the primitive, if they don't already
 * have an attribute set, just so they end up with *something*.
 */ 1 4 this 3 2225  
721 0 0 4 904 2139 0 0 201 /**
 * Reverses the ordering of the vertices in this primitive, if appropriate, in
 * order to change the direction the polygon appears to be facing.  Does not
 * adjust the surface normal, if any.
 */ 1 4 this 3 2225  
722 0 0 6 905 2052 0 0 272 /**
 * Cleans up modeling errors in whatever context this makes sense.  For
 * instance, for a polygon, this calls remove_doubled_verts(true).  For a
 * point, it calls remove_nonunique_verts().  Returns true if the primitive is
 * valid, or false if it is degenerate.
 */ 1 4 this 3 2225  
723 0 0 4 906 2139 0 0 559 /**
 * Certain kinds of primitives, particularly polygons, don't like to have the
 * same vertex repeated consecutively.  Unfortunately, some modeling programs
 * (like MultiGen) make this an easy mistake to make.
 *
 * It's handy to have a function to remove these redundant vertices.  If
 * closed is true, it also checks that the first and last vertices are not the
 * same.
 *
 * This function identifies repeated vertices by position only; it does not
 * consider any other properties, such as color or UV, significant in
 * differentiating vertices.
 */ 2 4 this 3 2225  6 closed 1 2052  
724 0 0 4 907 2139 0 0 256 /**
 * Removes any multiple appearances of the same vertex from the primitive.
 * This primarily makes sense for a point primitive, which is really a
 * collection of points and which doesn't make sense to include the same point
 * twice, in any order.
 */ 1 4 this 3 2225  
725 0 0 6 908 2052 0 0 124 /**
 * Returns true if there are any primitives (e.g.  polygons) defined within
 * this group or below, false otherwise.
 */ 1 4 this 3 2220  
726 0 0 6 909 2052 0 0 154 /**
 * Returns true if there are any primitives (e.g.  polygons) defined within
 * this group or below, but the search does not include nested joints.
 */ 1 4 this 3 2220  
727 0 0 6 910 2052 0 0 164 /**
 * Returns true if any of the primitives (e.g.  polygons) defined within this
 * group or below have either face or vertex normals defined, false otherwise.
 */ 1 4 this 3 2220  
728 0 0 4 911 2139 0 0 58 /**
 * Removes all of the vertices from the primitive.
 */ 1 4 this 3 2225  
729 0 0 7 912 2089 1191 0 103 /**
 * Adds the indicated vertex to the end of the primitive's list of vertices,
 * and returns it.
 */ 2 4 this 3 2225  6 vertex 1 2089  
730 0 0 7 913 2089 1191 0 157 /**
 * Removes the indicated vertex from the primitive and returns it.  If the
 * vertex was not already in the primitive, does nothing and returns NULL.
 */ 2 4 this 3 2225  6 vertex 1 2089  
731 0 0 4 913 2139 0 0 59 /**
 * Removes the indicated vertex from the primitive.
 */ 2 4 this 3 2225  5 index 1 2265  
732 0 0 4 914 2139 0 0 123 /**
 * Replaces the current primitive's list of vertices with a copy of the list
 * of vertices on the other primitive.
 */ 2 4 this 3 2225  5 other 1 2220  
733 0 0 6 915 2265 0 0 63 // These are shorthands if you don't want to use the iterators. 1 4 this 3 2220  
734 0 0 7 916 2089 1191 0 64 /**
 * Returns a particular index based on its index number.
 */ 2 4 this 3 2220  5 index 1 2265  
735 0 0 4 917 2139 0 0 187 /**
 * Replaces a particular vertex based on its index number in the list of
 * vertices.  This is just a convenience function for people who don't want to
 * mess with the iterators.
 */ 3 4 this 3 2225  5 index 1 2265  6 vertex 1 2089  
736 0 0 4 918 2139 0 0 50 /**
 * Inserts a vertex at the given position.
 */ 3 4 this 3 2225  5 index 1 2265  6 vertex 1 2089  
737 0 0 7 920 2090 1101 0 126 /**
 * Returns the vertex pool associated with the vertices of the primitive, or
 * NULL if the primitive has no vertices.
 */ 1 4 this 3 2220  
738 0 0 4 925 2139 0 0 0 3 4 this 3 2220  3 out 1 2144  12 indent_level 1 2007  
739 0 0 4 926 2139 0 0 0 1 4 this 3 2220  
740 0 0 7 927 2135 0 0 0 0 
741 0 0 7 855 2147 1101 0 0 1 4 this 3 2225  
742 0 0 6 857 2092 0 0 0 1 4 this 3 2225  
743 0 0 6 859 2156 0 0 0 1 4 this 3 2225  
744 0 0 7 929 2266 1691 0 10 /**
 *
 */ 2 4 this 3 2266  4 copy 1 2267  
745 0 0 6 930 2265 0 0 148 /**
 * Returns the number of individual component triangles within the composite.
 * Each one of these might have a different set of attributes.
 */ 1 4 this 3 2267  
746 0 0 6 931 2092 0 0 65 /**
 * Returns the attributes for the nth component triangle.
 */ 2 4 this 3 2266  1 i 1 2265  
747 0 0 6 931 2179 0 0 65 /**
 * Returns the attributes for the nth component triangle.
 */ 2 4 this 3 2267  1 i 1 2265  
748 0 0 4 933 2139 0 0 65 /**
 * Changes the attributes for the nth component triangle.
 */ 3 4 this 3 2266  1 i 1 2265  6 attrib 1 2179  
749 0 0 6 936 2052 0 0 361 /**
 * Subdivides the composite primitive into triangles and adds those triangles
 * to the indicated container.  Does not remove the primitive from its
 * existing parent or modify it in any way.
 *
 * Returns true if the triangulation is successful, or false if there was some
 * error (in which case the container may contain some partial triangulation).
 */ 2 4 this 3 2267  9 container 1 2001  
750 0 0 7 937 2266 1691 0 460 /**
 * Subdivides the composite primitive into triangles and adds those triangles
 * to the parent group node in place of the original primitive.  Returns a
 * pointer to the original primitive, which is likely about to be destructed.
 *
 * If convex_also is true, both concave and convex polygons will be subdivided
 * into triangles; otherwise, only concave polygons will be subdivided, and
 * convex polygons will be copied unchanged into the container.
 */ 1 4 this 3 2266  
751 0 0 7 938 2135 0 0 0 0 
752 0 0 7 940 2269 1771 0 10 /**
 *
 */ 0 
753 0 0 15 940 2269 1771 0 10 /**
 *
 */ 1 4 copy 1 2270  
754 0 0 7 941 2269 1771 0 10 /**
 *
 */ 2 4 this 3 2269  4 copy 1 2270  
755 0 0 6 942 2052 0 0 212 /**
 * Looks for the indicated filename, first along the indicated searchpath, and
 * then along the model_path.  If found, updates the filename to the full path
 * and returns true; otherwise, returns false.
 */ 2 12 egg_filename 1 2272  10 searchpath 5 2161  
756 0 0 6 943 2052 0 0 291 /**
 * Opens the indicated filename and reads the egg data contents from it.
 * Returns true if the file was successfully opened and read, false if there
 * were some errors, in which case the data may be partially read.
 *
 * error is the output stream to which to write error messages.
 */ 3 4 this 3 2269  8 filename 1 2272  12 display_name 5 2143  
757 0 0 6 943 2052 0 0 442 /**
 * Parses the egg syntax contained in the indicated input stream.  Returns
 * true if the stream was a completely valid egg file, false if there were
 * some errors, in which case the data may be partially read.
 *
 * Before you call this routine, you should probably call set_egg_filename()
 * to set the name of the egg file we're processing, if at all possible.  If
 * there is no such filename, you may set it to the empty string.
 */ 2 4 this 3 2269  2 in 1 2273  
758 0 0 4 944 2139 0 0 110 /**
 * Appends the other egg structure to the end of this one.  The other egg
 * structure is invalidated.
 */ 2 4 this 3 2269  5 other 1 2269  
759 0 0 6 945 2052 0 0 356 /**
 * Loads up all the egg files referenced by <File> entries within the egg
 * structure, and inserts their contents in place of the <File> entries.
 * Searches for files in the searchpath, if not found directly, and writes
 * error messages to the indicated output stream.  Returns true if all
 * externals were loaded successfully, false otherwise.
 */ 2 4 this 3 2269  10 searchpath 5 2161  
760 0 0 6 945 2052 0 0 356 /**
 * Loads up all the egg files referenced by <File> entries within the egg
 * structure, and inserts their contents in place of the <File> entries.
 * Searches for files in the searchpath, if not found directly, and writes
 * error messages to the indicated output stream.  Returns true if all
 * externals were loaded successfully, false otherwise.
 */ 3 4 this 3 2269  10 searchpath 1 2161  6 record 1 2275  
761 0 0 6 946 2007 0 0 310 /**
 * Removes duplicate references to the same texture image with the same
 * properties.  Considers two texture references with identical properties,
 * but different tref names, to be equivalent, and collapses them, choosing
 * one tref name to keep arbitrarily.  Returns the number of textures removed.
 */ 1 4 this 3 2269  
762 0 0 6 947 2007 0 0 306 /**
 * Removes duplicate references to the same material with the same properties.
 * Considers two material references with identical properties, but different
 * mref names, to be equivalent, and collapses them, choosing one mref name to
 * keep arbitrarily.  Returns the number of materials removed.
 */ 1 4 this 3 2269  
763 0 0 6 948 2052 0 0 61 /**
 * The main interface for writing complete egg files.
 */ 2 4 this 3 2269  8 filename 1 2272  
764 0 0 6 948 2052 0 0 61 /**
 * The main interface for writing complete egg files.
 */ 2 4 this 3 2269  3 out 1 2144  
765 0 0 4 949 2139 0 0 147 /**
 * Indicates whether the EggData object will automatically resolve any
 * external references when read() is called.  The default is false.
 */ 2 4 this 3 2269  7 resolve 1 2052  
766 0 0 6 950 2052 0 0 147 /**
 * Indicates whether the EggData object will automatically resolve any
 * external references when read() is called.  The default is false.
 */ 1 4 this 3 2270  
767 0 0 6 951 2052 0 0 411 /**
 * Returns true if the data processed in the last call to read() contained
 * absolute pathnames, or false if those pathnames were all relative.
 *
 * This method is necessary because if auto_resolve_externals() is in effect,
 * it may modify the pathnames to be absolute whether or not they were as
 * loaded from disk.  This method can be used to query the state of the
 * original egg file from disk.
 */ 1 4 this 3 2270  
768 0 0 4 952 2139 0 0 156 /**
 * Changes the coordinate system of the EggData.  If the coordinate system was
 * previously different, this may result in a conversion of the data.
 */ 2 4 this 3 2269  8 coordsys 1 2094  
769 0 0 6 953 2094 0 0 74 /**
 * Returns the coordinate system in which the egg file is defined.
 */ 1 4 this 3 2270  
770 0 0 4 954 2139 0 0 150 /**
 * Sets the filename--especially the directory part--in which the egg file is
 * considered to reside.  This is also implicitly set by read().
 */ 2 4 this 3 2269  12 egg_filename 1 2164  
771 0 0 6 955 2164 0 0 79 /**
 * Returns the directory in which the egg file is considered to reside.
 */ 1 4 this 3 2270  
772 0 0 4 956 2139 0 0 136 /**
 * Sets the timestamp of the egg file on disk, at the time it was opened for
 * reading.  This is also implicitly set by read().
 */ 2 4 this 3 2269  13 egg_timestamp 1 2095  
773 0 0 6 957 2095 0 0 142 /**
 * Returns the timestamp of the egg file on disk, at the time it was opened
 * for reading, or 0 if this information is not available.
 */ 1 4 this 3 2270  
774 0 0 4 965 2139 0 0 711 /**
 * Recomputes all the vertex normals for polygon geometry at this group node
 * and below so that they accurately reflect the vertex positions.  A shared
 * edge between two polygons (even in different groups) is considered smooth
 * if the angle between the two edges is less than threshold degrees.
 *
 * This function also removes degenerate polygons that do not have enough
 * vertices to define a normal.  It does not affect normals for other kinds of
 * primitives like Nurbs or Points.
 *
 * This function does not remove or adjust vertices in the vertex pool; it
 * only adds new vertices with the correct normals.  Thus, it is a good idea
 * to call remove_unused_vertices() after calling this.
 */ 2 4 this 3 2269  9 threshold 1 2010  
775 0 0 4 966 2139 0 0 672 /**
 * Recomputes all the polygon normals for polygon geometry at this group node
 * and below so that they accurately reflect the vertex positions.  Normals
 * are removed from the vertices and defined only on polygons, giving the
 * geometry a faceted appearance.
 *
 * This function also removes degenerate polygons that do not have enough
 * vertices to define a normal.  It does not affect normals for other kinds of
 * primitives like Nurbs or Points.
 *
 * This function does not remove or adjust vertices in the vertex pool; it
 * only adds new vertices with the normals removed.  Thus, it is a good idea
 * to call remove_unused_vertices() after calling this.
 */ 1 4 this 3 2269  
776 0 0 4 967 2139 0 0 317 /**
 * Removes all normals from primitives, and the vertices they reference, at
 * this node and below.
 *
 * This function does not remove or adjust vertices in the vertex pool; it
 * only adds new vertices with the normal removed.  Thus, it is a good idea to
 * call remove_unused_vertices() after calling this.
 */ 1 4 this 3 2269  
777 0 0 7 968 2135 0 0 0 0 
778 0 0 23 971 2277 1777 0 10 /**
 *
 */ 1 5 value 5 2094  
779 0 0 15 971 2277 1777 0 10 /**
 *
 */ 1 4 copy 1 2278  
780 0 0 4 972 2139 0 0 10 /**
 *
 */ 2 4 this 3 2277  5 value 1 2094  
781 0 0 6 973 2094 0 0 10 /**
 *
 */ 1 4 this 3 2278  
782 0 0 38 974 2003 0 0 0 1 4 this 3 2278  
783 0 0 7 975 2135 0 0 0 0 
784 0 0 7 978 2280 1785 0 10 /**
 *
 */ 2 4 this 3 2280  4 copy 1 2281  
785 0 0 4 980 2139 0 0 276 /**
 * Sets the number of subdivisions that will be requested across the curve.
 * (This doesn't necessary guarantee that this number of subdivisions will be
 * made; it's just a hint to any curve renderer or quick tesselator.)  Set the
 * number to 0 to disable the hint.
 */ 2 4 this 3 2280  6 subdiv 1 2007  
786 0 0 6 981 2007 0 0 115 /**
 * Returns the requested number of subdivisions, or 0 if no particular
 * subdivisions have been requested.
 */ 1 4 this 3 2281  
787 0 0 4 982 2139 0 0 126 /**
 * Sets the type of the curve.  This is primarily used as a hint to any code
 * that may need to deal with this curve.
 */ 2 4 this 3 2280  4 type 1 2099  
788 0 0 6 983 2099 0 0 51 /**
 * Returns the indicated type of the curve.
 */ 1 4 this 3 2281  
789 0 0 6 984 2099 0 0 163 /**
 * Returns the CurveType value associated with the given string
 * representation, or CT_invalid if the string does not match any known
 * CurveType value.
 */ 1 6 string 1 2143  
790 0 0 7 985 2135 0 0 0 0 
791 0 0 15 988 2285 1789 0 10 /**
 *
 */ 1 4 copy 1 2283  
792 0 0 7 988 2285 1789 0 10 /**
 *
 */ 2 9 node_name 1 2143  8 filename 1 2143  
793 0 0 7 989 2285 1789 0 10 /**
 *
 */ 2 4 this 3 2285  4 copy 1 2283  
794 0 0 7 990 2135 0 0 0 0 
795 0 0 4 993 2139 0 0 86 /**
 * Empties the table of used named and prepares the Uniquifier for a new tree.
 */ 1 4 this 3 2286  
796 0 0 4 994 2139 0 0 56 /**
 * Begins the traversal from the indicated node.
 */ 2 4 this 3 2286  4 node 1 2147  
797 0 0 7 995 2147 1101 0 114 /**
 * Returns the node associated with the given category and name, or NULL if
 * the name has not been used.
 */ 3 4 this 3 2287  8 category 1 2143  4 name 1 2143  
798 0 0 6 996 2052 0 0 105 /**
 * Returns true if the name has been used for the indicated category already,
 * false otherwise.
 */ 3 4 this 3 2287  8 category 1 2143  4 name 1 2143  
799 0 0 6 997 2052 0 0 219 /**
 * Adds the name to the indicated category.  This name will not be used for
 * any other egg node within this category.  Returns true if the name was
 * added, or false if it was already in use for the category.
 */ 4 4 this 3 2286  8 category 1 2143  4 name 1 2143  4 node 5 2147  
800 0 0 6 998 2143 0 0 0 2 4 this 3 2286  4 node 1 2147  
801 0 0 6 999 2143 0 0 216 /**
 * Returns the name of the given node, or at least the name it should be.
 * This provides a hook to adjust the name before attempting to uniquify it,
 * if desired, for instance to remove invalid characters.
 */ 2 4 this 3 2286  4 node 1 2147  
802 0 0 6 1000 2143 0 0 365 /**
 * Generates a new name for the given node when its existing name clashes with
 * some other node.  This function will be called repeatedly, if necessary,
 * until it returns a name that actually is unique.
 *
 * The category is the string returned by get_category(), and index is a
 * uniquely-generated number that may be useful for synthesizing the name.
 */ 4 4 this 3 2286  4 node 1 2147  8 category 1 2143  5 index 1 2007  
803 0 0 7 1001 2135 0 0 0 0 
804 0 0 7 1003 2289 1801 0 254 /**
 * If filter_names is true, then the group names will be coerced into a fairly
 * safe, standard convention that uses no characters other than a-z, A-Z, 0-9,
 * and underscore.  If filter_names is false, the group names will be left
 * unchanged.
 */ 1 12 filter_names 5 2052  
805 0 0 7 1004 2135 0 0 0 0 
806 0 0 15 1007 2292 1691 0 10 /**
 *
 */ 1 4 copy 1 2290  
807 0 0 7 1007 2292 1691 0 10 /**
 *
 */ 1 4 name 5 2143  
808 0 0 7 1008 2292 1691 0 10 /**
 *
 */ 2 4 this 3 2292  4 copy 1 2290  
809 0 0 6 1009 2052 0 0 10 /**
 *
 */ 1 4 this 3 2290  
810 0 0 6 1010 2010 0 0 108 /**
 * Returns the thickness set on this particular line.  If there is no
 * thickness set, returns 1.0.
 */ 1 4 this 3 2290  
811 0 0 4 1011 2139 0 0 10 /**
 *
 */ 2 4 this 3 2292  5 thick 1 2010  
812 0 0 4 1012 2139 0 0 10 /**
 *
 */ 1 4 this 3 2292  
813 0 0 7 1013 2135 0 0 0 0 
814 0 0 7 1015 2293 1811 0 10 /**
 *
 */ 0 
815 0 0 15 1015 2293 1811 0 10 /**
 *
 */ 1 4 copy 1 2294  
816 0 0 6 1016 2293 0 0 10 /**
 *
 */ 2 4 this 3 2293  4 copy 1 2294  
817 0 0 4 1018 2139 0 0 53 /**
 * Removes all materials from the collection.
 */ 1 4 this 3 2293  
818 0 0 6 1019 2007 0 0 211 /**
 * Walks the egg hierarchy beginning at the indicated node, and removes any
 * EggMaterials encountered in the hierarchy, adding them to the collection.
 * Returns the number of EggMaterials encountered.
 */ 2 4 this 3 2293  4 node 1 2001  
819 0 0 6 1020 2007 0 0 903 /**
 * Walks the egg hierarchy beginning at the indicated node, looking for
 * materials that are referenced by primitives but are not already members of
 * the collection, adding them to the collection.
 *
 * If this is called following extract_materials(), it can be used to pick up
 * any additional material references that appeared in the egg hierarchy (but
 * whose EggMaterial node was not actually part of the hierarchy).
 *
 * If this is called in lieu of extract_materials(), it will fill up the
 * collection with all of the referenced materials (and only the referenced
 * materials), without destructively removing the EggMaterials from the
 * hierarchy.
 *
 * This also has the side effect of incrementing the internal usage count for
 * a material in the collection each time a material reference is encountered.
 * This side effect is taken advantage of by remove_unused_materials().
 */ 2 4 this 3 2293  4 node 1 2147  
820 0 0 4 1021 2139 0 0 283 /**
 * Removes any materials from the collection that aren't referenced by any
 * primitives in the indicated egg hierarchy.  This also, incidentally, adds
 * materials to the collection that had been referenced by primitives but had
 * not previously appeared in the collection.
 */ 2 4 this 3 2293  4 node 1 2147  
821 0 0 6 1022 2007 0 0 414 /**
 * Walks through the collection and collapses together any separate materials
 * that are equivalent according to the indicated equivalence factor, eq (see
 * EggMaterial::is_equivalent_to()).  The return value is the number of
 * materials removed.
 *
 * This flavor of collapse_equivalent_materials() automatically adjusts all
 * the primitives in the egg hierarchy to refer to the new material pointers.
 */ 3 4 this 3 2293  2 eq 1 2007  4 node 1 2001  
822 0 0 6 1022 2007 0 0 634 /**
 * Walks through the collection and collapses together any separate materials
 * that are equivalent according to the indicated equivalence factor, eq (see
 * EggMaterial::is_equivalent_to()).  The return value is the number of
 * materials removed.
 *
 * This flavor of collapse_equivalent_materials() does not adjust any
 * primitives in the egg hierarchy; instead, it fills up the 'removed' map
 * with an entry for each removed material, mapping it back to the equivalent
 * retained material.  It's up to the user to then call replace_materials()
 * with this map, if desired, to apply these changes to the egg hierarchy.
 */ 3 4 this 3 2293  2 eq 1 2007  7 removed 1 2296  
823 0 0 4 1023 2139 0 0 300 /**
 * Walks the egg hierarchy, changing out any reference to a material appearing
 * on the left side of the map with its corresponding material on the right
 * side.  This is most often done following a call to
 * collapse_equivalent_materials().  It does not directly affect the
 * Collection.
 */ 2 4 node 1 2001  7 replace 1 2299  
824 0 0 4 1024 2139 0 0 131 /**
 * Guarantees that each material in the collection has a unique MRef name.
 * This is essential before writing an egg file.
 */ 1 4 this 3 2293  
825 0 0 4 1025 2139 0 0 154 /**
 * Sorts all the materials into alphabetical order by MRef name.  Subsequent
 * operations using begin()/end() will traverse in this sorted order.
 */ 1 4 this 3 2293  
826 0 0 6 1026 2052 0 0 165 /**
 * Explicitly adds a new material to the collection.  Returns true if the
 * material was added, false if it was already there or if there was some
 * error.
 */ 2 4 this 3 2293  8 material 1 2088  
827 0 0 6 1027 2052 0 0 160 /**
 * Explicitly removes a material from the collection.  Returns true if the
 * material was removed, false if it wasn't there or if there was some error.
 */ 2 4 this 3 2293  8 material 1 2088  
828 0 0 7 1028 2088 1683 0 218 // create_unique_material() creates a new material if there is not already
// one equivalent (according to eq, see EggMaterial::is_equivalent_to()) to
// the indicated material, or returns the existing one if there is. 3 4 this 3 2293  4 copy 1 2263  2 eq 1 2007  
829 0 0 7 1029 2088 1683 0 96 /**
 * Returns the material with the indicated MRef name, or NULL if no material
 * matches.
 */ 2 4 this 3 2294  9 mref_name 1 2143  
830 0 0 15 1031 2303 1832 0 10 /**
 *
 */ 1 4 copy 1 2301  
831 0 0 7 1031 2303 1832 0 10 /**
 *
 */ 1 4 name 5 2143  
832 0 0 7 1032 2303 1832 0 10 /**
 *
 */ 2 4 this 3 2303  4 copy 1 2301  
833 0 0 6 1033 2052 0 0 374 /**
 * Calculates the true polygon normal--the vector pointing out of the front of
 * the polygon--based on the vertices.  This does not return or change the
 * polygon's normal as set via set_normal().
 *
 * The return value is true if the normal is computed correctly, or false if
 * the polygon is degenerate and does not have at least three noncollinear
 * vertices.
 */ 3 4 this 3 2301  6 result 1 2304  2 cs 5 2094  
834 0 0 6 1034 2052 0 0 103 /**
 * Returns true if all of the polygon's vertices lie within the same plane,
 * false otherwise.
 */ 1 4 this 3 2301  
835 0 0 6 1035 2052 0 0 210 /**
 * Recalculates the normal according to the order of the vertices, and sets
 * it.  Returns true if the normal is computed correctly, or false if the
 * polygon is degenerate and does not have a normal.
 */ 2 4 this 3 2303  2 cs 5 2094  
836 0 0 6 1036 2052 0 0 656 /**
 * Subdivides the polygon into triangles and adds each one to the indicated
 * container.  If the polygon is already a triangle, adds an exact copy of the
 * polygon to the container.  Does not remove the polygon from its existing
 * parent or modify it in any way.
 *
 * Returns true if the triangulation is successful, or false if there was some
 * error (in which case the container may contain some partial triangulation).
 *
 * If convex_also is true, both concave and convex polygons will be subdivided
 * into triangles; otherwise, only concave polygons will be subdivided, and
 * convex polygons will be copied unchanged into the container.
 */ 3 4 this 3 2301  9 container 1 2001  11 convex_also 1 2052  
837 0 0 7 1037 2303 1832 0 444 /**
 * Subdivides the polygon into triangles and adds those triangles to the
 * parent group node in place of the original polygon.  Returns a pointer to
 * the original polygon, which is likely about to be destructed.
 *
 * If convex_also is true, both concave and convex polygons will be subdivided
 * into triangles; otherwise, only concave polygons will be subdivided, and
 * convex polygons will be copied unchanged into the container.
 */ 2 4 this 3 2303  11 convex_also 1 2052  
838 0 0 7 1038 2135 0 0 0 0 
839 0 0 15 1043 2307 1849 0 10 /**
 *
 */ 1 4 copy 1 2305  
840 0 0 7 1043 2307 1849 0 10 /**
 *
 */ 1 4 name 5 2143  
841 0 0 7 1044 2307 1849 0 10 /**
 *
 */ 2 4 this 3 2307  4 copy 1 2305  
842 0 0 4 1045 2139 0 0 306 /**
 * Prepares a new curve definition with the indicated order and number of
 * knots.  This also implies a particular number of vertices as well (the
 * number of knots minus the order), but it is up to the user to add the
 * correct number of vertices to the curve by repeatedly calling push_back().
 */ 3 4 this 3 2307  5 order 1 2007  9 num_knots 1 2007  
843 0 0 4 1046 2139 0 0 273 /**
 * Directly changes the order to the indicated value (which must be an integer
 * in the range 1 <= order <= 4).  If possible, it is preferable to use the
 * setup() method instead of this method, since changing the order directly
 * may result in an invalid curve.
 */ 2 4 this 3 2307  5 order 1 2007  
844 0 0 4 1047 2139 0 0 361 /**
 * Directly changes the number of knots.  This will either add zero-valued
 * knots onto the end, or truncate knot values from the end, depending on
 * whether the list is being increased or decreased.  If possible, it is
 * preferable to use the setup() method instead of directly setting the number
 * of knots, as this may result in an invalid curve.
 */ 2 4 this 3 2307  3 num 1 2007  
845 0 0 4 1048 2139 0 0 199 /**
 * Resets the value of the indicated knot as indicated.  k must be in the
 * range 0 <= k < get_num_knots(), and the value must be in the range
 * get_knot(k - 1) <= value <= get_knot(k + 1).
 */ 3 4 this 3 2307  1 k 1 2007  5 value 1 2010  
846 0 0 6 1049 2052 0 0 204 /**
 * Returns true if the NURBS parameters are all internally consistent (e.g.
 * it has the right number of vertices to match its number of knots and order
 * in each dimension), or false otherwise.
 */ 1 4 this 3 2305  
847 0 0 6 1050 2007 0 0 215 /**
 * Returns the order of the curve.  The order is the degree of the NURBS
 * equation plus 1; for a typical NURBS, the order is 4.  With this
 * implementation of NURBS, the order must be in the range [1, 4].
 */ 1 4 this 3 2305  
848 0 0 6 1051 2007 0 0 82 /**
 * Returns the degree of the curve.  For a typical NURBS, the degree is 3.
 */ 1 4 this 3 2305  
849 0 0 6 1052 2007 0 0 39 /**
 * Returns the number of knots.
 */ 1 4 this 3 2305  
850 0 0 6 1053 2007 0 0 367 /**
 * Returns the total number of control vertices that *should* be defined for
 * the curve.  This is determined by the number of knots and the order, in
 * each direction; it does not necessarily reflect the number of vertices that
 * have actually been added to the curve.  (However, if the number of vertices
 * in the curve are wrong, the curve is invalid.)
 */ 1 4 this 3 2305  
851 0 0 6 1054 2052 0 0 204 /**
 * Returns true if the curve appears to be closed.  Since the Egg syntax does
 * not provide a means for explicit indication of closure, this has to be
 * guessed at by examining the curve itself.
 */ 1 4 this 3 2305  
852 0 0 6 1055 2010 0 0 46 /**
 * Returns the nth knot value defined.
 */ 2 4 this 3 2305  1 k 1 2007  
853 0 0 7 1061 2135 0 0 0 0 
854 0 0 7 1064 2308 1856 0 10 /**
 *
 */ 2 4 this 3 2308  4 copy 1 2309  
855 0 0 4 1065 2139 0 0 300 /**
 * Sets the number of subdivisions in the U direction that will be requested
 * across the surface.  (This doesn't necessary guarantee that this number of
 * subdivisions will be made; it's just a hint to any surface renderer or
 * quick tesselator.)  Set the number to 0 to disable the hint.
 */ 2 4 this 3 2308  6 subdiv 1 2007  
856 0 0 6 1066 2007 0 0 134 /**
 * Returns the requested number of subdivisions in the U direction, or 0 if no
 * particular subdivisions have been requested.
 */ 1 4 this 3 2309  
857 0 0 4 1067 2139 0 0 300 /**
 * Sets the number of subdivisions in the U direction that will be requested
 * across the surface.  (This doesn't necessary guarantee that this number of
 * subdivisions will be made; it's just a hint to any surface renderer or
 * quick tesselator.)  Set the number to 0 to disable the hint.
 */ 2 4 this 3 2308  6 subdiv 1 2007  
858 0 0 6 1068 2007 0 0 134 /**
 * Returns the requested number of subdivisions in the U direction, or 0 if no
 * particular subdivisions have been requested.
 */ 1 4 this 3 2309  
859 0 0 7 1069 2135 0 0 0 0 
860 0 0 15 1080 2313 1886 0 10 /**
 *
 */ 1 4 copy 1 2311  
861 0 0 7 1080 2313 1886 0 10 /**
 *
 */ 1 4 name 5 2143  
862 0 0 7 1081 2313 1886 0 10 /**
 *
 */ 2 4 this 3 2313  4 copy 1 2311  
863 0 0 4 1082 2139 0 0 349 /**
 * Prepares a new surface definition with the indicated order and number of
 * knots in each dimension.  This also implies a particular number of vertices
 * in each dimension as well (the number of knots minus the order), but it is
 * up to the user to add the correct number of vertices to the surface by
 * repeatedly calling push_back().
 */ 5 4 this 3 2313  7 u_order 1 2007  7 v_order 1 2007  11 num_u_knots 1 2007  11 num_v_knots 1 2007  
864 0 0 4 1083 2139 0 0 296 /**
 * Directly changes the order in the U direction to the indicated value (which
 * must be an integer in the range 1 <= u_order <= 4).  If possible, it is
 * preferable to use the setup() method instead of this method, since changing
 * the order directly may result in an invalid surface.
 */ 2 4 this 3 2313  7 u_order 1 2007  
865 0 0 4 1084 2139 0 0 296 /**
 * Directly changes the order in the V direction to the indicated value (which
 * must be an integer in the range 1 <= v_order <= 4).  If possible, it is
 * preferable to use the setup() method instead of this method, since changing
 * the order directly may result in an invalid surface.
 */ 2 4 this 3 2313  7 v_order 1 2007  
866 0 0 4 1085 2139 0 0 382 /**
 * Directly changes the number of knots in the U direction.  This will either
 * add zero-valued knots onto the end, or truncate knot values from the end,
 * depending on whether the list is being increased or decreased.  If
 * possible, it is preferable to use the setup() method instead of directly
 * setting the number of knots, as this may result in an invalid surface.
 */ 2 4 this 3 2313  3 num 1 2007  
867 0 0 4 1086 2139 0 0 382 /**
 * Directly changes the number of knots in the V direction.  This will either
 * add zero-valued knots onto the end, or truncate knot values from the end,
 * depending on whether the list is being increased or decreased.  If
 * possible, it is preferable to use the setup() method instead of directly
 * setting the number of knots, as this may result in an invalid surface.
 */ 2 4 this 3 2313  3 num 1 2007  
868 0 0 4 1087 2139 0 0 205 /**
 * Resets the value of the indicated knot as indicated.  k must be in the
 * range 0 <= k < get_num_u_knots(), and the value must be in the range
 * get_u_knot(k - 1) <= value <= get_u_knot(k + 1).
 */ 3 4 this 3 2313  1 k 1 2007  5 value 1 2010  
869 0 0 4 1088 2139 0 0 205 /**
 * Resets the value of the indicated knot as indicated.  k must be in the
 * range 0 <= k < get_num_v_knots(), and the value must be in the range
 * get_v_knot(k - 1) <= value <= get_v_knot(k + 1).
 */ 3 4 this 3 2313  1 k 1 2007  5 value 1 2010  
870 0 0 4 1089 2139 0 0 202 /**
 * Redefines the control vertex associated with a particular u, v coordinate
 * pair.  This is just a shorthand to access the EggPrimitive's normal vertex
 * assignment for a 2-d control vertex.
 */ 4 4 this 3 2313  2 ui 1 2007  2 vi 1 2007  6 vertex 1 2089  
871 0 0 6 1090 2052 0 0 204 /**
 * Returns true if the NURBS parameters are all internally consistent (e.g.
 * it has the right number of vertices to match its number of knots and order
 * in each dimension), or false otherwise.
 */ 1 4 this 3 2311  
872 0 0 6 1091 2007 0 0 235 /**
 * Returns the order of the surface in the U direction.  The order is the
 * degree of the NURBS equation plus 1; for a typical NURBS, the order is 4.
 * With this implementation of NURBS, the order must be in the range [1, 4].
 */ 1 4 this 3 2311  
873 0 0 6 1092 2007 0 0 235 /**
 * Returns the order of the surface in the V direction.  The order is the
 * degree of the NURBS equation plus 1; for a typical NURBS, the order is 4.
 * With this implementation of NURBS, the order must be in the range [1, 4].
 */ 1 4 this 3 2311  
874 0 0 6 1093 2007 0 0 106 /**
 * Returns the degree of the surface in the U direction.  For a typical NURBS,
 * the degree is 3.
 */ 1 4 this 3 2311  
875 0 0 6 1094 2007 0 0 106 /**
 * Returns the degree of the surface in the V direction.  for a typical NURBS,
 * the degree is 3.
 */ 1 4 this 3 2311  
876 0 0 6 1095 2007 0 0 58 /**
 * Returns the number of knots in the U direction.
 */ 1 4 this 3 2311  
877 0 0 6 1096 2007 0 0 58 /**
 * Returns the number of knots in the V direction.
 */ 1 4 this 3 2311  
878 0 0 6 1097 2007 0 0 351 /**
 * Returns the number of control vertices that should be present in the U
 * direction.  This is determined by the number of knots and the order; it
 * does not necessarily reflect the number of vertices that have actually been
 * added to the surface.  (However, if the number of vertices in the surface
 * are wrong, the surface is invalid.)
 */ 1 4 this 3 2311  
879 0 0 6 1098 2007 0 0 351 /**
 * Returns the number of control vertices that should be present in the V
 * direction.  This is determined by the number of knots and the order; it
 * does not necessarily reflect the number of vertices that have actually been
 * added to the surface.  (However, if the number of vertices in the surface
 * are wrong, the surface is invalid.)
 */ 1 4 this 3 2311  
880 0 0 6 1099 2007 0 0 375 /**
 * Returns the total number of control vertices that *should* be defined for
 * the surface.  This is determined by the number of knots and the order, in
 * each direction; it does not necessarily reflect the number of vertices that
 * have actually been added to the surface.  (However, if the number of
 * vertices in the surface are wrong, the surface is invalid.)
 */ 1 4 this 3 2311  
881 0 0 6 1100 2007 0 0 265 /**
 * Returns the U index number of the given vertex within the EggPrimitive's
 * linear list of vertices.  An EggNurbsSurface maps a linear list of vertices
 * to its 2-d mesh; this returns the U index number that corresponds to the
 * nth vertex in the list.
 */ 2 4 this 3 2311  12 vertex_index 1 2007  
882 0 0 6 1101 2007 0 0 265 /**
 * Returns the V index number of the given vertex within the EggPrimitive's
 * linear list of vertices.  An EggNurbsSurface maps a linear list of vertices
 * to its 2-d mesh; this returns the V index number that corresponds to the
 * nth vertex in the list.
 */ 2 4 this 3 2311  12 vertex_index 1 2007  
883 0 0 6 1102 2007 0 0 111 /**
 * Returns the index number within the EggPrimitive's list of the control
 * vertex at position ui, vi.
 */ 3 4 this 3 2311  2 ui 1 2007  2 vi 1 2007  
884 0 0 6 1103 2052 0 0 227 /**
 * Returns true if the surface appears to be closed in the U direction.  Since
 * the Egg syntax does not provide a means for explicit indication of closure,
 * this has to be guessed at by examining the surface itself.
 */ 1 4 this 3 2311  
885 0 0 6 1104 2052 0 0 227 /**
 * Returns true if the surface appears to be closed in the V direction.  Since
 * the Egg syntax does not provide a means for explicit indication of closure,
 * this has to be guessed at by examining the surface itself.
 */ 1 4 this 3 2311  
886 0 0 6 1105 2010 0 0 65 /**
 * Returns the nth knot value defined in the U direction.
 */ 2 4 this 3 2311  1 k 1 2007  
887 0 0 6 1107 2010 0 0 65 /**
 * Returns the nth knot value defined in the V direction.
 */ 2 4 this 3 2311  1 k 1 2007  
888 0 0 7 1109 2089 1191 0 68 /**
 * Returns the control vertex at the indicate U, V position.
 */ 3 4 this 3 2311  2 ui 1 2007  2 vi 1 2007  
889 0 0 7 1110 2135 0 0 0 0 
890 0 0 15 1113 2316 1890 0 10 /**
 *
 */ 1 4 copy 1 2314  
891 0 0 7 1113 2316 1890 0 10 /**
 *
 */ 1 4 name 5 2143  
892 0 0 7 1114 2316 1890 0 10 /**
 *
 */ 2 4 this 3 2316  4 copy 1 2314  
893 0 0 7 1115 2135 0 0 0 0 
894 0 0 15 1118 2319 1902 0 10 /**
 *
 */ 1 4 copy 1 2317  
895 0 0 7 1118 2319 1902 0 10 /**
 *
 */ 1 4 name 5 2143  
896 0 0 7 1119 2319 1902 0 10 /**
 *
 */ 2 4 this 3 2319  4 copy 1 2317  
897 0 0 6 1120 2052 0 0 10 /**
 *
 */ 1 4 this 3 2317  
898 0 0 6 1121 2010 0 0 109 /**
 * Returns the thickness set on this particular point.  If there is no
 * thickness set, returns 1.0.
 */ 1 4 this 3 2317  
899 0 0 4 1122 2139 0 0 10 /**
 *
 */ 2 4 this 3 2319  5 thick 1 2010  
900 0 0 4 1123 2139 0 0 10 /**
 *
 */ 1 4 this 3 2319  
901 0 0 6 1124 2052 0 0 10 /**
 *
 */ 1 4 this 3 2317  
902 0 0 6 1125 2052 0 0 125 /**
 * Returns the perspective flag set on this particular point.  If there is no
 * perspective flag set, returns false.
 */ 1 4 this 3 2317  
903 0 0 4 1126 2139 0 0 10 /**
 *
 */ 2 4 this 3 2319  11 perspective 1 2052  
904 0 0 4 1127 2139 0 0 10 /**
 *
 */ 1 4 this 3 2319  
905 0 0 7 1128 2135 0 0 0 0 
906 0 0 7 1133 2320 1906 0 10 /**
 *
 */ 0 
907 0 0 4 1134 2139 0 0 316 /**
 * Sets the set of properties that determines which polygons are allowed to be
 * grouped together into a single polyset.  This is the bitwise 'or' of all
 * the properties that matter.  If this is 0, all polygons (within a given
 * group) will be lumped into a common polyset regardless of their properties.
 */ 2 4 this 3 2320  10 properties 1 2007  
908 0 0 7 1135 2135 0 0 0 0 
909 0 0 7 1138 2321 1909 0 10 /**
 *
 */ 0 
910 0 0 7 1139 2135 0 0 0 0 
911 0 0 15 1142 2324 1917 0 10 /**
 *
 */ 1 4 copy 1 2322  
912 0 0 7 1142 2324 1917 0 10 /**
 *
 */ 1 4 name 5 2143  
913 0 0 7 1143 2324 1917 0 10 /**
 *
 */ 2 4 this 3 2324  4 copy 1 2322  
914 0 0 6 1144 2007 0 0 100 /**
 * Returns the number of rows in the table.  For an SAnim table, each row has
 * one column.
 */ 1 4 this 3 2322  
915 0 0 6 1145 2010 0 0 106 /**
 * Returns the value at the indicated row.  Row must be in the range 0 <= row
 * < get_num_rows().
 */ 2 4 this 3 2322  3 row 1 2007  
916 0 0 4 1146 2139 0 0 106 /**
 * Changes the value at the indicated row.  Row must be in the range 0 <= row
 * < get_num_rows().
 */ 3 4 this 3 2324  3 row 1 2007  5 value 1 2010  
917 0 0 4 1147 2139 0 0 100 /**
 * Optimizes the data by collapsing a long table of duplicate values into a
 * single value.
 */ 1 4 this 3 2324  
918 0 0 7 1148 2135 0 0 0 0 
919 0 0 15 1152 2327 1925 0 10 /**
 *
 */ 1 4 copy 1 2325  
920 0 0 7 1152 2327 1925 0 10 /**
 *
 */ 1 4 name 5 2143  
921 0 0 7 1153 2327 1925 0 10 /**
 *
 */ 2 4 this 3 2327  4 copy 1 2325  
922 0 0 4 1154 2139 0 0 10 /**
 *
 */ 2 4 this 3 2327  4 type 1 2125  
923 0 0 6 1155 2125 0 0 10 /**
 *
 */ 1 4 this 3 2325  
924 0 0 6 1156 2052 0 0 90 /**
 * Returns true if the table contains a transform description, false
 * otherwise.
 */ 1 4 this 3 2325  
925 0 0 6 1157 2125 0 0 163 /**
 * Returns the TableType value associated with the given string
 * representation, or TT_invalid if the string does not match any known
 * TableType value.
 */ 1 6 string 1 2143  
926 0 0 7 1158 2135 0 0 0 0 
927 0 0 7 1161 2328 1928 0 10 /**
 *
 */ 0 
928 0 0 15 1161 2328 1928 0 10 /**
 *
 */ 1 4 copy 1 2329  
929 0 0 6 1162 2328 0 0 10 /**
 *
 */ 2 4 this 3 2328  4 copy 1 2329  
930 0 0 4 1164 2139 0 0 52 /**
 * Removes all textures from the collection.
 */ 1 4 this 3 2328  
931 0 0 6 1165 2007 0 0 209 /**
 * Walks the egg hierarchy beginning at the indicated node, and removes any
 * EggTextures encountered in the hierarchy, adding them to the collection.
 * Returns the number of EggTextures encountered.
 */ 2 4 this 3 2328  4 node 1 2001  
932 0 0 6 1166 2052 0 0 86 /**
 * Returns true if there are no EggTexures in the collection, false otherwise.
 */ 1 4 this 3 2329  
933 0 0 6 1167 2007 0 0 63 /**
 * Returns the number of EggTextures in the collection.
 */ 1 4 this 3 2329  
934 0 0 7 1168 2087 1521 0 56 /**
 * Returns the nth EggTexture in the collection.
 */ 2 4 this 3 2329  5 index 1 2007  
935 0 0 6 1170 2007 0 0 1178 /**
 * Walks the egg hierarchy beginning at the indicated node, looking for
 * textures that are referenced by primitives but are not already members of
 * the collection, adding them to the collection.
 *
 * If this is called following extract_textures(), it can be used to pick up
 * any additional texture references that appeared in the egg hierarchy (but
 * whose EggTexture node was not actually part of the hierarchy).
 *
 * If this is called in lieu of extract_textures(), it will fill up the
 * collection with all of the referenced textures (and only the referenced
 * textures), without destructively removing the EggTextures from the
 * hierarchy.
 *
 * This also has the side effect of incrementing the internal usage count for
 * a texture in the collection each time a texture reference is encountered.
 * This side effect is taken advantage of by remove_unused_textures().
 *
 * And one more side effect: this function identifies the presence of
 * multitexturing in the egg file, and calls multitexture_over() on each
 * texture appropriately so that, after this call, you may expect
 * get_multitexture_sort() to return a reasonable value for each texture.
 */ 2 4 this 3 2328  4 node 1 2147  
936 0 0 4 1171 2139 0 0 281 /**
 * Removes any textures from the collection that aren't referenced by any
 * primitives in the indicated egg hierarchy.  This also, incidentally, adds
 * textures to the collection that had been referenced by primitives but had
 * not previously appeared in the collection.
 */ 2 4 this 3 2328  4 node 1 2147  
937 0 0 6 1172 2007 0 0 409 /**
 * Walks through the collection and collapses together any separate textures
 * that are equivalent according to the indicated equivalence factor, eq (see
 * EggTexture::is_equivalent_to()).  The return value is the number of
 * textures removed.
 *
 * This flavor of collapse_equivalent_textures() automatically adjusts all the
 * primitives in the egg hierarchy to refer to the new texture pointers.
 */ 3 4 this 3 2328  2 eq 1 2007  4 node 1 2001  
938 0 0 6 1172 2007 0 0 627 /**
 * Walks through the collection and collapses together any separate textures
 * that are equivalent according to the indicated equivalence factor, eq (see
 * EggTexture::is_equivalent_to()).  The return value is the number of
 * textures removed.
 *
 * This flavor of collapse_equivalent_textures() does not adjust any
 * primitives in the egg hierarchy; instead, it fills up the 'removed' map
 * with an entry for each removed texture, mapping it back to the equivalent
 * retained texture.  It's up to the user to then call replace_textures() with
 * this map, if desired, to apply these changes to the egg hierarchy.
 */ 3 4 this 3 2328  2 eq 1 2007  7 removed 1 2331  
939 0 0 4 1173 2139 0 0 297 /**
 * Walks the egg hierarchy, changing out any reference to a texture appearing
 * on the left side of the map with its corresponding texture on the right
 * side.  This is most often done following a call to
 * collapse_equivalent_textures().  It does not directly affect the
 * Collection.
 */ 2 4 node 1 2001  7 replace 1 2334  
940 0 0 4 1174 2139 0 0 130 /**
 * Guarantees that each texture in the collection has a unique TRef name.
 * This is essential before writing an egg file.
 */ 1 4 this 3 2328  
941 0 0 4 1175 2139 0 0 153 /**
 * Sorts all the textures into alphabetical order by TRef name.  Subsequent
 * operations using begin()/end() will traverse in this sorted order.
 */ 1 4 this 3 2328  
942 0 0 4 1176 2139 0 0 202 /**
 * Sorts all the textures into alphabetical order by the basename part
 * (including extension) of the filename.  Subsequent operations using
 * begin()/end() will traverse in this sorted order.
 */ 1 4 this 3 2328  
943 0 0 7 1177 2087 1521 0 56 /**
 * Returns the nth EggTexture in the collection.
 */ 2 4 this 3 2329  1 n 1 2336  
944 0 0 6 1178 2336 0 0 63 /**
 * Returns the number of EggTextures in the collection.
 */ 1 4 this 3 2329  
945 0 0 6 1179 2052 0 0 163 /**
 * Explicitly adds a new texture to the collection.  Returns true if the
 * texture was added, false if it was already there or if there was some
 * error.
 */ 2 4 this 3 2328  7 texture 1 2087  
946 0 0 6 1180 2052 0 0 158 /**
 * Explicitly removes a texture from the collection.  Returns true if the
 * texture was removed, false if it wasn't there or if there was some error.
 */ 2 4 this 3 2328  7 texture 1 2087  
947 0 0 7 1181 2087 1521 0 214 // create_unique_texture() creates a new texture if there is not already one
// equivalent (according to eq, see EggTexture::is_equivalent_to()) to the
// indicated texture, or returns the existing one if there is. 3 4 this 3 2328  4 copy 1 2261  2 eq 1 2007  
948 0 0 7 1182 2087 1521 0 94 /**
 * Returns the texture with the indicated TRef name, or NULL if no texture
 * matches.
 */ 2 4 this 3 2329  9 tref_name 1 2143  
949 0 0 7 1183 2087 1521 0 93 /**
 * Returns the texture with the indicated filename, or NULL if no texture
 * matches.
 */ 2 4 this 3 2329  8 filename 1 2164  
950 0 0 15 1185 2339 1691 0 10 /**
 *
 */ 1 4 copy 1 2337  
951 0 0 7 1185 2339 1691 0 10 /**
 *
 */ 1 4 name 5 2143  
952 0 0 7 1186 2339 1691 0 10 /**
 *
 */ 2 4 this 3 2339  4 copy 1 2337  
953 0 0 7 1187 2135 0 0 0 0 
954 0 0 15 1189 2342 1691 0 10 /**
 *
 */ 1 4 copy 1 2340  
955 0 0 7 1189 2342 1691 0 10 /**
 *
 */ 1 4 name 5 2143  
956 0 0 7 1190 2342 1691 0 10 /**
 *
 */ 2 4 this 3 2342  4 copy 1 2340  
957 0 0 7 1191 2135 0 0 0 0 
958 0 0 23 1193 2345 1977 0 84 /**
 * Converts the older-style XfmAnim table to the newer-style XfmSAnim table.
 */ 1 12 convert_from 1 2343  
959 0 0 15 1193 2345 1977 0 10 /**
 *
 */ 1 4 copy 1 2346  
960 0 0 7 1193 2345 1977 0 10 /**
 *
 */ 2 4 name 5 2143  2 cs 5 2094  
961 0 0 7 1194 2345 1977 0 10 /**
 *
 */ 2 4 this 3 2345  4 copy 1 2346  
962 0 0 4 1195 2139 0 0 10 /**
 *
 */ 2 4 this 3 2345  3 fps 1 2010  
963 0 0 4 1196 2139 0 0 10 /**
 *
 */ 1 4 this 3 2345  
964 0 0 6 1197 2052 0 0 10 /**
 *
 */ 1 4 this 3 2346  
965 0 0 6 1198 2010 0 0 56 /**
 * This is only valid if has_fps() returns true.
 */ 1 4 this 3 2346  
966 0 0 4 1199 2139 0 0 10 /**
 *
 */ 2 4 this 3 2345  5 order 1 2143  
967 0 0 4 1200 2139 0 0 10 /**
 *
 */ 1 4 this 3 2345  
968 0 0 6 1201 2052 0 0 10 /**
 *
 */ 1 4 this 3 2346  
969 0 0 6 1202 2143 0 0 10 /**
 *
 */ 1 4 this 3 2346  
970 0 0 6 1203 2143 0 0 178 /**
 * Returns the standard order of matrix component composition.  This is what
 * the order string must be set to in order to use set_value() or add_data()
 * successfully.
 */ 0 
971 0 0 6 1204 2094 0 0 292 /**
 * Returns the coordinate system this table believes it is defined within.
 * This should always match the coordinate system of the EggData structure
 * that owns it.  It is necessary to store it here because the meaning of the
 * h, p, and r columns depends on the coordinate system.
 */ 1 4 this 3 2346  
972 0 0 4 1205 2139 0 0 66 /**
 * Optimizes the table by collapsing redundant sub-tables.
 */ 1 4 this 3 2345  
973 0 0 4 1206 2139 0 0 225 /**
 * Optimizes the table by collapsing redundant sub-tables, and simultaneously
 * ensures that the order string is the standard order (which is the same as
 * that supported by compose_matrix() and decompose_matrix()).
 */ 1 4 this 3 2345  
974 0 0 4 1207 2139 0 0 241 /**
 * The inverse operation of optimize(), this ensures that all the sub-tables
 * have the same length by duplicating rows as necessary.  This is needed
 * before doing operations like add_data() or set_value() on an existing
 * table.
 */ 1 4 this 3 2345  
975 0 0 6 1208 2007 0 0 259 /**
 * Returns the effective number of rows in the table.  This is actually the
 * number of rows of the smallest subtable larger than one row.  This is a
 * convenience function that treats the table of tables as if it were a single
 * table of matrices.
 */ 1 4 this 3 2346  
976 0 0 4 1209 2139 0 0 342 /**
 * Returns the value of the aggregate row of the table as a matrix.  This is a
 * convenience function that treats the table of tables as if it were a single
 * table of matrices.  It is an error to call this if any SAnimData children
 * of this node have an improper name (e.g.  not a single letter, or not one
 * of "ijkabchprxyz").
 */ 3 4 this 3 2346  3 row 1 2007  3 mat 1 2348  
977 0 0 6 1210 2052 0 0 387 /**
 * Replaces the indicated row of the table with the given matrix.
 *
 * This function can only be called if all the constraints of add_data(),
 * below, are met.  Call normalize() first if you are not sure.
 *
 * The return value is true if the matrix can be decomposed and stored as
 * scale, shear, rotate, and translate, or false otherwise.  The data is set
 * in either case.
 */ 3 4 this 3 2345  3 row 1 2007  3 mat 1 2150  
978 0 0 4 1211 2139 0 0 93 /**
 * Removes all data from the table.  It does this by removing all of its
 * children.
 */ 1 4 this 3 2345  
979 0 0 6 1212 2052 0 0 1136 /**
 * Adds a new matrix to the table, by adding a new row to each of the
 * subtables.
 *
 * This is a convenience function that treats the table of tables as if it
 * were a single table of matrices.  It is an error to call this if any
 * SAnimData children of this node have an improper name (e.g.  not a single
 * letter, or not one of "ijkabchprxyz").
 *
 * This function has the further requirement that all nine of the subtables
 * must exist and be of the same length.  Furthermore, the order string must
 * be the standard order string, which matches the system compose_matrix() and
 * decompose_matrix() functions.
 *
 * Thus, you probably cannot take an existing EggXfmSAnim object and start
 * adding matrices to the end; you must clear out the original data first.
 * (As a special exception, if no tables exist, they will be created.)  The
 * method normalize() will do this for you on an existing EggXfmSAnim.
 *
 * This function may fail silently if the matrix cannot be decomposed into
 * scale, shear, rotate, and translate.  In this case, the closest
 * approximation is added to the table, and false is returned.
 */ 2 4 this 3 2345  3 mat 1 2150  
980 0 0 4 1213 2139 0 0 73 /**
 * Adds a new row to the indicated component (0-12) of the table.
 */ 3 4 this 3 2345  9 component 1 2007  5 value 1 2010  
981 0 0 4 1213 2139 0 0 99 /**
 * Adds a new row to the named component (one of matrix_component_letters) of
 * the table.
 */ 3 4 this 3 2345  14 component_name 1 2143  5 value 1 2010  
982 0 0 4 1214 2139 0 0 172 /**
 * Composes a matrix out of the nine individual components, respecting the
 * order string.  The components will be applied in the order indicated by the
 * string.
 */ 7 3 mat 1 2348  5 scale 1 2238  5 shear 1 2238  3 hpr 1 2238  5 trans 1 2238  5 order 1 2143  2 cs 1 2094  
983 0 0 7 1215 2135 0 0 0 0 
984 0 0 15 1218 2349 1994 0 10 /**
 *
 */ 1 4 copy 1 2343  
985 0 0 23 1218 2349 1994 0 84 /**
 * Converts the newer-style XfmSAnim table to the older-style XfmAnim table.
 */ 1 12 convert_from 1 2346  
986 0 0 7 1218 2349 1994 0 10 /**
 *
 */ 2 4 name 5 2143  2 cs 5 2094  
987 0 0 7 1219 2349 1994 0 10 /**
 *
 */ 2 4 this 3 2349  4 copy 1 2343  
988 0 0 4 1220 2139 0 0 10 /**
 *
 */ 2 4 this 3 2349  5 order 1 2143  
989 0 0 4 1221 2139 0 0 10 /**
 *
 */ 1 4 this 3 2349  
990 0 0 6 1222 2052 0 0 10 /**
 *
 */ 1 4 this 3 2343  
991 0 0 6 1223 2143 0 0 10 /**
 *
 */ 1 4 this 3 2343  
992 0 0 6 1224 2143 0 0 178 /**
 * Returns the standard order of matrix component composition.  This is what
 * the order string must be set to in order to use set_value() or add_data()
 * successfully.
 */ 0 
993 0 0 4 1225 2139 0 0 10 /**
 *
 */ 2 4 this 3 2349  8 contents 1 2143  
994 0 0 4 1226 2139 0 0 10 /**
 *
 */ 1 4 this 3 2349  
995 0 0 6 1227 2052 0 0 10 /**
 *
 */ 1 4 this 3 2343  
996 0 0 6 1228 2143 0 0 10 /**
 *
 */ 1 4 this 3 2343  
997 0 0 6 1229 2094 0 0 292 /**
 * Returns the coordinate system this table believes it is defined within.
 * This should always match the coordinate system of the EggData structure
 * that owns it.  It is necessary to store it here because the meaning of the
 * h, p, and r columns depends on the coordinate system.
 */ 1 4 this 3 2343  
998 0 0 6 1230 2007 0 0 51 /**
 * Returns the number of rows in the table.
 */ 1 4 this 3 2343  
999 0 0 6 1231 2007 0 0 148 /**
 * Returns the number of columns in the table.  This is set according to the
 * "contents" string, which defines the meaning of each column.
 */ 1 4 this 3 2343  
1000 0 0 4 1232 2139 0 0 181 /**
 * Returns the value of the aggregate row of the table as a matrix.  This is a
 * convenience function that treats the 2-d table as if it were a single table
 * of matrices.
 */ 3 4 this 3 2343  3 row 1 2007  3 mat 1 2348  
1001 0 0 6 1232 2010 0 0 158 /**
 * Returns the value at the indicated row.  Row must be in the range 0 <= row
 * < get_num_rows(); col must be in the range 0 <= col < get_num_cols().
 */ 3 4 this 3 2343  3 row 1 2007  3 col 1 2007  
1002 0 0 7 1233 2135 0 0 0 0 
1003 0 0 7 1040 2269 1771 0 53 /**
 * Parses an EggData from the raw egg syntax.
 */ 1 10 egg_syntax 1 2143  
1004 0 0 7 1041 2147 1101 0 60 /**
 * Parses a single egg node from the raw egg syntax.
 */ 1 10 egg_syntax 1 2143  
355
1995 11 EggUserData 0 75777 11 EggUserData 11 EggUserData 0 0 0 1 1005 0 0 2 1006 1007 0 0 1 0 1996 0 0 0 0 352
/**
 * This is a base class for a user-defined data type to extend egg structures
 * in processing code.  The user of the egg library may derive from
 * EggUserData to associate any arbitrary data with various egg objects.
 *
 * However, this data will not be written out to the disk when the egg file is
 * written; it is an in-memory object only.
 */

1996 19 TypedReferenceCount 0 2048 19 TypedReferenceCount 19 TypedReferenceCount 0 0 0 0 0 0 0 0 0 0 0 0 410
/**
 * A base class for things which need to inherit from both TypedObject and
 * from ReferenceCount.  It's convenient to define this intermediate base
 * class instead of multiply inheriting from the two classes each time they
 * are needed, so that we can sensibly pass around pointers to things which
 * are both TypedObjects and ReferenceCounters.
 *
 * See also TypedObject for detailed instructions.
 */

1997 9 EggObject 0 75777 9 EggObject 9 EggObject 0 0 0 1 1008 0 0 6 1009 1010 1011 1012 1013 1014 0 0 1 0 1996 0 0 0 0 108
/**
 * The highest-level base class in the egg directory.  (Almost) all things egg
 * inherit from this.
 */

1998 14 EggNamedObject 0 141313 14 EggNamedObject 14 EggNamedObject 0 0 0 1 1019 1023 0 3 1020 1021 1022 0 0 2 3 1997 1015 1016 3 1999 1017 1018 0 0 81
/**
 * This is a fairly low-level base class--any egg object that has a name.
 */

1999 7 Namable 0 2048 7 Namable 7 Namable 0 0 0 0 0 0 0 0 0 0 0 0 125
/**
 * A base class for all things which can have a name.  The name is either
 * empty or nonempty, but it is never NULL.
 */

2000 7 EggNode 0 141313 7 EggNode 7 EggNode 0 0 0 0 1101 2 2350 2352 39 1024 1025 1026 1027 1028 1029 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 0 0 1 0 1998 0 0 0 0 194
/**
 * A base class for things that may be directly added into the egg hierarchy.
 * This includes groups, joints, polygons, vertex pools, etc., but does not
 * include things like vertices.
 */

2001 14 EggGroupNode * 0 8576 14 EggGroupNode * 14 EggGroupNode * 0 0 2002 0 0 0 0 0 0 0 0 0 0

2002 12 EggGroupNode 0 75777 12 EggGroupNode 12 EggGroupNode 0 0 0 1 1030 0 1 2351 37 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 0 0 1 0 2000 0 0 0 1 2006 417
/**
 * A base class for nodes in the hierarchy that are not leaf nodes.  (See also
 * EggGroup, which is specifically the "<Group>" node in egg.)
 *
 * An EggGroupNode is an STL-style container of pointers to EggNodes, like a
 * vector.  Functions push_back()/pop_back() and insert()/erase() are provided
 * to manipulate the list.  The list may also be operated on (read-only) via
 * iterators and begin()/end().
 */

2003 10 PyObject * 0 8576 10 PyObject * 10 PyObject * 0 0 2004 0 0 0 0 0 0 0 0 0 0

2004 8 PyObject 0 2105344 8 PyObject 8 PyObject 0 0 2005 0 0 0 0 0 0 0 0 0 0

2005 7 _object 0 1024 7 _object 7 _object 0 0 0 0 0 0 0 0 0 0 0 0 0

2006 16 TriangulateFlags 0 794624 30 EggGroupNode::TriangulateFlags 30 EggGroupNode::TriangulateFlags 2002 0 0 0 0 0 0 0 0 0 5 9 T_polygon 23 EggGroupNode::T_polygon 0
1 8 T_convex 22 EggGroupNode::T_convex 0
2 11 T_composite 25 EggGroupNode::T_composite 0
4 9 T_recurse 23 EggGroupNode::T_recurse 0
8 13 T_flat_shaded 27 EggGroupNode::T_flat_shaded 0
16 0 0

2007 3 int 0 8194 3 int 3 int 0 1 0 0 0 0 0 0 0 0 0 0 0

2008 11 EggAnimData 0 141313 11 EggAnimData 11 EggAnimData 0 0 0 0 1112 0 10 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 0 0 1 0 2000 0 0 0 0 106
/**
 * A base class for EggSAnimData and EggXfmAnimData, which contain rows and
 * columns of numbers.
 */

2009 14 EggAnimPreload 0 141313 14 EggAnimPreload 14 EggAnimPreload 0 0 0 1 1113 1124 2 2353 2354 10 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 0 0 1 0 2000 0 0 0 0 54
/**
 * This corresponds to an <AnimPreload> entry.
 */

2010 6 double 0 8194 6 double 6 double 0 3 0 0 0 0 0 0 0 0 0 0 0

2011 13 EggAttributes 0 26625 13 EggAttributes 13 EggAttributes 0 0 0 1 1127 1129 2 2355 2356 18 1128 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1148 0 0 1 3 2012 1125 1126 0 0 340
/**
 * The set of attributes that may be applied to vertices as well as polygons,
 * such as surface normal and color.
 *
 * This class cannot inherit from EggObject, because it causes problems at the
 * EggPolygon level with multiple appearances of the EggObject base class.
 * And making EggObject a virtual base class is just no fun.
 */

2012 10 MemoryBase 0 2048 10 MemoryBase 10 MemoryBase 0 0 0 0 0 0 0 0 0 0 0 0 428
/**
 * This class is intended to be the base class of all objects in Panda that
 * might be allocated and deleted via the new and delete operators.  It
 * redefines these operators to provide some memory tracking support.
 *
 * We used to try to override the global operator new and delete methods, but
 * that seems to cause problems when including header files for C++-based
 * system libraries (such as are found on OSX).
 */

2013 18 EggMorphNormalList 0 2105344 18 EggMorphNormalList 18 EggMorphNormalList 0 0 2014 0 0 0 0 0 0 0 0 0 0

2014 30 EggMorphList< EggMorphNormal > 0 1050624 30 EggMorphList< EggMorphNormal > 30 EggMorphList< EggMorphNormal > 0 0 0 0 0 0 0 0 0 0 0 0 0

2015 17 EggMorphColorList 0 2105344 17 EggMorphColorList 17 EggMorphColorList 0 0 2016 0 0 0 0 0 0 0 0 0 0

2016 29 EggMorphList< EggMorphColor > 0 1050624 29 EggMorphList< EggMorphColor > 29 EggMorphList< EggMorphColor > 0 0 0 0 0 0 0 0 0 0 0 0 0

2017 11 EggVertexUV 0 75777 11 EggVertexUV 11 EggVertexUV 0 0 0 1 1149 1023 1 2357 25 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1175 0 0 1 0 1998 0 0 0 0 188
/**
 * The set of UV's that may or may not be assigned to a vertex.  To support
 * multitexturing, there may be multiple sets of UV's on a particular vertex,
 * each with its own name.
 */

2018 20 EggMorphTexCoordList 0 2105344 20 EggMorphTexCoordList 20 EggMorphTexCoordList 0 0 2019 0 0 0 0 0 0 0 0 0 0

2019 32 EggMorphList< EggMorphTexCoord > 0 1050624 32 EggMorphList< EggMorphTexCoord > 32 EggMorphList< EggMorphTexCoord > 0 0 0 0 0 0 0 0 0 0 0 0 0

2020 12 EggVertexAux 0 75777 12 EggVertexAux 12 EggVertexAux 0 0 0 1 1176 1023 0 8 1177 1178 1179 1180 1181 1182 1183 1184 0 0 1 0 1998 0 0 0 0 267
/**
 * The set of named auxiliary data that may or may not be assigned to a
 * vertex.  Panda will import this data and create a custom column for it in
 * the vertex data, but will not otherwise interpret it.  Presumably, a shader
 * will process the data later.
 */

2021 9 EggVertex 0 26625 9 EggVertex 9 EggVertex 0 0 0 1 1189 1191 1 2358 47 1190 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1238 0 0 2 3 1997 1185 1186 3 2011 1187 1188 0 0 106
/**
 * Any one-, two-, three-, or four-component vertex, possibly with attributes
 * such as a normal.
 */

2022 18 EggMorphVertexList 0 2105344 18 EggMorphVertexList 18 EggMorphVertexList 0 0 2023 0 0 0 0 0 0 0 0 0 0

2023 30 EggMorphList< EggMorphVertex > 0 1050624 30 EggMorphList< EggMorphVertex > 30 EggMorphList< EggMorphVertex > 0 0 0 0 0 0 0 0 0 0 0 0 0

2024 13 EggVertexPool 0 75777 13 EggVertexPool 13 EggVertexPool 0 0 0 1 1239 1101 0 28 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 0 0 1 0 2000 0 0 0 0 553
/**
 * A collection of vertices.  There may be any number of vertex pools in a
 * single egg structure.  The vertices in a single pool need not necessarily
 * have any connection to each other, but it is necessary that any one
 * primitive (e.g.  a polygon) must pull all its vertices from the same pool.
 *
 * An EggVertexPool is an STL-style container of pointers to EggVertex's.
 * Functions add_vertex() and remove_vertex() are provided to manipulate the
 * list.  The list may also be operated on (read-only) via iterators and
 * begin()/end().
 */

2025 13 EggRenderMode 0 141313 13 EggRenderMode 13 EggRenderMode 0 0 0 1 1268 1299 0 30 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 0 0 0 0 4 2026 2027 2028 2029 516
/**
 * This class stores miscellaneous rendering properties that is associated
 * with geometry, and which may be set on the geometry primitive level, on the
 * group above it, or indirectly via a texture.  It's intended to be a base
 * class for egg objects that can have these properties set.
 *
 * This class cannot inherit from EggObject, because it causes problems at the
 * EggPolygon level with multiple appearances of the EggObject base class.
 * And making EggObject a virtual base class is just no fun.
 */

2026 9 AlphaMode 0 794624 24 EggRenderMode::AlphaMode 24 EggRenderMode::AlphaMode 2025 0 0 0 0 0 0 0 0 0 10 14 AM_unspecified 29 EggRenderMode::AM_unspecified 0
0 6 AM_off 21 EggRenderMode::AM_off 19
// No transparency.
1 5 AM_on 20 EggRenderMode::AM_on 37
// Use whatever the default model is.
2 8 AM_blend 23 EggRenderMode::AM_blend 59
// Normal alpha blending, e.g. TransparencyAttrib::M_alpha.
3 19 AM_blend_no_occlude 34 EggRenderMode::AM_blend_no_occlude 34
// Alpha blending w/o depth write.
4 5 AM_ms 20 EggRenderMode::AM_ms 36
// TransparencyAttrib::M_multisample
5 10 AM_ms_mask 25 EggRenderMode::AM_ms_mask 41
// TransparencyAttrib::M_multisample_mask
6 9 AM_binary 24 EggRenderMode::AM_binary 31
// TransparencyAttrib::M_binary
7 7 AM_dual 22 EggRenderMode::AM_dual 29
// TransparencyAttrib::M_dual
8 16 AM_premultiplied 31 EggRenderMode::AM_premultiplied 44
// TransparencyAttrib::M_premultiplied_alpha
9 0 44
// Specifies implementation of transparency.

2027 14 DepthWriteMode 0 794624 29 EggRenderMode::DepthWriteMode 29 EggRenderMode::DepthWriteMode 2025 0 0 0 0 0 0 0 0 0 3 15 DWM_unspecified 30 EggRenderMode::DWM_unspecified 0
0 7 DWM_off 22 EggRenderMode::DWM_off 0
1 6 DWM_on 21 EggRenderMode::DWM_on 0
2 0 0

2028 13 DepthTestMode 0 794624 28 EggRenderMode::DepthTestMode 28 EggRenderMode::DepthTestMode 2025 0 0 0 0 0 0 0 0 0 3 15 DTM_unspecified 30 EggRenderMode::DTM_unspecified 0
0 7 DTM_off 22 EggRenderMode::DTM_off 0
1 6 DTM_on 21 EggRenderMode::DTM_on 0
2 0 0

2029 14 VisibilityMode 0 794624 29 EggRenderMode::VisibilityMode 29 EggRenderMode::VisibilityMode 2025 0 0 0 0 0 0 0 0 0 3 14 VM_unspecified 29 EggRenderMode::VM_unspecified 0
0 9 VM_hidden 24 EggRenderMode::VM_hidden 0
1 9 VM_normal 24 EggRenderMode::VM_normal 0
2 0 0

2030 12 EggTransform 0 26625 12 EggTransform 12 EggTransform 0 0 0 1 1300 1302 0 30 1301 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 0 0 0 0 1 2031 313
/**
 * This represents the <Transform> entry of a group or texture node: a list of
 * component transform operations, applied in order, that describe a net
 * transform matrix.
 *
 * This may be either a 3-d transform, and therefore described by a 4x4
 * matrix, or a 2-d transform, described by a 3x3 matrix.
 */

2031 13 ComponentType 0 794624 27 EggTransform::ComponentType 27 EggTransform::ComponentType 2030 0 0 0 0 0 0 0 0 0 13 10 CT_invalid 24 EggTransform::CT_invalid 0
0 14 CT_translate2d 28 EggTransform::CT_translate2d 0
1 14 CT_translate3d 28 EggTransform::CT_translate3d 0
2 11 CT_rotate2d 25 EggTransform::CT_rotate2d 0
3 7 CT_rotx 21 EggTransform::CT_rotx 0
4 7 CT_roty 21 EggTransform::CT_roty 0
5 7 CT_rotz 21 EggTransform::CT_rotz 0
6 11 CT_rotate3d 25 EggTransform::CT_rotate3d 0
7 10 CT_scale2d 24 EggTransform::CT_scale2d 0
8 10 CT_scale3d 24 EggTransform::CT_scale3d 0
9 16 CT_uniform_scale 30 EggTransform::CT_uniform_scale 0
10 10 CT_matrix3 24 EggTransform::CT_matrix3 0
11 10 CT_matrix4 24 EggTransform::CT_matrix4 0
12 0 0

2032 18 EggSwitchCondition 0 141313 18 EggSwitchCondition 18 EggSwitchCondition 0 0 0 0 1336 0 4 1332 1333 1334 1335 0 0 1 0 1997 0 0 0 0 340
/**
 * This corresponds to a <SwitchCondition> entry within a group.  It indicates
 * the condition at which a level-of-detail is switched in or out.  This is
 * actually an abstract base class for potentially any number of specific
 * different kinds of switching conditions; presently, only a <Distance> type
 * is actually supported.
 */

2033 26 EggSwitchConditionDistance 0 141313 26 EggSwitchConditionDistance 26 EggSwitchConditionDistance 0 0 0 1 1337 1339 0 1 1338 0 0 1 0 2032 0 0 0 0 112
/**
 * A SwitchCondition that switches the levels-of-detail based on distance from
 * the camera's eyepoint.
 */

2034 8 EggGroup 0 26625 8 EggGroup 8 EggGroup 0 0 0 1 1346 1348 32 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 136 1347 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 2 2449 2450 0 3 3 2002 1340 1341 3 2025 1342 1343 3 2030 1344 1345 0 10 2035 2037 2039 2040 2041 2042 2043 2044 2045 2046 118
/**
 * The main glue of the egg hierarchy, this corresponds to the <Group>,
 * <Instance>, and <Joint> type nodes.
 */

2035 9 VertexRef 0 2367488 19 EggGroup::VertexRef 19 EggGroup::VertexRef 2034 0 2036 0 0 0 0 0 0 0 0 0 0

2036 27 map< PT_EggVertex, double > 0 2048 27 map< PT_EggVertex, double > 27 map< PT_EggVertex, double > 0 0 0 0 0 0 0 0 0 0 0 0 0

2037 7 TagData 0 2367488 17 EggGroup::TagData 17 EggGroup::TagData 2034 0 2038 0 0 0 0 0 0 0 0 0 0

2038 21 map< string, string > 0 2048 31 map< std::string, std::string > 31 map< std::string, std::string > 0 0 0 0 0 0 0 0 0 0 0 0 0

2039 9 GroupType 0 794624 19 EggGroup::GroupType 19 EggGroup::GroupType 2034 0 0 0 0 0 0 0 0 0 4 10 GT_invalid 20 EggGroup::GT_invalid 58
// The bits here must correspond to those in Flags, below.
-1 8 GT_group 18 EggGroup::GT_group 0
0 11 GT_instance 21 EggGroup::GT_instance 0
1 8 GT_joint 18 EggGroup::GT_joint 0
2 0 49
// These bits are all stored somewhere in _flags.

2040 7 DCSType 0 794624 17 EggGroup::DCSType 17 EggGroup::DCSType 2034 0 0 0 0 0 0 0 0 0 6 14 DC_unspecified 24 EggGroup::DC_unspecified 59
// The bits here must correspond to those in Flags2, below.
0 7 DC_none 17 EggGroup::DC_none 0
16 8 DC_local 18 EggGroup::DC_local 0
32 6 DC_net 16 EggGroup::DC_net 0
48 11 DC_no_touch 21 EggGroup::DC_no_touch 0
64 10 DC_default 20 EggGroup::DC_default 0
80 0 0

2041 13 BillboardType 0 794624 23 EggGroup::BillboardType 23 EggGroup::BillboardType 2034 0 0 0 0 0 0 0 0 0 4 7 BT_none 17 EggGroup::BT_none 58
// The bits here must correspond to those in Flags, below.
0 7 BT_axis 17 EggGroup::BT_axis 0
32 24 BT_point_camera_relative 34 EggGroup::BT_point_camera_relative 0
64 23 BT_point_world_relative 33 EggGroup::BT_point_world_relative 0
128 0 0

2042 18 CollisionSolidType 0 794624 28 EggGroup::CollisionSolidType 28 EggGroup::CollisionSolidType 2034 0 0 0 0 0 0 0 0 0 9 8 CST_none 18 EggGroup::CST_none 97
// The bits here must correspond to those in Flags, below, and they must
// fit within F_cs_type.
0 9 CST_plane 19 EggGroup::CST_plane 0
65536 11 CST_polygon 21 EggGroup::CST_polygon 0
131072 11 CST_polyset 21 EggGroup::CST_polyset 0
196608 10 CST_sphere 20 EggGroup::CST_sphere 0
262144 8 CST_tube 18 EggGroup::CST_tube 0
327680 14 CST_inv_sphere 24 EggGroup::CST_inv_sphere 0
393216 7 CST_box 17 EggGroup::CST_box 0
458752 14 CST_floor_mesh 24 EggGroup::CST_floor_mesh 0
524288 0 0

2043 12 CollideFlags 0 794624 22 EggGroup::CollideFlags 22 EggGroup::CollideFlags 2034 0 0 0 0 0 0 0 0 0 9 7 CF_none 17 EggGroup::CF_none 103
// The bits here must correspond to those in Flags, below, and they must
// fit within F_collide_flags.
0 10 CF_descend 20 EggGroup::CF_descend 0
1048576 8 CF_event 18 EggGroup::CF_event 0
2097152 7 CF_keep 17 EggGroup::CF_keep 0
4194304 8 CF_solid 18 EggGroup::CF_solid 0
8388608 9 CF_center 19 EggGroup::CF_center 0
16777216 12 CF_turnstile 22 EggGroup::CF_turnstile 0
33554432 8 CF_level 18 EggGroup::CF_level 0
67108864 13 CF_intangible 23 EggGroup::CF_intangible 0
134217728 0 0

2044 8 DartType 0 794624 18 EggGroup::DartType 18 EggGroup::DartType 2034 0 0 0 0 0 0 0 0 0 5 7 DT_none 17 EggGroup::DT_none 58
// The bits here must correspond to those in Flags, below.
0 13 DT_structured 23 EggGroup::DT_structured 0
268435456 7 DT_sync 17 EggGroup::DT_sync 0
536870912 9 DT_nosync 19 EggGroup::DT_nosync 0
805306368 10 DT_default 20 EggGroup::DT_default 0
1073741824 0 0

2045 9 BlendMode 0 794624 19 EggGroup::BlendMode 19 EggGroup::BlendMode 2034 0 0 0 0 0 0 0 0 0 7 14 BM_unspecified 24 EggGroup::BM_unspecified 0
0 7 BM_none 17 EggGroup::BM_none 0
1 6 BM_add 16 EggGroup::BM_add 0
2 11 BM_subtract 21 EggGroup::BM_subtract 0
3 15 BM_inv_subtract 25 EggGroup::BM_inv_subtract 0
4 6 BM_min 16 EggGroup::BM_min 0
5 6 BM_max 16 EggGroup::BM_max 0
6 0 68
// These correspond to ColorBlendAttrib::Mode (but not numerically).

2046 12 BlendOperand 0 794624 22 EggGroup::BlendOperand 22 EggGroup::BlendOperand 2034 0 0 0 0 0 0 0 0 0 20 14 BO_unspecified 24 EggGroup::BO_unspecified 0
0 7 BO_zero 17 EggGroup::BO_zero 0
1 6 BO_one 16 EggGroup::BO_one 0
2 17 BO_incoming_color 27 EggGroup::BO_incoming_color 0
3 27 BO_one_minus_incoming_color 37 EggGroup::BO_one_minus_incoming_color 0
4 16 BO_fbuffer_color 26 EggGroup::BO_fbuffer_color 0
5 26 BO_one_minus_fbuffer_color 36 EggGroup::BO_one_minus_fbuffer_color 0
6 17 BO_incoming_alpha 27 EggGroup::BO_incoming_alpha 0
7 27 BO_one_minus_incoming_alpha 37 EggGroup::BO_one_minus_incoming_alpha 0
8 16 BO_fbuffer_alpha 26 EggGroup::BO_fbuffer_alpha 0
9 26 BO_one_minus_fbuffer_alpha 36 EggGroup::BO_one_minus_fbuffer_alpha 0
10 17 BO_constant_color 27 EggGroup::BO_constant_color 0
11 27 BO_one_minus_constant_color 37 EggGroup::BO_one_minus_constant_color 0
12 17 BO_constant_alpha 27 EggGroup::BO_constant_alpha 0
13 27 BO_one_minus_constant_alpha 37 EggGroup::BO_one_minus_constant_alpha 0
14 26 BO_incoming_color_saturate 36 EggGroup::BO_incoming_color_saturate 0
15 14 BO_color_scale 24 EggGroup::BO_color_scale 0
16 24 BO_one_minus_color_scale 34 EggGroup::BO_one_minus_color_scale 0
17 14 BO_alpha_scale 24 EggGroup::BO_alpha_scale 0
18 24 BO_one_minus_alpha_scale 34 EggGroup::BO_one_minus_alpha_scale 0
19 0 71
// These correspond to ColorBlendAttrib::Operand (but not numerically).

2047 14 LPoint3d const 0 8832 14 LPoint3d const 14 LPoint3d const 0 0 2048 0 0 0 0 0 0 0 0 0 0

2048 8 LPoint3d 0 2048 8 LPoint3d 8 LPoint3d 0 0 0 0 0 0 0 0 0 0 0 0 337
/**
 * This is a three-component point in space (as opposed to a three-component
 * vector, which represents a direction and a distance).  Some of the methods
 * are slightly different between LPoint3 and LVector3; in particular,
 * subtraction of two points yields a vector, while addition of a vector and a
 * point yields a point.
 */

2049 12 string const 0 8832 17 std::string const 17 std::string const 0 0 2050 0 0 0 0 0 0 0 0 0 0

2050 6 string 0 2105344 11 std::string 11 std::string 0 0 2051 0 0 0 0 0 0 0 0 0 0

2051 20 basic_string< char > 0 2048 25 std::basic_string< char > 25 std::basic_string< char > 0 0 0 0 0 0 0 0 0 0 0 0 0

2052 4 bool 0 8194 4 bool 4 bool 0 4 0 0 0 0 0 0 0 0 0 0 0

2053 11 CollideMask 0 2105344 11 CollideMask 11 CollideMask 0 0 2054 0 0 0 0 0 0 0 0 0 0

2054 9 BitMask32 0 2105344 9 BitMask32 9 BitMask32 0 0 2055 0 0 0 0 0 0 0 0 0 0

2055 23 BitMask< uint32_t, 32 > 0 2048 23 BitMask< uint32_t, 32 > 23 BitMask< uint32_t, 32 > 0 0 0 0 0 0 0 0 0 0 0 0 0

2056 12 LColor const 0 8832 12 LColor const 12 LColor const 0 0 2057 0 0 0 0 0 0 0 0 0 0

2057 6 LColor 0 2105344 6 LColor 6 LColor 0 0 2058 0 0 0 0 0 0 0 0 0 0

2058 7 LColorf 0 2105344 7 LColorf 7 LColorf 0 0 2059 0 0 0 0 0 0 0 0 0 0

2059 10 LVecBase4f 0 2048 10 LVecBase4f 10 LVecBase4f 0 0 0 0 0 0 0 0 0 0 0 0 77
/**
 * This is the base class for all three-component vectors and points.
 */

2060 24 EggSwitchCondition const 0 8832 24 EggSwitchCondition const 24 EggSwitchCondition const 0 0 2032 0 0 0 0 0 0 0 0 0 0

2061 18 EggTransform const 0 8832 18 EggTransform const 18 EggTransform const 0 0 2030 0 0 0 0 0 0 0 0 0 0

2062 6 EggBin 0 141313 6 EggBin 6 EggBin 0 0 0 1 1484 1488 0 3 1485 1486 1487 0 0 1 0 2034 0 0 0 0 233
/**
 * A type of group node that holds related subnodes.  This is a special kind
 * of node that will never be read in from an egg file, but can only exist in
 * the egg scene graph if it is created via the use of an EggBinMaker.
 */

2063 11 EggBinMaker 0 75777 11 EggBinMaker 11 EggBinMaker 0 0 0 0 0 0 8 1489 1490 1491 1492 1493 1494 1495 1496 0 0 1 0 1997 0 0 0 0 183
/**
 * This is a handy class for collecting related nodes together.  It is an
 * abstract class; to use it you must subclass off of it.  See the somewhat
 * lengthy comment above.
 */

2064 10 EggComment 0 141313 10 EggComment 10 EggComment 0 0 0 1 1497 1504 0 5 1498 1500 1501 1502 1503 0 1 1499 1 0 2000 0 0 0 0 74
/**
 * A comment that appears in an egg file within a <Comment> entry.
 */

2065 15 EggFilenameNode 0 141313 15 EggFilenameNode 15 EggFilenameNode 0 0 0 0 1512 0 7 1505 1506 1507 1508 1509 1510 1511 0 0 1 0 2000 0 0 0 0 208
/**
 * This is an egg node that contains a filename.  It references a physical
 * file relative to the directory the egg file was loaded in.  It is a base
 * class for EggTexture and EggExternalReference.
 */

2066 10 EggTexture 0 26625 10 EggTexture 10 EggTexture 0 0 0 1 1519 1521 31 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 118 1520 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547 1548 1549 1550 1551 1552 1553 1554 1555 1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 1570 1571 1572 1573 1574 1575 1576 1577 1578 1579 1580 1581 1582 1583 1584 1585 1586 1587 1588 1589 1590 1591 1592 1593 1594 1595 1596 1597 1598 1599 1600 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 1627 1628 1629 1630 1631 1632 1633 1634 1635 1636 1637 1638 0 0 3 3 2065 1513 1514 3 2025 1515 1516 3 2030 1517 1518 0 14 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 65
/**
 * Defines a texture map that may be applied to geometry.
 */

2067 11 Equivalence 0 794624 23 EggTexture::Equivalence 23 EggTexture::Equivalence 2066 0 0 0 0 0 0 0 0 0 7 10 E_basename 22 EggTexture::E_basename 0
1 11 E_extension 23 EggTexture::E_extension 0
2 9 E_dirname 21 EggTexture::E_dirname 0
4 19 E_complete_filename 31 EggTexture::E_complete_filename 0
7 11 E_transform 23 EggTexture::E_transform 0
8 12 E_attributes 24 EggTexture::E_attributes 0
16 11 E_tref_name 23 EggTexture::E_tref_name 0
32 0 0

2068 11 TextureType 0 794624 23 EggTexture::TextureType 23 EggTexture::TextureType 2066 0 0 0 0 0 0 0 0 0 5 14 TT_unspecified 26 EggTexture::TT_unspecified 0
0 13 TT_1d_texture 25 EggTexture::TT_1d_texture 0
1 13 TT_2d_texture 25 EggTexture::TT_2d_texture 0
2 13 TT_3d_texture 25 EggTexture::TT_3d_texture 0
3 11 TT_cube_map 23 EggTexture::TT_cube_map 0
4 0 0

2069 6 Format 0 794624 18 EggTexture::Format 18 EggTexture::Format 2066 0 0 0 0 0 0 0 0 0 21 13 F_unspecified 25 EggTexture::F_unspecified 0
0 6 F_rgba 18 EggTexture::F_rgba 0
1 6 F_rgbm 18 EggTexture::F_rgbm 0
2 8 F_rgba12 20 EggTexture::F_rgba12 0
3 7 F_rgba8 19 EggTexture::F_rgba8 0
4 7 F_rgba4 19 EggTexture::F_rgba4 0
5 7 F_rgba5 19 EggTexture::F_rgba5 0
6 5 F_rgb 17 EggTexture::F_rgb 0
7 7 F_rgb12 19 EggTexture::F_rgb12 0
8 6 F_rgb8 18 EggTexture::F_rgb8 0
9 6 F_rgb5 18 EggTexture::F_rgb5 0
10 8 F_rgb332 20 EggTexture::F_rgb332 0
11 5 F_red 17 EggTexture::F_red 0
12 7 F_green 19 EggTexture::F_green 0
13 6 F_blue 18 EggTexture::F_blue 0
14 7 F_alpha 19 EggTexture::F_alpha 0
15 11 F_luminance 23 EggTexture::F_luminance 0
16 17 F_luminance_alpha 29 EggTexture::F_luminance_alpha 0
17 21 F_luminance_alphamask 33 EggTexture::F_luminance_alphamask 0
18 6 F_srgb 18 EggTexture::F_srgb 56
// Only for compatibility with .bam, use is discouraged!
19 12 F_srgb_alpha 24 EggTexture::F_srgb_alpha 56
// Only for compatibility with .bam, use is discouraged!
20 0 0

2070 15 CompressionMode 0 794624 27 EggTexture::CompressionMode 27 EggTexture::CompressionMode 2066 0 0 0 0 0 0 0 0 0 9 10 CM_default 22 EggTexture::CM_default 0
0 6 CM_off 18 EggTexture::CM_off 0
1 5 CM_on 17 EggTexture::CM_on 0
2 7 CM_fxt1 19 EggTexture::CM_fxt1 0
3 7 CM_dxt1 19 EggTexture::CM_dxt1 0
4 7 CM_dxt2 19 EggTexture::CM_dxt2 0
5 7 CM_dxt3 19 EggTexture::CM_dxt3 0
6 7 CM_dxt4 19 EggTexture::CM_dxt4 0
7 7 CM_dxt5 19 EggTexture::CM_dxt5 0
8 0 0

2071 8 WrapMode 0 794624 20 EggTexture::WrapMode 20 EggTexture::WrapMode 2066 0 0 0 0 0 0 0 0 0 6 14 WM_unspecified 26 EggTexture::WM_unspecified 0
0 8 WM_clamp 20 EggTexture::WM_clamp 0
1 9 WM_repeat 21 EggTexture::WM_repeat 0
2 9 WM_mirror 21 EggTexture::WM_mirror 0
3 14 WM_mirror_once 26 EggTexture::WM_mirror_once 0
4 15 WM_border_color 27 EggTexture::WM_border_color 0
5 0 0

2072 10 FilterType 0 794624 22 EggTexture::FilterType 22 EggTexture::FilterType 2066 0 0 0 0 0 0 0 0 0 7 14 FT_unspecified 26 EggTexture::FT_unspecified 225
// Note that these type values match up, name-for-name, with a similar
// enumerated type in Panda's Texture object.  However, they do *not*
// match up numerically.  You must convert between them using a switch
// statement.
0 10 FT_nearest 22 EggTexture::FT_nearest 28
// Mag Filter and Min Filter
1 9 FT_linear 21 EggTexture::FT_linear 0
2 25 FT_nearest_mipmap_nearest 37 EggTexture::FT_nearest_mipmap_nearest 17
// "mipmap point"
3 24 FT_linear_mipmap_nearest 36 EggTexture::FT_linear_mipmap_nearest 18
// "mipmap linear"
4 24 FT_nearest_mipmap_linear 36 EggTexture::FT_nearest_mipmap_linear 20
// "mipmap bilinear"
5 23 FT_linear_mipmap_linear 35 EggTexture::FT_linear_mipmap_linear 21
// "mipmap trilinear"
6 0 0

2073 7 EnvType 0 794624 19 EggTexture::EnvType 19 EggTexture::EnvType 2066 0 0 0 0 0 0 0 0 0 17 14 ET_unspecified 26 EggTexture::ET_unspecified 0
0 11 ET_modulate 23 EggTexture::ET_modulate 0
1 8 ET_decal 20 EggTexture::ET_decal 0
2 8 ET_blend 20 EggTexture::ET_blend 0
3 10 ET_replace 22 EggTexture::ET_replace 0
4 6 ET_add 18 EggTexture::ET_add 0
5 20 ET_blend_color_scale 32 EggTexture::ET_blend_color_scale 0
6 16 ET_modulate_glow 28 EggTexture::ET_modulate_glow 0
7 17 ET_modulate_gloss 29 EggTexture::ET_modulate_gloss 0
8 9 ET_normal 21 EggTexture::ET_normal 0
9 16 ET_normal_height 28 EggTexture::ET_normal_height 0
10 7 ET_glow 19 EggTexture::ET_glow 0
11 8 ET_gloss 20 EggTexture::ET_gloss 0
12 9 ET_height 21 EggTexture::ET_height 0
13 11 ET_selector 23 EggTexture::ET_selector 0
14 15 ET_normal_gloss 27 EggTexture::ET_normal_gloss 0
15 11 ET_emission 23 EggTexture::ET_emission 0
16 0 0

2074 11 CombineMode 0 794624 23 EggTexture::CombineMode 23 EggTexture::CombineMode 2066 0 0 0 0 0 0 0 0 0 9 14 CM_unspecified 26 EggTexture::CM_unspecified 0
0 10 CM_replace 22 EggTexture::CM_replace 0
1 11 CM_modulate 23 EggTexture::CM_modulate 0
2 6 CM_add 18 EggTexture::CM_add 0
3 13 CM_add_signed 25 EggTexture::CM_add_signed 0
4 14 CM_interpolate 26 EggTexture::CM_interpolate 0
5 11 CM_subtract 23 EggTexture::CM_subtract 0
6 11 CM_dot3_rgb 23 EggTexture::CM_dot3_rgb 0
7 12 CM_dot3_rgba 24 EggTexture::CM_dot3_rgba 0
8 0 0

2075 14 CombineChannel 0 794624 26 EggTexture::CombineChannel 26 EggTexture::CombineChannel 2066 0 0 0 0 0 0 0 0 0 3 6 CC_rgb 18 EggTexture::CC_rgb 0
0 8 CC_alpha 20 EggTexture::CC_alpha 0
1 15 CC_num_channels 27 EggTexture::CC_num_channels 0
2 0 0

2076 12 CombineIndex 0 794624 24 EggTexture::CombineIndex 24 EggTexture::CombineIndex 2066 0 0 0 0 0 0 0 0 0 1 14 CI_num_indices 26 EggTexture::CI_num_indices 0
3 0 0

2077 13 CombineSource 0 794624 25 EggTexture::CombineSource 25 EggTexture::CombineSource 2066 0 0 0 0 0 0 0 0 0 7 14 CS_unspecified 26 EggTexture::CS_unspecified 0
0 10 CS_texture 22 EggTexture::CS_texture 0
1 11 CS_constant 23 EggTexture::CS_constant 0
2 16 CS_primary_color 28 EggTexture::CS_primary_color 0
3 11 CS_previous 23 EggTexture::CS_previous 0
4 23 CS_constant_color_scale 35 EggTexture::CS_constant_color_scale 0
5 20 CS_last_saved_result 32 EggTexture::CS_last_saved_result 0
6 0 0

2078 14 CombineOperand 0 794624 26 EggTexture::CombineOperand 26 EggTexture::CombineOperand 2066 0 0 0 0 0 0 0 0 0 5 14 CO_unspecified 26 EggTexture::CO_unspecified 0
0 12 CO_src_color 24 EggTexture::CO_src_color 0
1 22 CO_one_minus_src_color 34 EggTexture::CO_one_minus_src_color 0
2 12 CO_src_alpha 24 EggTexture::CO_src_alpha 0
3 22 CO_one_minus_src_alpha 34 EggTexture::CO_one_minus_src_alpha 0
4 0 0

2079 6 TexGen 0 794624 18 EggTexture::TexGen 18 EggTexture::TexGen 2066 0 0 0 0 0 0 0 0 0 9 14 TG_unspecified 26 EggTexture::TG_unspecified 0
0 17 TG_eye_sphere_map 29 EggTexture::TG_eye_sphere_map 0
1 17 TG_world_cube_map 29 EggTexture::TG_world_cube_map 0
2 15 TG_eye_cube_map 27 EggTexture::TG_eye_cube_map 0
3 15 TG_world_normal 27 EggTexture::TG_world_normal 0
4 13 TG_eye_normal 25 EggTexture::TG_eye_normal 0
5 17 TG_world_position 29 EggTexture::TG_world_position 0
6 15 TG_eye_position 27 EggTexture::TG_eye_position 0
7 15 TG_point_sprite 27 EggTexture::TG_point_sprite 0
8 0 0

2080 12 QualityLevel 0 794624 24 EggTexture::QualityLevel 24 EggTexture::QualityLevel 2066 0 0 0 0 0 0 0 0 0 5 14 QL_unspecified 26 EggTexture::QL_unspecified 0
0 10 QL_default 22 EggTexture::QL_default 0
1 10 QL_fastest 22 EggTexture::QL_fastest 0
2 9 QL_normal 21 EggTexture::QL_normal 0
3 7 QL_best 19 EggTexture::QL_best 0
4 0 0

2081 14 Filename const 0 8832 14 Filename const 14 Filename const 0 0 2082 0 0 0 0 0 0 0 0 0 0

2082 8 Filename 0 2048 8 Filename 8 Filename 0 0 0 0 0 0 0 0 0 0 0 0 839
/**
 * The name of a file, such as a texture file or an Egg file.  Stores the full
 * pathname, and includes functions for extracting out the directory prefix
 * part and the file extension and stuff.
 *
 * A Filename is also aware of the mapping between the Unix-like filename
 * convention we use internally, and the local OS's specific filename
 * convention, and it knows how to perform basic OS-specific I/O, like testing
 * for file existence and searching a searchpath, as well as the best way to
 * open an fstream for reading or writing.
 *
 * Note that the methods of Filename that interact with the filesystem (such
 * as exists(), open_read(), etc.) directly interface with the operating system
 * and are not aware of Panda's virtual file system.  To interact with the VFS,
 * use the methods on VirtualFileSystem instead.
 */

2083 11 EggMaterial 0 141313 11 EggMaterial 11 EggMaterial 0 0 0 1 1639 1683 10 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 43 1640 1641 1642 1643 1644 1645 1646 1647 1648 1649 1650 1651 1652 1653 1654 1655 1656 1657 1658 1659 1660 1661 1662 1663 1664 1665 1666 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 1682 0 0 1 0 2000 0 0 0 1 2084 10
/**
 *
 */

2084 11 Equivalence 0 794624 24 EggMaterial::Equivalence 24 EggMaterial::Equivalence 2083 0 0 0 0 0 0 0 0 0 2 12 E_attributes 25 EggMaterial::E_attributes 0
1 11 E_mref_name 24 EggMaterial::E_mref_name 0
2 0 0

2085 12 EggPrimitive 0 26625 12 EggPrimitive 12 EggPrimitive 0 0 0 0 1691 8 2432 2433 2434 2435 2436 2437 2438 2439 51 1690 1692 1693 1694 1695 1696 1697 1698 1699 1700 1701 1702 1703 1704 1705 1706 1707 1708 1709 1710 1711 1712 1713 1714 1715 1716 1717 1718 1719 1720 1721 1722 1723 1724 1725 1726 1727 1728 1729 1730 1731 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 2 2451 2452 0 3 3 2000 1684 1685 3 2011 1686 1687 3 2025 1688 1689 0 1 2086 463
/**
 * A base class for any of a number of kinds of geometry primitives: polygons,
 * point lights, nurbs patches, parametrics curves, etc.  Things with a set of
 * vertices and some rendering properties like color.
 *
 * An EggPrimitive is an STL-style container of pointers to EggVertex's.  In
 * fact, it IS a vector, and can be manipulated in all the ways that vectors
 * can.  However, it is necessary that all vertices belong to the same vertex
 * pool.
 */

2086 7 Shading 0 794624 21 EggPrimitive::Shading 21 EggPrimitive::Shading 2085 0 0 0 0 0 0 0 0 0 4 9 S_unknown 23 EggPrimitive::S_unknown 94
// The order here is important.  The later choices are more specific than
// the earlier ones.
0 9 S_overall 23 EggPrimitive::S_overall 0
1 10 S_per_face 24 EggPrimitive::S_per_face 0
2 12 S_per_vertex 26 EggPrimitive::S_per_vertex 0
3 0 0

2087 12 EggTexture * 0 8576 12 EggTexture * 12 EggTexture * 0 0 2066 0 0 0 0 0 0 0 0 0 0

2088 13 EggMaterial * 0 8576 13 EggMaterial * 13 EggMaterial * 0 0 2083 0 0 0 0 0 0 0 0 0 0

2089 11 EggVertex * 0 8576 11 EggVertex * 11 EggVertex * 0 0 2021 0 0 0 0 0 0 0 0 0 0

2090 15 EggVertexPool * 0 8576 15 EggVertexPool * 15 EggVertexPool * 0 0 2024 0 0 0 0 0 0 0 0 0 0

2091 21 EggCompositePrimitive 0 75777 21 EggCompositePrimitive 21 EggCompositePrimitive 0 0 0 0 1691 1 2440 7 1742 1743 1744 1745 1746 1747 1748 1 2453 0 1 0 2085 0 0 0 0 186
/**
 * The base class for primitives such as triangle strips and triangle fans,
 * which include several component triangles, each of which might have its own
 * color and/or normal.
 */

2092 15 EggAttributes * 0 8576 15 EggAttributes * 15 EggAttributes * 0 0 2011 0 0 0 0 0 0 0 0 0 0

2093 7 EggData 0 141313 7 EggData 7 EggData 0 0 0 1 1749 1771 4 2441 2442 2443 2444 21 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 1766 1767 1768 1769 1770 0 0 1 0 2002 0 0 0 0 441
/**
 * This is the primary interface into all the egg data, and the root of the
 * egg file structure.  An EggData structure corresponds exactly with an egg
 * file on the disk.
 *
 * The EggData class inherits from EggGroupNode its collection of children,
 * which are accessed by using the EggData itself as an STL container with
 * begin() and end() calls.  The children of the EggData class are the
 * toplevel nodes in the egg file.
 */

2094 16 CoordinateSystem 0 532480 16 CoordinateSystem 16 CoordinateSystem 0 0 0 0 0 0 0 0 0 0 6 10 CS_default 10 CS_default 210
// The CS_default entry does not refer to a particular coordinate system,
// but rather to the value stored in default_coordinate_system, which in
// turn is loaded from the config variable "coordinate-system".
0 12 CS_zup_right 12 CS_zup_right 21
// Z-Up, Right-handed
1 12 CS_yup_right 12 CS_yup_right 21
// Y-Up, Right-handed
2 11 CS_zup_left 11 CS_zup_left 20
// Z-Up, Left-handed
3 11 CS_yup_left 11 CS_yup_left 20
// Y-Up, Left-handed
4 10 CS_invalid 10 CS_invalid 156
// CS_invalid is not a coordinate system at all.  It can be used in user-
// input processing code to indicate a contradictory coordinate system
// request.
5 0 0

2095 6 time_t 0 2105344 6 time_t 6 time_t 0 0 2096 0 0 0 0 0 0 0 0 0 0

2096 8 long int 0 8210 8 long int 8 long int 0 1 0 0 0 0 0 0 0 0 0 0 0

2097 19 EggCoordinateSystem 0 141313 19 EggCoordinateSystem 19 EggCoordinateSystem 0 0 0 1 1772 1777 0 4 1773 1774 1775 1776 0 0 1 0 2000 0 0 0 0 177
/**
 * The <CoordinateSystem> entry at the top of an egg file.  Don't confuse this
 * with the enum EggData::CoordinateSystem, which is the value contained by
 * this entry.
 */

2098 8 EggCurve 0 141313 8 EggCurve 8 EggCurve 0 0 0 0 1785 0 7 1778 1779 1780 1781 1782 1783 1784 0 0 1 0 2085 0 0 0 1 2099 63
/**
 * A parametric curve of some kind.  See EggNurbsCurve.
 */

2099 9 CurveType 0 794624 19 EggCurve::CurveType 19 EggCurve::CurveType 2098 0 0 0 0 0 0 0 0 0 4 7 CT_none 17 EggCurve::CT_none 0
0 6 CT_xyz 16 EggCurve::CT_xyz 0
1 6 CT_hpr 16 EggCurve::CT_hpr 0
2 4 CT_t 14 EggCurve::CT_t 0
3 0 0

2100 20 EggExternalReference 0 141313 20 EggExternalReference 20 EggExternalReference 0 0 0 1 1786 1789 0 2 1787 1788 0 0 1 0 2065 0 0 0 0 93
/**
 * Defines a reference to another egg file which should be inserted at this
 * point.
 */

2101 17 EggNameUniquifier 0 75777 17 EggNameUniquifier 17 EggNameUniquifier 0 0 0 0 0 0 9 1790 1791 1792 1793 1794 1795 1796 1797 1798 0 0 1 0 1997 0 0 0 0 182
/**
 * This is a handy class for guaranteeing unique node names in an egg
 * hierarchy.  It is an abstract class; to use it you must subclass off of it.
 * See the comment above.
 */

2102 18 EggGroupUniquifier 0 141313 18 EggGroupUniquifier 18 EggGroupUniquifier 0 0 0 1 1799 1801 0 1 1800 0 0 1 0 2101 0 0 0 0 183
/**
 * This is a specialization of EggNameUniquifier to generate unique names for
 * EggGroup nodes.  It's not called automatically; you must invoke it yourself
 * if you want it.
 */

2103 7 EggLine 0 75777 7 EggLine 7 EggLine 0 0 0 1 1802 1691 0 6 1803 1804 1805 1806 1807 1808 0 0 1 0 2091 0 0 0 0 96
/**
 * A line segment, or a series of connected line segments, defined by a <Line>
 * entry.
 */

2104 21 EggMaterialCollection 0 26625 21 EggMaterialCollection 21 EggMaterialCollection 0 0 0 1 1809 1811 0 13 1810 1812 1813 1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 0 0 0 0 0 232
/**
 * This is a collection of materials by MRef name.  It can extract the
 * materials from an egg file and sort them all together; it can also manage
 * the creation of unique materials and the assignment of unique MRef names.
 */

2105 10 EggPolygon 0 141313 10 EggPolygon 10 EggPolygon 0 0 0 1 1824 1832 0 7 1825 1826 1827 1828 1829 1830 1831 0 0 1 0 2085 0 0 0 0 28
/**
 * A single polygon.
 */

2106 13 EggNurbsCurve 0 141313 13 EggNurbsCurve 13 EggNurbsCurve 0 0 0 1 1835 1849 4 2445 2446 2447 2448 13 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1 2454 0 1 0 2098 0 0 0 0 36
/**
 * A parametric NURBS curve.
 */

2107 10 EggSurface 0 141313 10 EggSurface 10 EggSurface 0 0 0 0 1856 0 6 1850 1851 1852 1853 1854 1855 0 0 1 0 2085 0 0 0 0 67
/**
 * A parametric surface of some kind.  See EggNurbsSurface.
 */

2108 15 EggNurbsSurface 0 141313 15 EggNurbsSurface 15 EggNurbsSurface 0 0 0 1 1857 1886 0 28 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 2 2455 2456 0 1 0 2107 0 0 0 5 2109 2111 2112 2114 2115 38
/**
 * A parametric NURBS surface.
 */

2109 6 Curves 0 2367488 23 EggNurbsSurface::Curves 23 EggNurbsSurface::Curves 2108 0 2110 0 0 0 0 0 0 0 0 0 0

2110 34 list< PointerTo< EggNurbsCurve > > 0 2048 39 std::list< PointerTo< EggNurbsCurve > > 39 std::list< PointerTo< EggNurbsCurve > > 0 0 0 0 0 0 0 0 0 0 0 0 0

2111 4 Loop 0 2367488 21 EggNurbsSurface::Loop 21 EggNurbsSurface::Loop 2108 0 2109 0 0 0 0 0 0 0 0 0 0

2112 5 Loops 0 2367488 22 EggNurbsSurface::Loops 22 EggNurbsSurface::Loops 2108 0 2113 0 0 0 0 0 0 0 0 0 0

2113 12 list< Loop > 0 2048 17 std::list< Loop > 34 std::list< EggNurbsSurface::Loop > 0 0 0 0 0 0 0 0 0 0 0 0 0

2114 4 Trim 0 2367488 21 EggNurbsSurface::Trim 21 EggNurbsSurface::Trim 2108 0 2112 0 0 0 0 0 0 0 0 0 0

2115 5 Trims 0 2367488 22 EggNurbsSurface::Trims 22 EggNurbsSurface::Trims 2108 0 2116 0 0 0 0 0 0 0 0 0 0

2116 12 list< Trim > 0 2048 17 std::list< Trim > 34 std::list< EggNurbsSurface::Trim > 0 0 0 0 0 0 0 0 0 0 0 0 0

2117 8 EggPatch 0 141313 8 EggPatch 8 EggPatch 0 0 0 1 1887 1890 0 2 1888 1889 0 0 1 0 2085 0 0 0 0 99
/**
 * A single "patch", a special primitive to be rendered only with a
 * tessellation shader.
 */

2118 8 EggPoint 0 141313 8 EggPoint 8 EggPoint 0 0 0 1 1891 1902 0 10 1892 1893 1894 1895 1896 1897 1898 1899 1900 1901 0 0 1 0 2085 0 0 0 0 98
/**
 * A single point, or a collection of points as defined by a single
 * <PointLight> entry.
 */

2119 15 EggPolysetMaker 0 141313 15 EggPolysetMaker 15 EggPolysetMaker 0 0 0 1 1903 1906 0 2 1904 1905 0 0 1 0 2063 0 0 0 2 2120 2121 400
/**
 * A specialization on EggBinMaker for making polysets that share the same
 * basic rendering characteristic.  This really just defines the example
 * functions described in the leading comment to EggBinMaker.
 *
 * It makes some common assumptions about how polysets should be grouped; if
 * these are not sufficient, you can always rederive your own further
 * specialization of this class.
 */

2120 9 BinNumber 0 794624 26 EggPolysetMaker::BinNumber 26 EggPolysetMaker::BinNumber 2119 0 0 0 0 0 0 0 0 0 2 7 BN_none 24 EggPolysetMaker::BN_none 0
0 10 BN_polyset 27 EggPolysetMaker::BN_polyset 0
1 0 72
// The BinNumber serves to identify why a particular EggBin was created.

2121 10 Properties 0 794624 27 EggPolysetMaker::Properties 27 EggPolysetMaker::Properties 2119 0 0 0 0 0 0 0 0 0 10 13 P_has_texture 30 EggPolysetMaker::P_has_texture 0
1 9 P_texture 26 EggPolysetMaker::P_texture 0
2 14 P_has_material 31 EggPolysetMaker::P_has_material 0
4 10 P_material 27 EggPolysetMaker::P_material 0
8 16 P_has_poly_color 33 EggPolysetMaker::P_has_poly_color 0
16 12 P_poly_color 29 EggPolysetMaker::P_poly_color 0
32 17 P_has_poly_normal 34 EggPolysetMaker::P_has_poly_normal 0
64 19 P_has_vertex_normal 36 EggPolysetMaker::P_has_vertex_normal 0
128 18 P_has_vertex_color 35 EggPolysetMaker::P_has_vertex_color 0
256 7 P_bface 24 EggPolysetMaker::P_bface 0
512 0 0

2122 17 EggPoolUniquifier 0 141313 17 EggPoolUniquifier 17 EggPoolUniquifier 0 0 0 1 1907 1909 0 1 1908 0 0 1 0 2101 0 0 0 0 234
/**
 * This is a specialization of EggNameUniquifier to generate unique names for
 * textures, materials, and vertex pools prior to writing out an egg file.
 * It's automatically called by EggData prior to writing out an egg file.
 */

2123 12 EggSAnimData 0 141313 12 EggSAnimData 12 EggSAnimData 0 0 0 1 1910 1917 0 6 1911 1912 1913 1914 1915 1916 0 0 1 0 2008 0 0 0 0 158
/**
 * Corresponding to an <S$Anim> entry, this stores a single column of numbers,
 * for instance for a morph target, or as one column in an EggXfmSAnim.
 */

2124 8 EggTable 0 141313 8 EggTable 8 EggTable 0 0 0 1 1918 1925 0 6 1919 1920 1921 1922 1923 1924 0 0 1 0 2002 0 0 0 1 2125 295
/**
 * This corresponds to a <Table> or a <Bundle> entry.  As such, it doesn't
 * actually contain a table of numbers, but it may be a parent to an
 * EggSAnimData or an EggXfmAnimData, which do.  It may also be a parent to
 * another <Table> or <Bundle>, establishing a hierarchy of tables.
 */

2125 9 TableType 0 794624 19 EggTable::TableType 19 EggTable::TableType 2124 0 0 0 0 0 0 0 0 0 3 10 TT_invalid 20 EggTable::TT_invalid 0
0 8 TT_table 18 EggTable::TT_table 0
1 9 TT_bundle 19 EggTable::TT_bundle 0
2 0 0

2126 20 EggTextureCollection 0 26625 20 EggTextureCollection 20 EggTextureCollection 0 0 0 1 1926 1928 0 20 1927 1929 1930 1931 1932 1933 1934 1935 1936 1937 1938 1939 1940 1941 1942 1943 1944 1945 1946 1947 1 2457 0 0 0 0 229
/**
 * This is a collection of textures by TRef name.  It can extract the textures
 * from an egg file and sort them all together; it can also manage the
 * creation of unique textures and the assignment of unique TRef names.
 */

2127 14 EggTriangleFan 0 75777 14 EggTriangleFan 14 EggTriangleFan 0 0 0 1 1948 1691 0 2 1949 1950 0 0 1 0 2091 0 0 0 0 140
/**
 * A connected fan of triangles.  This does not normally appear in an egg
 * file; it is typically generated as a result of meshing.
 */

2128 16 EggTriangleStrip 0 75777 16 EggTriangleStrip 16 EggTriangleStrip 0 0 0 1 1951 1691 0 2 1952 1953 0 0 1 0 2091 0 0 0 0 142
/**
 * A connected strip of triangles.  This does not normally appear in an egg
 * file; it is typically generated as a result of meshing.
 */

2129 11 EggXfmSAnim 0 141313 11 EggXfmSAnim 11 EggXfmSAnim 0 0 0 1 1954 1977 0 22 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 0 0 1 0 2002 0 0 0 0 252
/**
 * This corresponds to an <Xfm$Anim_S$> entry, which is a collection of up to
 * nine <S$Anim> entries that specify the nine components of a transformation.
 * It's implemented as a group that can contain any number of EggSAnimData
 * children.
 */

2130 14 EggXfmAnimData 0 141313 14 EggXfmAnimData 14 EggXfmAnimData 0 0 0 1 1978 1994 0 15 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 0 0 1 0 2008 0 0 0 0 262
/**
 * Corresponding to an <Xfm$Anim> entry, this stores a two-dimensional table
 * with up to nine columns, one for each component of a transformation.  This
 * is an older syntax of egg anim table, not often used currently--it's
 * replaced by EggXfmSAnim.
 */

2131 13 EggUserData * 0 8576 13 EggUserData * 13 EggUserData * 0 0 1995 0 0 0 0 0 0 0 0 0 0

2132 19 EggUserData const * 0 8576 19 EggUserData const * 19 EggUserData const * 0 0 2133 0 0 0 0 0 0 0 0 0 0

2133 17 EggUserData const 0 8832 17 EggUserData const 17 EggUserData const 0 0 1995 0 0 0 0 0 0 0 0 0 0

2134 10 TypeHandle 0 16779264 10 TypeHandle 10 TypeHandle 0 0 0 0 0 0 0 0 0 0 0 0 732
/**
 * TypeHandle is the identifier used to differentiate C++ class types.  Any
 * C++ classes that inherit from some base class, and must be differentiated
 * at run time, should store a static TypeHandle object that can be queried
 * through a static member function named get_class_type().  Most of the time,
 * it is also desirable to inherit from TypedObject, which provides some
 * virtual functions to return the TypeHandle for a particular instance.
 *
 * At its essence, a TypeHandle is simply a unique identifier that is assigned
 * by the TypeRegistry.  The TypeRegistry stores a tree of TypeHandles, so
 * that ancestry of a particular type may be queried, and the type name may be
 * retrieved for run-time display.
 */

2135 12 TypeHandle * 0 8576 12 TypeHandle * 12 TypeHandle * 0 0 2134 0 0 0 0 0 0 0 0 0 0

2136 11 EggObject * 0 8576 11 EggObject * 11 EggObject * 0 0 1997 0 0 0 0 0 0 0 0 0 0

2137 17 EggObject const * 0 8576 17 EggObject const * 17 EggObject const * 0 0 2138 0 0 0 0 0 0 0 0 0 0

2138 15 EggObject const 0 8832 15 EggObject const 15 EggObject const 0 0 1997 0 0 0 0 0 0 0 0 0 0

2139 4 void 0 8194 4 void 4 void 0 6 0 0 0 0 0 0 0 0 0 0 0

2140 22 EggNamedObject const * 0 8576 22 EggNamedObject const * 22 EggNamedObject const * 0 0 2141 0 0 0 0 0 0 0 0 0 0

2141 20 EggNamedObject const 0 8832 20 EggNamedObject const 20 EggNamedObject const 0 0 1998 0 0 0 0 0 0 0 0 0 0

2142 16 EggNamedObject * 0 8576 16 EggNamedObject * 16 EggNamedObject * 0 0 1998 0 0 0 0 0 0 0 0 0 0

2143 13 atomic string 0 2 13 atomic string 13 atomic string 0 7 0 0 0 0 0 0 0 0 0 0 0

2144 9 ostream * 0 8576 14 std::ostream * 14 std::ostream * 0 0 2145 0 0 0 0 0 0 0 0 0 0

2145 7 ostream 0 2048 12 std::ostream 12 std::ostream 0 0 0 0 0 0 0 0 0 0 0 0 0

2146 9 Namable * 0 8576 9 Namable * 9 Namable * 0 0 1999 0 0 0 0 0 0 0 0 0 0

2147 9 EggNode * 0 8576 9 EggNode * 9 EggNode * 0 0 2000 0 0 0 0 0 0 0 0 0 0

2148 15 EggNode const * 0 8576 15 EggNode const * 15 EggNode const * 0 0 2149 0 0 0 0 0 0 0 0 0 0

2149 13 EggNode const 0 8832 13 EggNode const 13 EggNode const 0 0 2000 0 0 0 0 0 0 0 0 0 0

2150 17 LMatrix4d const * 0 8576 17 LMatrix4d const * 17 LMatrix4d const * 0 0 2151 0 0 0 0 0 0 0 0 0 0

2151 15 LMatrix4d const 0 8832 15 LMatrix4d const 15 LMatrix4d const 0 0 2152 0 0 0 0 0 0 0 0 0 0

2152 9 LMatrix4d 0 2048 9 LMatrix4d 9 LMatrix4d 0 0 0 0 0 0 0 0 0 0 0 0 45
/**
 * This is a 4-by-4 transform matrix.
 */

2153 15 vector_string * 0 8576 15 vector_string * 15 vector_string * 0 0 2154 0 0 0 0 0 0 0 0 0 0

2154 13 vector_string 0 2105344 13 vector_string 13 vector_string 0 0 2155 0 0 0 0 0 0 0 0 0 0

2155 17 pvector< string > 0 2048 22 pvector< std::string > 22 pvector< std::string > 0 0 0 0 0 0 0 0 0 0 0 0 0

2156 15 EggRenderMode * 0 8576 15 EggRenderMode * 15 EggRenderMode * 0 0 2025 0 0 0 0 0 0 0 0 0 0

2157 20 EggGroupNode const * 0 8576 20 EggGroupNode const * 20 EggGroupNode const * 0 0 2158 0 0 0 0 0 0 0 0 0 0

2158 18 EggGroupNode const 0 8832 18 EggGroupNode const 18 EggGroupNode const 0 0 2002 0 0 0 0 0 0 0 0 0 0

2159 9 size_type 0 2367488 23 EggGroupNode::size_type 23 EggGroupNode::size_type 2002 0 2160 0 0 0 0 0 0 0 0 0 0

2160 22 unsigned long long int 0 8230 22 unsigned long long int 22 unsigned long long int 0 8 0 0 0 0 0 0 0 0 0 0 0

2161 19 DSearchPath const * 0 8576 19 DSearchPath const * 19 DSearchPath const * 0 0 2162 0 0 0 0 0 0 0 0 0 0

2162 17 DSearchPath const 0 8832 17 DSearchPath const 17 DSearchPath const 0 0 2163 0 0 0 0 0 0 0 0 0 0

2163 11 DSearchPath 0 2048 11 DSearchPath 11 DSearchPath 0 0 0 0 0 0 0 0 0 0 0 0 304
/**
 * This class stores a list of directories that can be searched, in order, to
 * locate a particular file.  It is normally constructed by passing it a
 * traditional searchpath-style string, e.g.  a list of directory names
 * delimited by spaces or colons, but it can also be built up explicitly.
 */

2164 16 Filename const * 0 8576 16 Filename const * 16 Filename const * 0 0 2081 0 0 0 0 0 0 0 0 0 0

2165 19 GlobPattern const * 0 8576 19 GlobPattern const * 19 GlobPattern const * 0 0 2166 0 0 0 0 0 0 0 0 0 0

2166 17 GlobPattern const 0 8832 17 GlobPattern const 17 GlobPattern const 0 0 2167 0 0 0 0 0 0 0 0 0 0

2167 11 GlobPattern 0 2048 11 GlobPattern 11 GlobPattern 0 0 0 0 0 0 0 0 0 0 0 0 538
/**
 * This class can be used to test for string matches against standard Unix-
 * shell filename globbing conventions.  It serves as a portable standin for
 * the Posix fnmatch() call.
 *
 * A GlobPattern is given a pattern string, which can contain operators like
 * *, ?, and [].  Then it can be tested against any number of candidate
 * strings; for each candidate, it will indicate whether the string matches
 * the pattern or not.  It can be used, for example, to scan a directory for
 * all files matching a particular pattern.
 */

2168 21 vector_string const * 0 8576 21 vector_string const * 21 vector_string const * 0 0 2169 0 0 0 0 0 0 0 0 0 0

2169 19 vector_string const 0 8832 19 vector_string const 19 vector_string const 0 0 2154 0 0 0 0 0 0 0 0 0 0

2170 17 LVector2d const * 0 8576 17 LVector2d const * 17 LVector2d const * 0 0 2171 0 0 0 0 0 0 0 0 0 0

2171 15 LVector2d const 0 8832 15 LVector2d const 15 LVector2d const 0 0 2172 0 0 0 0 0 0 0 0 0 0

2172 9 LVector2d 0 2048 9 LVector2d 9 LVector2d 0 0 0 0 0 0 0 0 0 0 0 0 49
/**
 * This is a two-component vector offset.
 */

2173 13 EggAnimData * 0 8576 13 EggAnimData * 13 EggAnimData * 0 0 2008 0 0 0 0 0 0 0 0 0 0

2174 19 EggAnimData const * 0 8576 19 EggAnimData const * 19 EggAnimData const * 0 0 2175 0 0 0 0 0 0 0 0 0 0

2175 17 EggAnimData const 0 8832 17 EggAnimData const 17 EggAnimData const 0 0 2008 0 0 0 0 0 0 0 0 0 0

2176 22 EggAnimPreload const * 0 8576 22 EggAnimPreload const * 22 EggAnimPreload const * 0 0 2177 0 0 0 0 0 0 0 0 0 0

2177 20 EggAnimPreload const 0 8832 20 EggAnimPreload const 20 EggAnimPreload const 0 0 2009 0 0 0 0 0 0 0 0 0 0

2178 16 EggAnimPreload * 0 8576 16 EggAnimPreload * 16 EggAnimPreload * 0 0 2009 0 0 0 0 0 0 0 0 0 0

2179 21 EggAttributes const * 0 8576 21 EggAttributes const * 21 EggAttributes const * 0 0 2180 0 0 0 0 0 0 0 0 0 0

2180 19 EggAttributes const 0 8832 19 EggAttributes const 19 EggAttributes const 0 0 2011 0 0 0 0 0 0 0 0 0 0

2181 16 LNormald const * 0 8576 16 LNormald const * 16 LNormald const * 0 0 2182 0 0 0 0 0 0 0 0 0 0

2182 14 LNormald const 0 8832 14 LNormald const 14 LNormald const 0 0 2183 0 0 0 0 0 0 0 0 0 0

2183 8 LNormald 0 2105344 8 LNormald 8 LNormald 0 0 2184 0 0 0 0 0 0 0 0 0 0

2184 9 LVector3d 0 2048 9 LVector3d 9 LVector3d 0 0 0 0 0 0 0 0 0 0 0 0 338
/**
 * This is a three-component vector distance (as opposed to a three-component
 * point, which represents a particular point in space).  Some of the methods
 * are slightly different between LPoint3 and LVector3; in particular,
 * subtraction of two points yields a vector, while addition of a vector and a
 * point yields a point.
 */

2185 8 LColor * 0 8576 8 LColor * 8 LColor * 0 0 2057 0 0 0 0 0 0 0 0 0 0

2186 14 LColor const * 0 8576 14 LColor const * 14 LColor const * 0 0 2056 0 0 0 0 0 0 0 0 0 0

2187 12 MemoryBase * 0 8576 12 MemoryBase * 12 MemoryBase * 0 0 2012 0 0 0 0 0 0 0 0 0 0

2188 19 EggVertexUV const * 0 8576 19 EggVertexUV const * 19 EggVertexUV const * 0 0 2189 0 0 0 0 0 0 0 0 0 0

2189 17 EggVertexUV const 0 8832 17 EggVertexUV const 17 EggVertexUV const 0 0 2017 0 0 0 0 0 0 0 0 0 0

2190 13 EggVertexUV * 0 8576 13 EggVertexUV * 13 EggVertexUV * 0 0 2017 0 0 0 0 0 0 0 0 0 0

2191 19 LTexCoord3d const * 0 8576 19 LTexCoord3d const * 19 LTexCoord3d const * 0 0 2192 0 0 0 0 0 0 0 0 0 0

2192 17 LTexCoord3d const 0 8832 17 LTexCoord3d const 17 LTexCoord3d const 0 0 2193 0 0 0 0 0 0 0 0 0 0

2193 11 LTexCoord3d 0 2105344 11 LTexCoord3d 11 LTexCoord3d 0 0 2048 0 0 0 0 0 0 0 0 0 0

2194 18 LTexCoordd const * 0 8576 18 LTexCoordd const * 18 LTexCoordd const * 0 0 2195 0 0 0 0 0 0 0 0 0 0

2195 16 LTexCoordd const 0 8832 16 LTexCoordd const 16 LTexCoordd const 0 0 2196 0 0 0 0 0 0 0 0 0 0

2196 10 LTexCoordd 0 2105344 10 LTexCoordd 10 LTexCoordd 0 0 2197 0 0 0 0 0 0 0 0 0 0

2197 8 LPoint2d 0 2048 8 LPoint2d 8 LPoint2d 0 0 0 0 0 0 0 0 0 0 0 0 50
/**
 * This is a two-component point in space.
 */

2198 12 LTexCoordd * 0 8576 12 LTexCoordd * 12 LTexCoordd * 0 0 2196 0 0 0 0 0 0 0 0 0 0

2199 10 LVecBase4d 0 2048 10 LVecBase4d 10 LVecBase4d 0 0 0 0 0 0 0 0 0 0 0 0 77
/**
 * This is the base class for all three-component vectors and points.
 */

2200 12 LVecBase4d * 0 8576 12 LVecBase4d * 12 LVecBase4d * 0 0 2199 0 0 0 0 0 0 0 0 0 0

2201 18 LVecBase4d const * 0 8576 18 LVecBase4d const * 18 LVecBase4d const * 0 0 2202 0 0 0 0 0 0 0 0 0 0

2202 16 LVecBase4d const 0 8832 16 LVecBase4d const 16 LVecBase4d const 0 0 2199 0 0 0 0 0 0 0 0 0 0

2203 20 EggVertexAux const * 0 8576 20 EggVertexAux const * 20 EggVertexAux const * 0 0 2204 0 0 0 0 0 0 0 0 0 0

2204 18 EggVertexAux const 0 8832 18 EggVertexAux const 18 EggVertexAux const 0 0 2020 0 0 0 0 0 0 0 0 0 0

2205 14 EggVertexAux * 0 8576 14 EggVertexAux * 14 EggVertexAux * 0 0 2020 0 0 0 0 0 0 0 0 0 0

2206 17 EggVertex const * 0 8576 17 EggVertex const * 17 EggVertex const * 0 0 2207 0 0 0 0 0 0 0 0 0 0

2207 15 EggVertex const 0 8832 15 EggVertex const 15 EggVertex const 0 0 2021 0 0 0 0 0 0 0 0 0 0

2208 16 LPoint2d const * 0 8576 16 LPoint2d const * 16 LPoint2d const * 0 0 2209 0 0 0 0 0 0 0 0 0 0

2209 14 LPoint2d const 0 8832 14 LPoint2d const 14 LPoint2d const 0 0 2197 0 0 0 0 0 0 0 0 0 0

2210 16 LPoint3d const * 0 8576 16 LPoint3d const * 16 LPoint3d const * 0 0 2047 0 0 0 0 0 0 0 0 0 0

2211 16 LPoint4d const * 0 8576 16 LPoint4d const * 16 LPoint4d const * 0 0 2212 0 0 0 0 0 0 0 0 0 0

2212 14 LPoint4d const 0 8832 14 LPoint4d const 14 LPoint4d const 0 0 2213 0 0 0 0 0 0 0 0 0 0

2213 8 LPoint4d 0 2048 8 LPoint4d 8 LPoint4d 0 0 0 0 0 0 0 0 0 0 0 0 51
/**
 * This is a four-component point in space.
 */

2214 10 LPoint2d * 0 8576 10 LPoint2d * 10 LPoint2d * 0 0 2197 0 0 0 0 0 0 0 0 0 0

2215 8 LVertexd 0 2105344 8 LVertexd 8 LVertexd 0 0 2048 0 0 0 0 0 0 0 0 0 0

2216 10 LVertexd * 0 8576 10 LVertexd * 10 LVertexd * 0 0 2215 0 0 0 0 0 0 0 0 0 0

2217 10 LPoint4d * 0 8576 10 LPoint4d * 10 LPoint4d * 0 0 2213 0 0 0 0 0 0 0 0 0 0

2218 16 EggGroup const * 0 8576 16 EggGroup const * 16 EggGroup const * 0 0 2219 0 0 0 0 0 0 0 0 0 0

2219 14 EggGroup const 0 8832 14 EggGroup const 14 EggGroup const 0 0 2034 0 0 0 0 0 0 0 0 0 0

2220 20 EggPrimitive const * 0 8576 20 EggPrimitive const * 20 EggPrimitive const * 0 0 2221 0 0 0 0 0 0 0 0 0 0

2221 18 EggPrimitive const 0 8832 18 EggPrimitive const 18 EggPrimitive const 0 0 2085 0 0 0 0 0 0 0 0 0 0

2222 21 EggVertexPool const * 0 8576 21 EggVertexPool const * 21 EggVertexPool const * 0 0 2223 0 0 0 0 0 0 0 0 0 0

2223 19 EggVertexPool const 0 8832 19 EggVertexPool const 19 EggVertexPool const 0 0 2024 0 0 0 0 0 0 0 0 0 0

2224 9 size_type 0 2367488 24 EggVertexPool::size_type 24 EggVertexPool::size_type 2024 0 2160 0 0 0 0 0 0 0 0 0 0

2225 14 EggPrimitive * 0 8576 14 EggPrimitive * 14 EggPrimitive * 0 0 2085 0 0 0 0 0 0 0 0 0 0

2226 21 EggRenderMode const * 0 8576 21 EggRenderMode const * 21 EggRenderMode const * 0 0 2227 0 0 0 0 0 0 0 0 0 0

2227 19 EggRenderMode const 0 8832 19 EggRenderMode const 19 EggRenderMode const 0 0 2025 0 0 0 0 0 0 0 0 0 0

2228 14 EggTransform * 0 8576 14 EggTransform * 14 EggTransform * 0 0 2030 0 0 0 0 0 0 0 0 0 0

2229 20 EggTransform const * 0 8576 20 EggTransform const * 20 EggTransform const * 0 0 2061 0 0 0 0 0 0 0 0 0 0

2230 17 LVector3d const * 0 8576 17 LVector3d const * 17 LVector3d const * 0 0 2231 0 0 0 0 0 0 0 0 0 0

2231 15 LVector3d const 0 8832 15 LVector3d const 15 LVector3d const 0 0 2184 0 0 0 0 0 0 0 0 0 0

2232 20 LQuaterniond const * 0 8576 20 LQuaterniond const * 20 LQuaterniond const * 0 0 2233 0 0 0 0 0 0 0 0 0 0

2233 18 LQuaterniond const 0 8832 18 LQuaterniond const 18 LQuaterniond const 0 0 2234 0 0 0 0 0 0 0 0 0 0

2234 12 LQuaterniond 0 2048 12 LQuaterniond 12 LQuaterniond 0 0 0 0 0 0 0 0 0 0 0 0 44
/**
 * This is the base quaternion class
 */

2235 18 LVecBase2d const * 0 8576 18 LVecBase2d const * 18 LVecBase2d const * 0 0 2236 0 0 0 0 0 0 0 0 0 0

2236 16 LVecBase2d const 0 8832 16 LVecBase2d const 16 LVecBase2d const 0 0 2237 0 0 0 0 0 0 0 0 0 0

2237 10 LVecBase2d 0 2048 10 LVecBase2d 10 LVecBase2d 0 0 0 0 0 0 0 0 0 0 0 0 75
/**
 * This is the base class for all two-component vectors and points.
 */

2238 18 LVecBase3d const * 0 8576 18 LVecBase3d const * 18 LVecBase3d const * 0 0 2239 0 0 0 0 0 0 0 0 0 0

2239 16 LVecBase3d const 0 8832 16 LVecBase3d const 16 LVecBase3d const 0 0 2240 0 0 0 0 0 0 0 0 0 0

2240 10 LVecBase3d 0 2048 10 LVecBase3d 10 LVecBase3d 0 0 0 0 0 0 0 0 0 0 0 0 77
/**
 * This is the base class for all three-component vectors and points.
 */

2241 17 LMatrix3d const * 0 8576 17 LMatrix3d const * 17 LMatrix3d const * 0 0 2242 0 0 0 0 0 0 0 0 0 0

2242 15 LMatrix3d const 0 8832 15 LMatrix3d const 15 LMatrix3d const 0 0 2243 0 0 0 0 0 0 0 0 0 0

2243 9 LMatrix3d 0 2048 9 LMatrix3d 9 LMatrix3d 0 0 0 0 0 0 0 0 0 0 0 0 231
/**
 * This is a 3-by-3 transform matrix.  It typically will represent either a
 * rotation-and-scale (no translation) matrix in 3-d, or a full affine matrix
 * (rotation, scale, translation) in 2-d, e.g.  for a texture matrix.
 */

2244 11 LMatrix3d * 0 8576 11 LMatrix3d * 11 LMatrix3d * 0 0 2243 0 0 0 0 0 0 0 0 0 0

2245 26 EggSwitchCondition const * 0 8576 26 EggSwitchCondition const * 26 EggSwitchCondition const * 0 0 2060 0 0 0 0 0 0 0 0 0 0

2246 20 EggSwitchCondition * 0 8576 20 EggSwitchCondition * 20 EggSwitchCondition * 0 0 2032 0 0 0 0 0 0 0 0 0 0

2247 28 EggSwitchConditionDistance * 0 8576 28 EggSwitchConditionDistance * 28 EggSwitchConditionDistance * 0 0 2033 0 0 0 0 0 0 0 0 0 0

2248 10 EggGroup * 0 8576 10 EggGroup * 10 EggGroup * 0 0 2034 0 0 0 0 0 0 0 0 0 0

2249 13 CollideMask * 0 8576 13 CollideMask * 13 CollideMask * 0 0 2053 0 0 0 0 0 0 0 0 0 0

2250 12 double const 0 8832 12 double const 12 double const 0 0 2010 0 0 0 0 0 0 0 0 0 0

2251 14 EggBin const * 0 8576 14 EggBin const * 14 EggBin const * 0 0 2252 0 0 0 0 0 0 0 0 0 0

2252 12 EggBin const 0 8832 12 EggBin const 12 EggBin const 0 0 2062 0 0 0 0 0 0 0 0 0 0

2253 8 EggBin * 0 8576 8 EggBin * 8 EggBin * 0 0 2062 0 0 0 0 0 0 0 0 0 0

2254 13 EggBinMaker * 0 8576 13 EggBinMaker * 13 EggBinMaker * 0 0 2063 0 0 0 0 0 0 0 0 0 0

2255 18 EggComment const * 0 8576 18 EggComment const * 18 EggComment const * 0 0 2256 0 0 0 0 0 0 0 0 0 0

2256 16 EggComment const 0 8832 16 EggComment const 16 EggComment const 0 0 2064 0 0 0 0 0 0 0 0 0 0

2257 12 EggComment * 0 8576 12 EggComment * 12 EggComment * 0 0 2064 0 0 0 0 0 0 0 0 0 0

2258 17 EggFilenameNode * 0 8576 17 EggFilenameNode * 17 EggFilenameNode * 0 0 2065 0 0 0 0 0 0 0 0 0 0

2259 23 EggFilenameNode const * 0 8576 23 EggFilenameNode const * 23 EggFilenameNode const * 0 0 2260 0 0 0 0 0 0 0 0 0 0

2260 21 EggFilenameNode const 0 8832 21 EggFilenameNode const 21 EggFilenameNode const 0 0 2065 0 0 0 0 0 0 0 0 0 0

2261 18 EggTexture const * 0 8576 18 EggTexture const * 18 EggTexture const * 0 0 2262 0 0 0 0 0 0 0 0 0 0

2262 16 EggTexture const 0 8832 16 EggTexture const 16 EggTexture const 0 0 2066 0 0 0 0 0 0 0 0 0 0

2263 19 EggMaterial const * 0 8576 19 EggMaterial const * 19 EggMaterial const * 0 0 2264 0 0 0 0 0 0 0 0 0 0

2264 17 EggMaterial const 0 8832 17 EggMaterial const 17 EggMaterial const 0 0 2083 0 0 0 0 0 0 0 0 0 0

2265 6 size_t 0 2105344 11 std::size_t 11 std::size_t 0 0 2160 0 0 0 0 0 0 0 0 0 0

2266 23 EggCompositePrimitive * 0 8576 23 EggCompositePrimitive * 23 EggCompositePrimitive * 0 0 2091 0 0 0 0 0 0 0 0 0 0

2267 29 EggCompositePrimitive const * 0 8576 29 EggCompositePrimitive const * 29 EggCompositePrimitive const * 0 0 2268 0 0 0 0 0 0 0 0 0 0

2268 27 EggCompositePrimitive const 0 8832 27 EggCompositePrimitive const 27 EggCompositePrimitive const 0 0 2091 0 0 0 0 0 0 0 0 0 0

2269 9 EggData * 0 8576 9 EggData * 9 EggData * 0 0 2093 0 0 0 0 0 0 0 0 0 0

2270 15 EggData const * 0 8576 15 EggData const * 15 EggData const * 0 0 2271 0 0 0 0 0 0 0 0 0 0

2271 13 EggData const 0 8832 13 EggData const 13 EggData const 0 0 2093 0 0 0 0 0 0 0 0 0 0

2272 10 Filename * 0 8576 10 Filename * 10 Filename * 0 0 2082 0 0 0 0 0 0 0 0 0 0

2273 9 istream * 0 8576 14 std::istream * 14 std::istream * 0 0 2274 0 0 0 0 0 0 0 0 0 0

2274 7 istream 0 2048 12 std::istream 12 std::istream 0 0 0 0 0 0 0 0 0 0 0 0 0

2275 16 BamCacheRecord * 0 8576 16 BamCacheRecord * 16 BamCacheRecord * 0 0 2276 0 0 0 0 0 0 0 0 0 0

2276 14 BamCacheRecord 0 2048 14 BamCacheRecord 14 BamCacheRecord 0 0 0 0 0 0 0 0 0 0 0 0 231
/**
 * An instance of this class is written to the front of a Bam or Txo file to
 * make the file a cached instance of some other loadable resource.  This
 * record contains information needed to test the validity of the cache.
 */

2277 21 EggCoordinateSystem * 0 8576 21 EggCoordinateSystem * 21 EggCoordinateSystem * 0 0 2097 0 0 0 0 0 0 0 0 0 0

2278 27 EggCoordinateSystem const * 0 8576 27 EggCoordinateSystem const * 27 EggCoordinateSystem const * 0 0 2279 0 0 0 0 0 0 0 0 0 0

2279 25 EggCoordinateSystem const 0 8832 25 EggCoordinateSystem const 25 EggCoordinateSystem const 0 0 2097 0 0 0 0 0 0 0 0 0 0

2280 10 EggCurve * 0 8576 10 EggCurve * 10 EggCurve * 0 0 2098 0 0 0 0 0 0 0 0 0 0

2281 16 EggCurve const * 0 8576 16 EggCurve const * 16 EggCurve const * 0 0 2282 0 0 0 0 0 0 0 0 0 0

2282 14 EggCurve const 0 8832 14 EggCurve const 14 EggCurve const 0 0 2098 0 0 0 0 0 0 0 0 0 0

2283 28 EggExternalReference const * 0 8576 28 EggExternalReference const * 28 EggExternalReference const * 0 0 2284 0 0 0 0 0 0 0 0 0 0

2284 26 EggExternalReference const 0 8832 26 EggExternalReference const 26 EggExternalReference const 0 0 2100 0 0 0 0 0 0 0 0 0 0

2285 22 EggExternalReference * 0 8576 22 EggExternalReference * 22 EggExternalReference * 0 0 2100 0 0 0 0 0 0 0 0 0 0

2286 19 EggNameUniquifier * 0 8576 19 EggNameUniquifier * 19 EggNameUniquifier * 0 0 2101 0 0 0 0 0 0 0 0 0 0

2287 25 EggNameUniquifier const * 0 8576 25 EggNameUniquifier const * 25 EggNameUniquifier const * 0 0 2288 0 0 0 0 0 0 0 0 0 0

2288 23 EggNameUniquifier const 0 8832 23 EggNameUniquifier const 23 EggNameUniquifier const 0 0 2101 0 0 0 0 0 0 0 0 0 0

2289 20 EggGroupUniquifier * 0 8576 20 EggGroupUniquifier * 20 EggGroupUniquifier * 0 0 2102 0 0 0 0 0 0 0 0 0 0

2290 15 EggLine const * 0 8576 15 EggLine const * 15 EggLine const * 0 0 2291 0 0 0 0 0 0 0 0 0 0

2291 13 EggLine const 0 8832 13 EggLine const 13 EggLine const 0 0 2103 0 0 0 0 0 0 0 0 0 0

2292 9 EggLine * 0 8576 9 EggLine * 9 EggLine * 0 0 2103 0 0 0 0 0 0 0 0 0 0

2293 23 EggMaterialCollection * 0 8576 23 EggMaterialCollection * 23 EggMaterialCollection * 0 0 2104 0 0 0 0 0 0 0 0 0 0

2294 29 EggMaterialCollection const * 0 8576 29 EggMaterialCollection const * 29 EggMaterialCollection const * 0 0 2295 0 0 0 0 0 0 0 0 0 0

2295 27 EggMaterialCollection const 0 8832 27 EggMaterialCollection const 27 EggMaterialCollection const 0 0 2104 0 0 0 0 0 0 0 0 0 0

2296 21 MaterialReplacement * 0 8576 44 EggMaterialCollection::MaterialReplacement * 44 EggMaterialCollection::MaterialReplacement * 0 0 2297 0 0 0 0 0 0 0 0 0 0

2297 19 MaterialReplacement 0 2367488 42 EggMaterialCollection::MaterialReplacement 42 EggMaterialCollection::MaterialReplacement 2104 0 2298 0 0 0 0 0 0 0 0 0 0

2298 37 map< PT_EggMaterial, PT_EggMaterial > 0 2048 37 map< PT_EggMaterial, PT_EggMaterial > 37 map< PT_EggMaterial, PT_EggMaterial > 0 0 0 0 0 0 0 0 0 0 0 0 0

2299 27 MaterialReplacement const * 0 8576 50 EggMaterialCollection::MaterialReplacement const * 50 EggMaterialCollection::MaterialReplacement const * 0 0 2300 0 0 0 0 0 0 0 0 0 0

2300 25 MaterialReplacement const 0 8832 48 EggMaterialCollection::MaterialReplacement const 48 EggMaterialCollection::MaterialReplacement const 0 0 2297 0 0 0 0 0 0 0 0 0 0

2301 18 EggPolygon const * 0 8576 18 EggPolygon const * 18 EggPolygon const * 0 0 2302 0 0 0 0 0 0 0 0 0 0

2302 16 EggPolygon const 0 8832 16 EggPolygon const 16 EggPolygon const 0 0 2105 0 0 0 0 0 0 0 0 0 0

2303 12 EggPolygon * 0 8576 12 EggPolygon * 12 EggPolygon * 0 0 2105 0 0 0 0 0 0 0 0 0 0

2304 10 LNormald * 0 8576 10 LNormald * 10 LNormald * 0 0 2183 0 0 0 0 0 0 0 0 0 0

2305 21 EggNurbsCurve const * 0 8576 21 EggNurbsCurve const * 21 EggNurbsCurve const * 0 0 2306 0 0 0 0 0 0 0 0 0 0

2306 19 EggNurbsCurve const 0 8832 19 EggNurbsCurve const 19 EggNurbsCurve const 0 0 2106 0 0 0 0 0 0 0 0 0 0

2307 15 EggNurbsCurve * 0 8576 15 EggNurbsCurve * 15 EggNurbsCurve * 0 0 2106 0 0 0 0 0 0 0 0 0 0

2308 12 EggSurface * 0 8576 12 EggSurface * 12 EggSurface * 0 0 2107 0 0 0 0 0 0 0 0 0 0

2309 18 EggSurface const * 0 8576 18 EggSurface const * 18 EggSurface const * 0 0 2310 0 0 0 0 0 0 0 0 0 0

2310 16 EggSurface const 0 8832 16 EggSurface const 16 EggSurface const 0 0 2107 0 0 0 0 0 0 0 0 0 0

2311 23 EggNurbsSurface const * 0 8576 23 EggNurbsSurface const * 23 EggNurbsSurface const * 0 0 2312 0 0 0 0 0 0 0 0 0 0

2312 21 EggNurbsSurface const 0 8832 21 EggNurbsSurface const 21 EggNurbsSurface const 0 0 2108 0 0 0 0 0 0 0 0 0 0

2313 17 EggNurbsSurface * 0 8576 17 EggNurbsSurface * 17 EggNurbsSurface * 0 0 2108 0 0 0 0 0 0 0 0 0 0

2314 16 EggPatch const * 0 8576 16 EggPatch const * 16 EggPatch const * 0 0 2315 0 0 0 0 0 0 0 0 0 0

2315 14 EggPatch const 0 8832 14 EggPatch const 14 EggPatch const 0 0 2117 0 0 0 0 0 0 0 0 0 0

2316 10 EggPatch * 0 8576 10 EggPatch * 10 EggPatch * 0 0 2117 0 0 0 0 0 0 0 0 0 0

2317 16 EggPoint const * 0 8576 16 EggPoint const * 16 EggPoint const * 0 0 2318 0 0 0 0 0 0 0 0 0 0

2318 14 EggPoint const 0 8832 14 EggPoint const 14 EggPoint const 0 0 2118 0 0 0 0 0 0 0 0 0 0

2319 10 EggPoint * 0 8576 10 EggPoint * 10 EggPoint * 0 0 2118 0 0 0 0 0 0 0 0 0 0

2320 17 EggPolysetMaker * 0 8576 17 EggPolysetMaker * 17 EggPolysetMaker * 0 0 2119 0 0 0 0 0 0 0 0 0 0

2321 19 EggPoolUniquifier * 0 8576 19 EggPoolUniquifier * 19 EggPoolUniquifier * 0 0 2122 0 0 0 0 0 0 0 0 0 0

2322 20 EggSAnimData const * 0 8576 20 EggSAnimData const * 20 EggSAnimData const * 0 0 2323 0 0 0 0 0 0 0 0 0 0

2323 18 EggSAnimData const 0 8832 18 EggSAnimData const 18 EggSAnimData const 0 0 2123 0 0 0 0 0 0 0 0 0 0

2324 14 EggSAnimData * 0 8576 14 EggSAnimData * 14 EggSAnimData * 0 0 2123 0 0 0 0 0 0 0 0 0 0

2325 16 EggTable const * 0 8576 16 EggTable const * 16 EggTable const * 0 0 2326 0 0 0 0 0 0 0 0 0 0

2326 14 EggTable const 0 8832 14 EggTable const 14 EggTable const 0 0 2124 0 0 0 0 0 0 0 0 0 0

2327 10 EggTable * 0 8576 10 EggTable * 10 EggTable * 0 0 2124 0 0 0 0 0 0 0 0 0 0

2328 22 EggTextureCollection * 0 8576 22 EggTextureCollection * 22 EggTextureCollection * 0 0 2126 0 0 0 0 0 0 0 0 0 0

2329 28 EggTextureCollection const * 0 8576 28 EggTextureCollection const * 28 EggTextureCollection const * 0 0 2330 0 0 0 0 0 0 0 0 0 0

2330 26 EggTextureCollection const 0 8832 26 EggTextureCollection const 26 EggTextureCollection const 0 0 2126 0 0 0 0 0 0 0 0 0 0

2331 20 TextureReplacement * 0 8576 42 EggTextureCollection::TextureReplacement * 42 EggTextureCollection::TextureReplacement * 0 0 2332 0 0 0 0 0 0 0 0 0 0

2332 18 TextureReplacement 0 2367488 40 EggTextureCollection::TextureReplacement 40 EggTextureCollection::TextureReplacement 2126 0 2333 0 0 0 0 0 0 0 0 0 0

2333 35 map< PT_EggTexture, PT_EggTexture > 0 2048 35 map< PT_EggTexture, PT_EggTexture > 35 map< PT_EggTexture, PT_EggTexture > 0 0 0 0 0 0 0 0 0 0 0 0 0

2334 26 TextureReplacement const * 0 8576 48 EggTextureCollection::TextureReplacement const * 48 EggTextureCollection::TextureReplacement const * 0 0 2335 0 0 0 0 0 0 0 0 0 0

2335 24 TextureReplacement const 0 8832 46 EggTextureCollection::TextureReplacement const 46 EggTextureCollection::TextureReplacement const 0 0 2332 0 0 0 0 0 0 0 0 0 0

2336 9 size_type 0 2367488 31 EggTextureCollection::size_type 31 EggTextureCollection::size_type 2126 0 2160 0 0 0 0 0 0 0 0 0 0

2337 22 EggTriangleFan const * 0 8576 22 EggTriangleFan const * 22 EggTriangleFan const * 0 0 2338 0 0 0 0 0 0 0 0 0 0

2338 20 EggTriangleFan const 0 8832 20 EggTriangleFan const 20 EggTriangleFan const 0 0 2127 0 0 0 0 0 0 0 0 0 0

2339 16 EggTriangleFan * 0 8576 16 EggTriangleFan * 16 EggTriangleFan * 0 0 2127 0 0 0 0 0 0 0 0 0 0

2340 24 EggTriangleStrip const * 0 8576 24 EggTriangleStrip const * 24 EggTriangleStrip const * 0 0 2341 0 0 0 0 0 0 0 0 0 0

2341 22 EggTriangleStrip const 0 8832 22 EggTriangleStrip const 22 EggTriangleStrip const 0 0 2128 0 0 0 0 0 0 0 0 0 0

2342 18 EggTriangleStrip * 0 8576 18 EggTriangleStrip * 18 EggTriangleStrip * 0 0 2128 0 0 0 0 0 0 0 0 0 0

2343 22 EggXfmAnimData const * 0 8576 22 EggXfmAnimData const * 22 EggXfmAnimData const * 0 0 2344 0 0 0 0 0 0 0 0 0 0

2344 20 EggXfmAnimData const 0 8832 20 EggXfmAnimData const 20 EggXfmAnimData const 0 0 2130 0 0 0 0 0 0 0 0 0 0

2345 13 EggXfmSAnim * 0 8576 13 EggXfmSAnim * 13 EggXfmSAnim * 0 0 2129 0 0 0 0 0 0 0 0 0 0

2346 19 EggXfmSAnim const * 0 8576 19 EggXfmSAnim const * 19 EggXfmSAnim const * 0 0 2347 0 0 0 0 0 0 0 0 0 0

2347 17 EggXfmSAnim const 0 8832 17 EggXfmSAnim const 17 EggXfmSAnim const 0 0 2129 0 0 0 0 0 0 0 0 0 0

2348 11 LMatrix4d * 0 8576 11 LMatrix4d * 11 LMatrix4d * 0 0 2152 0 0 0 0 0 0 0 0 0 0

2349 16 EggXfmAnimData * 0 8576 16 EggXfmAnimData * 16 EggXfmAnimData * 0 0 2130 0 0 0 0 0 0 0 0 0 0

0
99
2350 6 parent 0 2 2001 1025 0 0 0 0 0 0 0 15 EggNode::parent 0

2351 8 children 0 2 2003 1037 0 0 0 0 0 0 0 22 EggGroupNode::children 0

2352 5 depth 0 2 2007 1026 0 0 0 0 0 0 0 14 EggNode::depth 0

2353 3 fps 0 30 2010 1118 1115 1117 1116 0 0 0 0 19 EggAnimPreload::fps 0

2354 10 num_frames 0 30 2007 1122 1119 1121 1120 0 0 0 0 26 EggAnimPreload::num_frames 0

2355 9 _dnormals 0 2 2013 1146 0 0 0 0 0 0 0 24 EggAttributes::_dnormals 0

2356 7 _drgbas 0 2 2015 1147 0 0 0 0 0 0 0 22 EggAttributes::_drgbas 0

2357 5 _duvs 0 2 2018 1174 0 0 0 0 0 0 0 18 EggVertexUV::_duvs 0

2358 6 _dxyzs 0 2 2022 1237 0 0 0 0 0 0 0 17 EggVertex::_dxyzs 0

2359 10 group_type 0 6 2039 1369 1368 0 0 0 0 0 0 20 EggGroup::group_type 0

2360 14 billboard_type 0 6 2041 1372 1371 0 0 0 0 0 0 24 EggGroup::billboard_type 0

2361 16 billboard_center 0 30 2047 1376 1373 1375 1374 0 0 0 0 26 EggGroup::billboard_center 0

2362 7 cs_type 0 6 2042 1378 1377 0 0 0 0 0 0 17 EggGroup::cs_type 0

2363 13 collide_flags 0 6 2043 1380 1379 0 0 0 0 0 0 23 EggGroup::collide_flags 0

2364 14 collision_name 0 6 2049 1384 1381 0 0 0 0 0 0 24 EggGroup::collision_name 0

2365 8 dcs_type 0 6 2040 1386 1385 0 0 0 0 0 0 18 EggGroup::dcs_type 0

2366 9 dart_type 0 6 2044 1389 1388 0 0 0 0 0 0 19 EggGroup::dart_type 0

2367 11 switch_flag 0 6 2052 1391 1390 0 0 0 0 0 0 21 EggGroup::switch_flag 0

2368 10 switch_fps 0 6 2010 1393 1392 0 0 0 0 0 0 20 EggGroup::switch_fps 0

2369 12 object_types 0 66 2050 1397 0 0 0 0 1396 0 0 22 EggGroup::object_types 0

2370 10 model_flag 0 6 2052 1401 1400 0 0 0 0 0 0 20 EggGroup::model_flag 0

2371 12 texlist_flag 0 6 2052 1403 1402 0 0 0 0 0 0 22 EggGroup::texlist_flag 0

2372 10 nofog_flag 0 6 2052 1405 1404 0 0 0 0 0 0 20 EggGroup::nofog_flag 0

2373 10 decal_flag 0 6 2052 1407 1406 0 0 0 0 0 0 20 EggGroup::decal_flag 0

2374 11 direct_flag 0 6 2052 1409 1408 0 0 0 0 0 0 21 EggGroup::direct_flag 0

2375 11 portal_flag 0 6 2052 1411 1410 0 0 0 0 0 0 21 EggGroup::portal_flag 0

2376 13 occluder_flag 0 6 2052 1413 1412 0 0 0 0 0 0 23 EggGroup::occluder_flag 0

2377 12 indexed_flag 0 30 2052 1419 1416 1418 1417 0 0 0 0 22 EggGroup::indexed_flag 0

2378 12 collide_mask 0 30 2053 1423 1420 1422 1421 0 0 0 0 22 EggGroup::collide_mask 0

2379 17 from_collide_mask 0 30 2053 1427 1424 1426 1425 0 0 0 0 27 EggGroup::from_collide_mask 0

2380 17 into_collide_mask 0 30 2053 1431 1428 1430 1429 0 0 0 0 27 EggGroup::into_collide_mask 0

2381 10 blend_mode 0 6 2045 1433 1432 0 0 0 0 0 0 20 EggGroup::blend_mode 0

2382 15 blend_operand_a 0 6 2046 1435 1434 0 0 0 0 0 0 25 EggGroup::blend_operand_a 0

2383 15 blend_operand_b 0 6 2046 1437 1436 0 0 0 0 0 0 25 EggGroup::blend_operand_b 0

2384 11 blend_color 0 30 2056 1441 1438 1440 1439 0 0 0 0 21 EggGroup::blend_color 0

2385 3 lod 0 30 2060 1445 1442 1444 1443 0 0 0 0 13 EggGroup::lod 0

2386 12 default_pose 0 6 2061 1450 1452 0 0 0 0 0 0 22 EggGroup::default_pose 0

2387 8 scroll_u 0 6 2010 1458 1454 0 0 0 0 0 0 18 EggGroup::scroll_u 0

2388 8 scroll_v 0 6 2010 1459 1455 0 0 0 0 0 0 18 EggGroup::scroll_v 0

2389 8 scroll_w 0 6 2010 1460 1456 0 0 0 0 0 0 18 EggGroup::scroll_w 0

2390 8 scroll_r 0 6 2010 1461 1457 0 0 0 0 0 0 18 EggGroup::scroll_r 0

2391 12 texture_type 0 6 2068 1527 1526 0 0 0 0 0 0 24 EggTexture::texture_type 0

2392 6 format 0 6 2069 1529 1528 0 0 0 0 0 0 18 EggTexture::format 0

2393 16 compression_mode 0 6 2070 1531 1530 0 0 0 0 0 0 28 EggTexture::compression_mode 0

2394 9 wrap_mode 0 6 2071 1533 1532 0 0 0 0 0 0 21 EggTexture::wrap_mode 0

2395 6 wrap_u 0 6 2071 1535 1534 0 0 0 0 0 0 18 EggTexture::wrap_u 0

2396 6 wrap_v 0 6 2071 1538 1537 0 0 0 0 0 0 18 EggTexture::wrap_v 0

2397 6 wrap_w 0 6 2071 1541 1540 0 0 0 0 0 0 18 EggTexture::wrap_w 0

2398 9 minfilter 0 6 2072 1544 1543 0 0 0 0 0 0 21 EggTexture::minfilter 0

2399 9 magfilter 0 6 2072 1546 1545 0 0 0 0 0 0 21 EggTexture::magfilter 0

2400 18 anisotropic_degree 0 30 2007 1550 1547 1549 1548 0 0 0 0 30 EggTexture::anisotropic_degree 0

2401 8 env_type 0 6 2073 1552 1551 0 0 0 0 0 0 20 EggTexture::env_type 0

2402 12 saved_result 0 6 2052 1561 1560 0 0 0 0 0 0 24 EggTexture::saved_result 0

2403 7 tex_gen 0 6 2079 1563 1562 0 0 0 0 0 0 19 EggTexture::tex_gen 0

2404 13 quality_level 0 6 2080 1565 1564 0 0 0 0 0 0 25 EggTexture::quality_level 0

2405 10 stage_name 0 30 2049 1569 1566 1568 1567 0 0 0 0 22 EggTexture::stage_name 0

2406 8 priority 0 30 2007 1573 1570 1572 1571 0 0 0 0 20 EggTexture::priority 0

2407 5 color 0 30 2056 1577 1574 1576 1575 0 0 0 0 17 EggTexture::color 0

2408 12 border_color 0 30 2056 1581 1578 1580 1579 0 0 0 0 24 EggTexture::border_color 0

2409 7 uv_name 0 30 2049 1585 1582 1584 1583 0 0 0 0 19 EggTexture::uv_name 0

2410 9 rgb_scale 0 30 2007 1589 1586 1588 1587 0 0 0 0 21 EggTexture::rgb_scale 0

2411 11 alpha_scale 0 30 2007 1593 1590 1592 1591 0 0 0 0 23 EggTexture::alpha_scale 0

2412 14 alpha_filename 0 30 2081 1597 1594 1596 1595 0 0 0 0 26 EggTexture::alpha_filename 0

2413 14 alpha_fullpath 0 6 2081 1599 1598 0 0 0 0 0 0 26 EggTexture::alpha_fullpath 0

2414 18 alpha_file_channel 0 30 2007 1603 1600 1602 1601 0 0 0 0 30 EggTexture::alpha_file_channel 0

2415 9 multiview 0 6 2052 1605 1604 0 0 0 0 0 0 21 EggTexture::multiview 0

2416 9 num_views 0 30 2007 1609 1606 1608 1607 0 0 0 0 21 EggTexture::num_views 0

2417 12 read_mipmaps 0 6 2052 1611 1610 0 0 0 0 0 0 24 EggTexture::read_mipmaps 0

2418 7 min_lod 0 30 2010 1615 1612 1614 1613 0 0 0 0 19 EggTexture::min_lod 0

2419 7 max_lod 0 30 2010 1619 1616 1618 1617 0 0 0 0 19 EggTexture::max_lod 0

2420 8 lod_bias 0 30 2010 1623 1620 1622 1621 0 0 0 0 20 EggTexture::lod_bias 0

2421 17 multitexture_sort 0 2 2007 1626 0 0 0 0 0 0 0 29 EggTexture::multitexture_sort 0

2422 4 base 0 30 2057 1645 1642 1644 1643 0 0 0 0 17 EggMaterial::base 0

2423 4 diff 0 30 2057 1649 1646 1648 1647 0 0 0 0 17 EggMaterial::diff 0

2424 3 amb 0 30 2057 1653 1650 1652 1651 0 0 0 0 16 EggMaterial::amb 0

2425 4 emit 0 30 2057 1657 1654 1656 1655 0 0 0 0 17 EggMaterial::emit 0

2426 4 spec 0 30 2057 1661 1658 1660 1659 0 0 0 0 17 EggMaterial::spec 0

2427 9 shininess 0 30 2010 1665 1662 1664 1663 0 0 0 0 22 EggMaterial::shininess 0

2428 9 roughness 0 30 2010 1669 1666 1668 1667 0 0 0 0 22 EggMaterial::roughness 0

2429 8 metallic 0 30 2010 1673 1670 1672 1671 0 0 0 0 21 EggMaterial::metallic 0

2430 3 ior 0 30 2010 1677 1674 1676 1675 0 0 0 0 16 EggMaterial::ior 0

2431 5 local 0 30 2052 1681 1678 1680 1679 0 0 0 0 18 EggMaterial::local 0

2432 9 sort_name 0 2 2050 1700 0 0 0 0 0 0 0 23 EggPrimitive::sort_name 0

2433 7 shading 0 2 2086 1701 0 0 0 0 0 0 0 21 EggPrimitive::shading 0

2434 17 connected_shading 0 2 2086 1703 0 0 0 0 0 0 0 31 EggPrimitive::connected_shading 0

2435 8 textures 0 66 2087 1706 0 0 0 0 1709 0 0 22 EggPrimitive::textures 0

2436 8 material 0 30 2088 1712 1710 1713 1711 0 0 0 0 22 EggPrimitive::material 0

2437 10 bface_flag 0 6 2052 1715 1714 0 0 0 0 0 0 24 EggPrimitive::bface_flag 0

2438 8 vertices 0 358 2089 1735 1736 0 0 1732 1734 1737 0 22 EggPrimitive::vertices 0

2439 4 pool 0 2 2090 1738 0 0 0 0 0 0 0 18 EggPrimitive::pool 0

2440 10 components 0 70 2092 1744 1745 0 0 0 1743 0 0 33 EggCompositePrimitive::components 0

2441 22 auto_resolve_externals 0 6 2052 1759 1758 0 0 0 0 0 0 31 EggData::auto_resolve_externals 0

2442 17 coordinate_system 0 6 2094 1762 1761 0 0 0 0 0 0 26 EggData::coordinate_system 0

2443 12 egg_filename 0 6 2081 1764 1763 0 0 0 0 0 0 21 EggData::egg_filename 0

2444 13 egg_timestamp 0 6 2095 1766 1765 0 0 0 0 0 0 22 EggData::egg_timestamp 0

2445 5 order 0 6 2007 1842 1838 0 0 0 0 0 0 20 EggNurbsCurve::order 0

2446 6 degree 0 2 2007 1843 0 0 0 0 0 0 0 21 EggNurbsCurve::degree 0

2447 6 closed 0 2 2052 1846 0 0 0 0 0 0 0 21 EggNurbsCurve::closed 0

2448 5 knots 0 70 2010 1847 1840 0 0 0 1844 0 0 20 EggNurbsCurve::knots 0

9
2449 16 get_object_types 0 1396 1397 26 EggGroup::get_object_types 0

2450 14 get_group_refs 0 1471 1472 24 EggGroup::get_group_refs 0

2451 12 get_textures 0 1709 1706 26 EggPrimitive::get_textures 0

2452 12 get_vertices 0 1734 1735 26 EggPrimitive::get_vertices 0

2453 14 get_components 0 1743 1744 37 EggCompositePrimitive::get_components 0

2454 9 get_knots 0 1844 1847 24 EggNurbsCurve::get_knots 0

2455 11 get_u_knots 0 1872 1882 28 EggNurbsSurface::get_u_knots 0

2456 11 get_v_knots 0 1873 1883 28 EggNurbsSurface::get_v_knots 0

2457 12 get_textures 0 1932 1933 34 EggTextureCollection::get_textures 0

