15 #ifndef GEOMVERTEXWRITER_H 16 #define GEOMVERTEXWRITER_H 18 #include "pandabase.h" 19 #include "geomVertexData.h" 20 #include "geomVertexColumn.h" 21 #include "internalName.h" 23 #include "pointerTo.h" 85 const InternalName *name);
88 INLINE GeomVertexWriter(
const GeomVertexWriter ©);
89 INLINE
void operator = (
const GeomVertexWriter ©);
90 INLINE ~GeomVertexWriter();
95 INLINE
size_t get_stride()
const;
96 INLINE
Thread *get_current_thread()
const;
98 INLINE
bool set_column(
int column);
102 bool reserve_num_rows(
int num_rows);
104 INLINE
bool has_column()
const;
105 INLINE
int get_array()
const;
108 INLINE
void set_row_unsafe(
int row);
109 INLINE
void set_row(
int row);
111 INLINE
int get_start_row()
const;
112 INLINE
int get_write_row()
const;
113 INLINE
bool is_at_end()
const;
115 INLINE
void set_data1f(
float data);
116 INLINE
void set_data2f(
float x,
float y);
117 INLINE
void set_data2f(
const LVecBase2f &data);
118 INLINE
void set_data3f(
float x,
float y,
float z);
119 INLINE
void set_data3f(
const LVecBase3f &data);
120 INLINE
void set_data4f(
float x,
float y,
float z,
float w);
121 INLINE
void set_data4f(
const LVecBase4f &data);
122 INLINE
void set_matrix3f(
const LMatrix3f &mat);
123 INLINE
void set_matrix4f(
const LMatrix4f &mat);
125 INLINE
void set_data1d(
double data);
126 INLINE
void set_data2d(
double x,
double y);
127 INLINE
void set_data2d(
const LVecBase2d &data);
128 INLINE
void set_data3d(
double x,
double y,
double z);
129 INLINE
void set_data3d(
const LVecBase3d &data);
130 INLINE
void set_data4d(
double x,
double y,
double z,
double w);
131 INLINE
void set_data4d(
const LVecBase4d &data);
132 INLINE
void set_matrix3d(
const LMatrix3d &mat);
133 INLINE
void set_matrix4d(
const LMatrix4d &mat);
135 INLINE
void set_data1(PN_stdfloat data);
136 INLINE
void set_data2(PN_stdfloat x, PN_stdfloat y);
137 INLINE
void set_data2(
const LVecBase2 &data);
138 INLINE
void set_data3(PN_stdfloat x, PN_stdfloat y, PN_stdfloat z);
139 INLINE
void set_data3(
const LVecBase3 &data);
140 INLINE
void set_data4(PN_stdfloat x, PN_stdfloat y, PN_stdfloat z, PN_stdfloat w);
141 INLINE
void set_data4(
const LVecBase4 &data);
142 INLINE
void set_matrix3(
const LMatrix3 &mat);
143 INLINE
void set_matrix4(
const LMatrix4 &mat);
145 INLINE
void set_data1i(
int data);
146 INLINE
void set_data2i(
int a,
int b);
147 INLINE
void set_data2i(
const int data[2]);
148 INLINE
void set_data2i(
const LVecBase2i &data);
149 INLINE
void set_data3i(
int a,
int b,
int c);
150 INLINE
void set_data3i(
const int data[3]);
151 INLINE
void set_data3i(
const LVecBase3i &data);
152 INLINE
void set_data4i(
int a,
int b,
int c,
int d);
153 INLINE
void set_data4i(
const int data[4]);
154 INLINE
void set_data4i(
const LVecBase4i &data);
156 INLINE
void add_data1f(
float data);
157 INLINE
void add_data2f(
float x,
float y);
158 INLINE
void add_data2f(
const LVecBase2f &data);
159 INLINE
void add_data3f(
float x,
float y,
float z);
160 INLINE
void add_data3f(
const LVecBase3f &data);
161 INLINE
void add_data4f(
float x,
float y,
float z,
float w);
162 INLINE
void add_data4f(
const LVecBase4f &data);
163 INLINE
void add_matrix3f(
const LMatrix3f &mat);
164 INLINE
void add_matrix4f(
const LMatrix4f &mat);
166 INLINE
void add_data1d(
double data);
167 INLINE
void add_data2d(
double x,
double y);
168 INLINE
void add_data2d(
const LVecBase2d &data);
169 INLINE
void add_data3d(
double x,
double y,
double z);
170 INLINE
void add_data3d(
const LVecBase3d &data);
171 INLINE
void add_data4d(
double x,
double y,
double z,
double w);
172 INLINE
void add_data4d(
const LVecBase4d &data);
173 INLINE
void add_matrix3d(
const LMatrix3d &mat);
174 INLINE
void add_matrix4d(
const LMatrix4d &mat);
176 INLINE
void add_data1(PN_stdfloat data);
177 INLINE
void add_data2(PN_stdfloat x, PN_stdfloat y);
178 INLINE
void add_data2(
const LVecBase2 &data);
179 INLINE
void add_data3(PN_stdfloat x, PN_stdfloat y, PN_stdfloat z);
180 INLINE
void add_data3(
const LVecBase3 &data);
181 INLINE
void add_data4(PN_stdfloat x, PN_stdfloat y, PN_stdfloat z, PN_stdfloat w);
182 INLINE
void add_data4(
const LVecBase4 &data);
183 INLINE
void add_matrix3(
const LMatrix3 &mat);
184 INLINE
void add_matrix4(
const LMatrix4 &mat);
186 INLINE
void add_data1i(
int data);
187 INLINE
void add_data2i(
int a,
int b);
188 INLINE
void add_data2i(
const int data[2]);
189 INLINE
void add_data2i(
const LVecBase2i &data);
190 INLINE
void add_data3i(
int a,
int b,
int c);
191 INLINE
void add_data3i(
const int data[3]);
192 INLINE
void add_data3i(
const LVecBase3i &data);
193 INLINE
void add_data4i(
int a,
int b,
int c,
int d);
194 INLINE
void add_data4i(
const int data[4]);
195 INLINE
void add_data4i(
const LVecBase4i &data);
197 void output(ostream &out)
const;
200 INLINE GeomVertexColumn::Packer *get_packer()
const;
207 INLINE
void set_pointer(
int row);
208 INLINE
void quick_set_pointer(
int row);
209 INLINE
unsigned char *inc_pointer();
210 INLINE
unsigned char *inc_add_pointer();
226 GeomVertexColumn::Packer *_packer;
230 unsigned char *_pointer_begin;
231 unsigned char *_pointer_end;
232 unsigned char *_pointer;
239 static unsigned char empty_buffer[100];
249 #include "geomVertexWriter.I" This object provides a high-level interface for quickly writing a sequence of numeric values from a v...
This is the base class for all three-component vectors and points.
This is a const pointer to an InternalName, and should be used in lieu of a CPT(InternalName) in func...
This is a 4-by-4 transform matrix.
This is the base class for all two-component vectors and points.
This is the base class for all two-component vectors and points.
This is the base class for all three-component vectors and points.
This data object is returned by GeomVertexArrayData::get_handle() or modify_handle().
This is the base class for all three-component vectors and points.
Encapsulates the data from a GeomVertexData, pre-fetched for one stage of the pipeline.
This defines how a single column is interleaved within a vertex array stored within a Geom...
static Thread * get_current_thread()
Returns a pointer to the currently-executing Thread object.
This is a 3-by-3 transform matrix.
This is a 4-by-4 transform matrix.
This defines the actual numeric vertex data stored in a Geom, in the structure defined by a particula...
This is the base class for all two-component vectors and points.
This is the base class for all three-component vectors and points.
This is the base class for all three-component vectors and points.
This is the base class for all three-component vectors and points.
A thread; that is, a lightweight process.
This is a 3-by-3 transform matrix.
This is the data for one array of a GeomVertexData structure.