# GeomVertexRewriter

from pandac.PandaModules import GeomVertexRewriter

Class : GeomVertexRewriter
Description : This object provides the functionality of both a GeomVertexReader and a GeomVertexWriter, combined together into one convenient package. It is designed for making a single pass over a GeomVertexData object, modifying rows as it goes.
Although it doesn't provide any real performance benefit over using a separate reader and writer on the same data, it should probably be used in preference to a separate reader and writer, because it makes an effort to manage the reference counts properly between the reader and the writer to avoid accidentally dereferencing either array while recopying.

## Inheritance:

GeomVertexRewriter: GeomVertexWriter GeomVertexReader
GeomVertexWriter: GeomEnums
GeomEnums:
GeomVertexReader: GeomEnums

## Methods of GeomVertexRewriter:

GeomVertexRewriter (Constructor)
clear
getArray
getArrayData
getColumn
getStartRow
getVertexData
hasColumn
isAtEnd
operator =
output
setColumn
setRow

## Methods of GeomVertexWriter:

GeomVertexWriter (Constructor)
addData1f
addData1i
addData2f
addData2i
addData3f
addData3i
addData4f
addData4i
clear
getArray
getArrayData
getColumn
getCurrentThread
getStartRow
getVertexData
getWriteRow
hasColumn
isAtEnd
operator =
output
setColumn
setData1f
setData1i
setData2f
setData2i
setData3f
setData3i
setData4f
setData4i
setRow

## Methods of GeomVertexReader:

GeomVertexReader (Constructor)
clear
getArray
getArrayData
getColumn
getCurrentThread
getData1f
getData1i
getData2f
getData2i
getData3f
getData3i
getData4f
getData4i
getForce
getReadRow
getStartRow
getVertexData
hasColumn
isAtEnd
operator =
output
setColumn
setForce
setRow

## Constants in GeomEnums:

UHClient | (UsageHint)
UHStream | (UsageHint)
UHDynamic | (UsageHint)
UHStatic | (UsageHint)
UHUnspecified | (UsageHint)
GRIndexedPoint | (GeomRendering)
GRIndexedOther | (GeomRendering)
GRIndexedBits | (GeomRendering)
GRPoint | (GeomRendering)
GRPointUniformSize | (GeomRendering)
GRPerPointSize | (GeomRendering)
GRPointPerspective | (GeomRendering)
GRPointAspectRatio | (GeomRendering)
GRPointScale | (GeomRendering)
GRPointRotate | (GeomRendering)
GRPointSprite | (GeomRendering)
GRPointSpriteTexMatrix | (GeomRendering)
GRPointBits | (GeomRendering)
GRTriangleStrip | (GeomRendering)
GRTriangleFan | (GeomRendering)
GRLineStrip | (GeomRendering)
GRCompositeBits | (GeomRendering)
GRFlatFirstVertex | (GeomRendering)
GRFlatLastVertex | (GeomRendering)
GRShadeModelBits | (GeomRendering)
GRTexcoordLightVector | (GeomRendering)
SMUniform | (ShadeModel)
SMSmooth | (ShadeModel)
SMFlatFirstVertex | (ShadeModel)
SMFlatLastVertex | (ShadeModel)
PTNone | (PrimitiveType)
PTPolygons | (PrimitiveType)
PTLines | (PrimitiveType)
PTPoints | (PrimitiveType)
NTUint8 | (NumericType)
NTUint16 | (NumericType)
NTUint32 | (NumericType)
NTPackedDcba | (NumericType)
NTPackedDabc | (NumericType)
NTFloat32 | (NumericType)
COther | (Contents)
CPoint | (Contents)
CClipPoint | (Contents)
CVector | (Contents)
CTexcoord | (Contents)
CColor | (Contents)
CIndex | (Contents)
CMorphDelta | (Contents)
ATNone | (AnimationType)
ATPanda | (AnimationType)
ATHardware | (AnimationType)

GeomVertexRewriter GeomVertexRewriter::GeomVertexRewriter(Thread *current_thread = ((get_current_thread()))); Description: Constructs an invalid GeomVertexRewriter. You must use the assignment operator to assign a valid GeomVertexRewriter to this object before you can use it. Description: Constructs a new rewriter to process the vertices of the indicated data object. Description: Constructs a new rewriter to process the vertices of the indicated data object. This flavor creates the rewriter specifically to process the named data type. Description: Constructs a new rewriter to process the vertices of the indicated array only. Description:

clear void GeomVertexRewriter::clear(void); Description: Resets the GeomVertexRewriter to the initial state.

getArray int GeomVertexRewriter::get_array(void) const; Description: Returns the array index containing the data type that the rewriter is working on.

getArrayData GeomVertexArrayData *GeomVertexRewriter::get_array_data(void) const; Description: Returns the particular array object that the rewriter is currently processing.

getColumn GeomVertexColumn const *GeomVertexRewriter::get_column(void) const; Description: Returns the description of the data type that the rewriter is working on.

getStartRow int GeomVertexRewriter::get_start_row(void) const; Description: Returns the row index at which the rewriter started. It will return to this row if you reset the current column.

getVertexData GeomVertexData *GeomVertexRewriter::get_vertex_data(void) const; Description: Returns the vertex data object that the rewriter is processing.

hasColumn bool GeomVertexRewriter::has_column(void) const; Description: Returns true if a valid data type has been successfully set, or false if the data type does not exist.

isAtEnd bool GeomVertexRewriter::is_at_end(void) const; Description: Returns true if the reader or writer is currently at the end of the list of vertices, false otherwise.

operator = void GeomVertexRewriter::operator =(GeomVertexRewriter const &copy); Description:

output void GeomVertexRewriter::output(ostream &out) const; Description:

setColumn bool GeomVertexRewriter::set_column(int column); Description: Sets up the rewriter to use the nth data type of the GeomVertexFormat, numbering from 0. This also resets both the read and write row numbers to the start row (the same value passed to a previous call to set_row(), or 0 if set_row() was never called.) The return value is true if the data type is valid, false otherwise. Description: Sets up the rewriter to use the data type with the indicated name. Description: Sets up the rewriter to use the indicated column description on the given array.

setRow void GeomVertexRewriter::set_row(int row); Description: Sets the start, write, and write index to the indicated value. The rewriter will begin traversing from the given row.

GeomVertexWriter GeomVertexWriter::GeomVertexWriter(Thread *current_thread = ((get_current_thread()))); Description: Constructs an invalid GeomVertexWriter. You must use the assignment operator to assign a valid GeomVertexWriter to this object before you can use it. Description: Constructs a new writer to process the vertices of the indicated data object. Description: Constructs a new writer to process the vertices of the indicated data object. This flavor creates the writer specifically to process the named data type. Description: Constructs a new writer to process the vertices of the indicated array only. Description:

addData1f void GeomVertexWriter::add_data1f(float data); Description: Sets the write row to a particular 1-component value, and advances the write row. If the write row advances past the end of data, implicitly adds a new row to the data.

addData1i void GeomVertexWriter::add_data1i(int data); Description: Sets the write row to a particular 1-component value, and advances the write row. If the write row advances past the end of data, implicitly adds a new row to the data.

addData2f void GeomVertexWriter::add_data2f(float x, float y); Description: Sets the write row to a particular 2-component value, and advances the write row. If the write row advances past the end of data, implicitly adds a new row to the data.

addData2i void GeomVertexWriter::add_data2i(int a, int b); Description: Sets the write row to a particular 2-component value, and advances the write row. If the write row advances past the end of data, implicitly adds a new row to the data.

addData3f void GeomVertexWriter::add_data3f(float x, float y, float z); Description: Sets the write row to a particular 3-component value, and advances the write row. If the write row advances past the end of data, implicitly adds a new row to the data.

addData3i void GeomVertexWriter::add_data3i(int a, int b, int c); Description: Sets the write row to a particular 3-component value, and advances the write row. If the write row advances past the end of data, implicitly adds a new row to the data.

addData4f void GeomVertexWriter::add_data4f(float x, float y, float z, float w); Description: Sets the write row to a particular 4-component value, and advances the write row. If the write row advances past the end of data, implicitly adds a new row to the data.

addData4i void GeomVertexWriter::add_data4i(int a, int b, int c, int d); Description: Sets the write row to a particular 4-component value, and advances the write row. If the write row advances past the end of data, implicitly adds a new row to the data.

clear void GeomVertexWriter::clear(void); Description: Resets the GeomVertexWriter to the initial state.

getArray int GeomVertexWriter::get_array(void) const; Description: Returns the array index containing the data type that the writer is working on.

getArrayData GeomVertexArrayData *GeomVertexWriter::get_array_data(void) const; Description: Returns the particular array object that the writer is currently processing.

getColumn GeomVertexColumn const *GeomVertexWriter::get_column(void) const; Description: Returns the description of the data type that the writer is working on.

getCurrentThread Thread *GeomVertexWriter::get_current_thread(void) const; Description: Returns the Thread pointer of the currently-executing thread, as passed to the constructor of this object.

getStartRow int GeomVertexWriter::get_start_row(void) const; Description: Returns the row index at which the writer started. It will return to this row if you reset the current column.

getVertexData GeomVertexData *GeomVertexWriter::get_vertex_data(void) const; Description: Returns the vertex data object that the writer is processing. This may return NULL if the writer was constructed with just an array pointer.

getWriteRow int GeomVertexWriter::get_write_row(void) const; Description: Returns the row index to which the data will be written at the next call to set_data*() or add_data*().

hasColumn bool GeomVertexWriter::has_column(void) const; Description: Returns true if a valid data type has been successfully set, or false if the data type does not exist.

isAtEnd bool GeomVertexWriter::is_at_end(void) const; Description: Returns true if the writer is currently at the end of the list of vertices, false otherwise. If this is true, another call to set_data*() will result in a crash, but another call to add_data*() will add a new row.

operator = void GeomVertexWriter::operator =(GeomVertexWriter const &copy); Description:

output void GeomVertexWriter::output(ostream &out) const; Description:

setColumn bool GeomVertexWriter::set_column(int column); Description: Sets up the writer to use the nth data type of the GeomVertexFormat, numbering from 0. This also resets the write row number to the start row (the same value passed to a previous call to set_row(), or 0 if set_row() was never called.) The return value is true if the data type is valid, false otherwise. Description: Sets up the writer to use the data type with the indicated name. This also resets the write number to the start row (the same value passed to a previous call to set_row(), or 0 if set_row() was never called.) Description: Sets up the writer to use the indicated column description on the given array. This also resets the current write row number to the start row (the same value passed to a previous call to set_row(), or 0 if set_row() was never called.)

setData1f void GeomVertexWriter::set_data1f(float data); Description: Sets the write row to a particular 1-component value, and advances the write row. It is an error for the write row to advance past the end of data.

setData1i void GeomVertexWriter::set_data1i(int data); Description: Sets the write row to a particular 1-component value, and advances the write row. It is an error for the write row to advance past the end of data.

setData2f void GeomVertexWriter::set_data2f(float x, float y); Description: Sets the write row to a particular 2-component value, and advances the write row. It is an error for the write row to advance past the end of data.

setData2i void GeomVertexWriter::set_data2i(int a, int b); Description: Sets the write row to a particular 2-component value, and advances the write row. It is an error for the write row to advance past the end of data.

setData3f void GeomVertexWriter::set_data3f(float x, float y, float z); Description: Sets the write row to a particular 3-component value, and advances the write row. It is an error for the write row to advance past the end of data.

setData3i void GeomVertexWriter::set_data3i(int a, int b, int c); Description: Sets the write row to a particular 3-component value, and advances the write row. It is an error for the write row to advance past the end of data.

setData4f void GeomVertexWriter::set_data4f(float x, float y, float z, float w); Description: Sets the write row to a particular 4-component value, and advances the write row. It is an error for the write row to advance past the end of data.

setData4i void GeomVertexWriter::set_data4i(int a, int b, int c, int d); Description: Sets the write row to a particular 4-component value, and advances the write row. It is an error for the write row to advance past the end of data.

setRow void GeomVertexWriter::set_row(int row); Description: Sets the start row to the indicated value. The writer will begin writing to the indicated row; each subsequent set_data*() call will store the data into the subsequent row. If set_column() is called, the writer will return to this row.

GeomVertexReader GeomVertexReader::GeomVertexReader(Thread *current_thread = ((get_current_thread()))); Description: Constructs an invalid GeomVertexReader. You must use the assignment operator to assign a valid GeomVertexReader to this object before you can use it. Description: Constructs a new reader to process the vertices of the indicated data object. Description: Constructs a new reader to process the vertices of the indicated data object. This flavor creates the reader specifically to process the named data type. Description: Constructs a new reader to process the vertices of the indicated array only. Description:

clear void GeomVertexReader::clear(void); Description: Resets the GeomVertexReader to the initial state.

getArray int GeomVertexReader::get_array(void) const; Description: Returns the array index containing the data type that the reader is working on.

getArrayData GeomVertexArrayData const *GeomVertexReader::get_array_data(void) const; Description: Returns the particular array object that the reader is currently processing.

getColumn GeomVertexColumn const *GeomVertexReader::get_column(void) const; Description: Returns the description of the data type that the reader is working on.

getCurrentThread Thread *GeomVertexReader::get_current_thread(void) const; Description: Returns the Thread pointer of the currently-executing thread, as passed to the constructor of this object.

getData1f float GeomVertexReader::get_data1f(void); Description: Returns the data associated with the read row, expressed as a 1-component value, and advances the read row.

getData1i int GeomVertexReader::get_data1i(void); Description: Returns the data associated with the read row, expressed as a 1-component value, and advances the read row.

getData2f LVecBase2f const &GeomVertexReader::get_data2f(void); Description: Returns the data associated with the read row, expressed as a 2-component value, and advances the read row.

getData2i int const *GeomVertexReader::get_data2i(void); Description: Returns the data associated with the read row, expressed as a 2-component value, and advances the read row.

getData3f LVecBase3f const &GeomVertexReader::get_data3f(void); Description: Returns the data associated with the read row, expressed as a 3-component value, and advances the read row.

getData3i int const *GeomVertexReader::get_data3i(void); Description: Returns the data associated with the read row, expressed as a 3-component value, and advances the read row.

getData4f LVecBase4f const &GeomVertexReader::get_data4f(void); Description: Returns the data associated with the read row, expressed as a 4-component value, and advances the read row.

getData4i int const *GeomVertexReader::get_data4i(void); Description: Returns the data associated with the read row, expressed as a 4-component value, and advances the read row.

getForce bool GeomVertexReader::get_force(void) const; Description: Returns the value of the force flag. See set_force().

getReadRow int GeomVertexReader::get_read_row(void) const; Description: Returns the row index from which the data will be retrieved by the next call to get_data*().

getStartRow int GeomVertexReader::get_start_row(void) const; Description: Returns the row index at which the reader started. It will return to this row if you reset the current column.

getVertexData GeomVertexData const *GeomVertexReader::get_vertex_data(void) const; Description: Returns the vertex data object that the reader is processing. This may return NULL if the reader was constructed with just an array pointer.

hasColumn bool GeomVertexReader::has_column(void) const; Description: Returns true if a valid data type has been successfully set, or false if the data type does not exist (or if get_force() is false and the vertex data is nonresident).

isAtEnd bool GeomVertexReader::is_at_end(void) const; Description: Returns true if the reader is currently at the end of the list of vertices, false otherwise. If this is true, another call to get_data*() will result in a crash.

operator = void GeomVertexReader::operator =(GeomVertexReader const &copy); Description:

output void GeomVertexReader::output(ostream &out) const; Description:

setColumn bool GeomVertexReader::set_column(int column); Description: Sets up the reader to use the nth data type of the GeomVertexFormat, numbering from 0. This also resets the read row number to the start row (the same value passed to a previous call to set_row(), or 0 if set_row() was never called.) The return value is true if the data type is valid, false otherwise. Description: Sets up the reader to use the data type with the indicated name. Description: Sets up the reader to use the indicated column description on the given array. This also resets the current read row number to the start row (the same value passed to a previous call to set_row(), or 0 if set_row() was never called.)

setForce void GeomVertexReader::set_force(bool force); Description: Sets the value of the force flag. When this is true (the default), vertex data will be paged in from disk if necessary. When this is false, the GeomVertexData will simply return a failure code when attempting to read vertex data that is not resident (but will put it on the queue to become resident later). Normally, vertex data is always resident, so this will not be an issue. It is only possible for vertex data to be nonresident if you have enabled vertex paging via the GeomVertexArrayData and VertexDataPage interfaces.

setRow void GeomVertexReader::set_row(int row); Description: Sets the start row to the indicated value. The reader will begin reading from the indicated row; each subsequent get_data*() call will return the data from the subsequent row. If set_column() is called, the reader will return to this row.