GeomVertexRewriter

from panda3d.core import GeomVertexRewriter
class GeomVertexRewriter

Bases: GeomVertexWriter, GeomVertexReader

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 diagram

Inheritance diagram of GeomVertexRewriter

__init__(*args, **kwargs)
assign()

C++ Interface: assign(const GeomVertexRewriter self, const GeomVertexRewriter copy)

clear()

C++ Interface: clear(const GeomVertexRewriter self)

/**
  • Resets the GeomVertexRewriter to the initial state.

*/

getArray()

C++ Interface: get_array(GeomVertexRewriter self)

/**
  • Returns the array index containing the data type that the rewriter is

  • working on.

*/

getArrayData()

C++ Interface: get_array_data(GeomVertexRewriter self)

/**
  • Returns the particular array object that the rewriter is currently

  • processing.

*/

getArrayHandle()

C++ Interface: get_array_handle(GeomVertexRewriter self)

/**
  • Returns the write handle to the array object that the rewriter is currently

  • processing. This low-level call should be used with caution; be careful

  • with modifying the data in the handle out from under the

  • GeomVertexRewriter.

*/

getColumn()

C++ Interface: get_column(GeomVertexRewriter self)

/**
  • Returns the description of the data type that the rewriter is working on.

*/

getCurrentThread()

C++ Interface: get_current_thread(GeomVertexRewriter self)

/**
  • Returns the Thread pointer of the currently-executing thread, as passed to

  • the constructor of this object.

*/

getStartRow()

C++ Interface: get_start_row(GeomVertexRewriter self)

/**
  • Returns the row index at which the rewriter started. It will return to

  • this row if you reset the current column.

*/

getStride()

C++ Interface: get_stride(GeomVertexRewriter self)

/**
  • Returns the per-row stride (bytes between consecutive rows) of the

  • underlying vertex array. This low-level information is normally not needed

  • to use the GeomVertexRewriter directly.

*/

getVertexData()

C++ Interface: get_vertex_data(GeomVertexRewriter self)

/**
  • Returns the vertex data object that the rewriter is processing.

*/

get_array()

C++ Interface: get_array(GeomVertexRewriter self)

/**
  • Returns the array index containing the data type that the rewriter is

  • working on.

*/

get_array_data()

C++ Interface: get_array_data(GeomVertexRewriter self)

/**
  • Returns the particular array object that the rewriter is currently

  • processing.

*/

get_array_handle()

C++ Interface: get_array_handle(GeomVertexRewriter self)

/**
  • Returns the write handle to the array object that the rewriter is currently

  • processing. This low-level call should be used with caution; be careful

  • with modifying the data in the handle out from under the

  • GeomVertexRewriter.

*/

get_column()

C++ Interface: get_column(GeomVertexRewriter self)

/**
  • Returns the description of the data type that the rewriter is working on.

*/

get_current_thread()

C++ Interface: get_current_thread(GeomVertexRewriter self)

/**
  • Returns the Thread pointer of the currently-executing thread, as passed to

  • the constructor of this object.

*/

get_start_row()

C++ Interface: get_start_row(GeomVertexRewriter self)

/**
  • Returns the row index at which the rewriter started. It will return to

  • this row if you reset the current column.

*/

get_stride()

C++ Interface: get_stride(GeomVertexRewriter self)

/**
  • Returns the per-row stride (bytes between consecutive rows) of the

  • underlying vertex array. This low-level information is normally not needed

  • to use the GeomVertexRewriter directly.

*/

get_vertex_data()

C++ Interface: get_vertex_data(GeomVertexRewriter self)

/**
  • Returns the vertex data object that the rewriter is processing.

*/

hasColumn()

C++ Interface: has_column(GeomVertexRewriter self)

/**
  • Returns true if a valid data type has been successfully set, or false if

  • the data type does not exist.

*/

has_column()

C++ Interface: has_column(GeomVertexRewriter self)

/**
  • Returns true if a valid data type has been successfully set, or false if

  • the data type does not exist.

*/

isAtEnd()

C++ Interface: is_at_end(GeomVertexRewriter self)

/**
  • Returns true if the reader or writer is currently at the end of the list of

  • vertices, false otherwise.

*/

is_at_end()

C++ Interface: is_at_end(GeomVertexRewriter self)

/**
  • Returns true if the reader or writer is currently at the end of the list of

  • vertices, false otherwise.

*/

output()

C++ Interface: output(GeomVertexRewriter self, ostream out)

/**

*/

setColumn()

C++ Interface: set_column(const GeomVertexRewriter self, const InternalName name) set_column(const GeomVertexRewriter self, int column) set_column(const GeomVertexRewriter self, int array, const GeomVertexColumn column)

/**
  • 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.

*/

/**
  • Sets up the rewriter to use the data type with the indicated name.

  • 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.

*/

/**
  • Sets up the rewriter to use the indicated column description on the given

  • array.

  • 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.

*/

setRow()

C++ Interface: set_row(const GeomVertexRewriter self, int row)

/**
  • Sets the start, write, and write index to the indicated value. The

  • rewriter will begin traversing from the given row.

*/

setRowUnsafe()

C++ Interface: set_row_unsafe(const GeomVertexRewriter self, int row)

/**
  • Sets the start row to the indicated value, without internal checks. This

  • is the same as set_row(), but it does not check for the possibility that

  • the array has been reallocated internally for some reason; use only when

  • you are confident that the array is unchanged and you really need every bit

  • of available performance.

*/

set_column()

C++ Interface: set_column(const GeomVertexRewriter self, const InternalName name) set_column(const GeomVertexRewriter self, int column) set_column(const GeomVertexRewriter self, int array, const GeomVertexColumn column)

/**
  • 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.

*/

/**
  • Sets up the rewriter to use the data type with the indicated name.

  • 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.

*/

/**
  • Sets up the rewriter to use the indicated column description on the given

  • array.

  • 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.

*/

set_row()

C++ Interface: set_row(const GeomVertexRewriter self, int row)

/**
  • Sets the start, write, and write index to the indicated value. The

  • rewriter will begin traversing from the given row.

*/

set_row_unsafe()

C++ Interface: set_row_unsafe(const GeomVertexRewriter self, int row)

/**
  • Sets the start row to the indicated value, without internal checks. This

  • is the same as set_row(), but it does not check for the possibility that

  • the array has been reallocated internally for some reason; use only when

  • you are confident that the array is unchanged and you really need every bit

  • of available performance.

*/

upcastToGeomVertexReader()

C++ Interface: upcast_to_GeomVertexReader(const GeomVertexRewriter self)

upcast from GeomVertexRewriter to GeomVertexReader

upcastToGeomVertexWriter()

C++ Interface: upcast_to_GeomVertexWriter(const GeomVertexRewriter self)

upcast from GeomVertexRewriter to GeomVertexWriter

upcast_to_GeomVertexReader()

C++ Interface: upcast_to_GeomVertexReader(const GeomVertexRewriter self)

upcast from GeomVertexRewriter to GeomVertexReader

upcast_to_GeomVertexWriter()

C++ Interface: upcast_to_GeomVertexWriter(const GeomVertexRewriter self)

upcast from GeomVertexRewriter to GeomVertexWriter