18 #include "pandabase.h"
20 #include "eggObject.h"
21 #include "eggAttributes.h"
22 #include "eggMorphList.h"
23 #include "eggVertexUV.h"
24 #include "eggVertexAux.h"
26 #include "referenceCount.h"
29 #include "iterator_types.h"
50 typedef UVMap::size_type uv_size_type;
54 typedef AuxMap::size_type aux_size_type;
65 INLINE
bool is_forward_reference()
const;
69 INLINE
void set_pos(
double pos);
70 INLINE
void set_pos(
const LPoint2d &pos);
71 INLINE
void set_pos(
const LPoint3d &pos);
72 INLINE
void set_pos(
const LPoint4d &pos);
73 INLINE
void set_pos4(
const LPoint4d &pos);
81 INLINE
int get_num_dimensions()
const;
82 INLINE
double get_pos1()
const;
87 INLINE
bool has_uv()
const;
89 INLINE
void set_uv(
const LTexCoordd &texCoord);
90 INLINE
void clear_uv();
91 bool has_uv(
const string &name)
const;
92 bool has_uvw(
const string &name)
const;
94 const LTexCoord3d &get_uvw(
const string &name)
const;
95 void set_uv(
const string &name,
const LTexCoordd &texCoord);
96 void set_uvw(
const string &name,
const LTexCoord3d &texCoord);
97 const EggVertexUV *get_uv_obj(
const string &name)
const;
100 void clear_uv(
const string &name);
102 INLINE
bool has_aux()
const;
103 INLINE
void clear_aux();
104 bool has_aux(
const string &name)
const;
105 const LVecBase4d &get_aux(
const string &name)
const;
106 void set_aux(
const string &name,
const LVecBase4d &aux);
107 const EggVertexAux *get_aux_obj(
const string &name)
const;
110 void clear_aux(
const string &name);
118 INLINE uv_size_type uv_size()
const;
122 INLINE aux_size_type aux_size()
const;
125 INLINE
int get_index()
const;
127 INLINE
void set_external_index(
int external_index);
128 INLINE
int get_external_index()
const;
129 INLINE
void set_external_index2(
int external_index2);
130 INLINE
int get_external_index2()
const;
132 void write(ostream &out,
int indent_level)
const;
136 int get_num_local_coord()
const;
137 int get_num_global_coord()
const;
142 GroupRef::const_iterator gref_begin()
const;
143 GroupRef::const_iterator gref_end()
const;
144 GroupRef::size_type gref_size()
const;
146 bool has_gref(
const EggGroup *group)
const;
148 void copy_grefs_from(
const EggVertex &other);
152 PrimitiveRef::const_iterator pref_begin()
const;
153 PrimitiveRef::const_iterator pref_end()
const;
154 PrimitiveRef::size_type pref_size()
const;
159 void test_gref_integrity()
const;
160 void test_pref_integrity()
const;
162 void test_gref_integrity()
const { }
163 void test_pref_integrity()
const { }
166 void output(ostream &out)
const;
172 bool _forward_reference;
174 int _external_index, _external_index2;
176 short _num_dimensions;
187 static void init_type() {
188 EggObject::init_type();
189 EggAttributes::init_type();
190 register_type(_type_handle,
"EggVertex",
191 EggObject::get_class_type(),
192 EggAttributes::get_class_type());
195 return get_class_type();
197 virtual TypeHandle force_init_type() {init_type();
return get_class_type();}
207 INLINE ostream &operator << (ostream &out,
const EggVertex &vert) {
224 #include "eggVertex.I"
A base class for any of a number of kinds of geometry primitives: polygons, point lights...
The set of UV's that may or may not be assigned to a vertex.
An STL function object for sorting vertices into order by properties.
This is an iterator adaptor that converts any iterator that returns a pair (e.g.
This is a 4-by-4 transform matrix.
void write(ostream &out, int indent_level) const
Writes the attributes to the indicated output stream in Egg format.
This is a four-component point in space.
void transform(const LMatrix4d &mat)
Applies the indicated transformation matrix to the attributes.
This is the base class for all three-component vectors and points.
int compare_to(const EggAttributes &other) const
An ordering operator to compare two vertices for sorting order.
This is a two-component point in space.
The main glue of the egg hierarchy, this corresponds to the <Group>, <Instance>, and <Joint> type nod...
The set of attributes that may be applied to vertices as well as polygons, such as surface normal and...
Any one-, two-, three-, or four-component vertex, possibly with attributes such as a normal...
The set of named auxiliary data that may or may not be assigned to a vertex.
bool sorts_less_than(const EggAttributes &other) const
An ordering operator to compare two vertices for sorting order.
This is a three-component point in space (as opposed to a three-component vector, which represents a ...
TypeHandle is the identifier used to differentiate C++ class types.
A collection of vertices.
The highest-level base class in the egg directory.