Panda3D
|
This object provides a high-level interface for quickly reading a sequence of numeric values from a vertex table. More...
#include "geomVertexReader.h"
Public Member Functions | |
GeomVertexReader (Thread *current_thread=Thread::get_current_thread()) | |
Constructs an invalid GeomVertexReader. More... | |
GeomVertexReader (const GeomVertexData *vertex_data, Thread *current_thread=Thread::get_current_thread()) | |
Constructs a new reader to process the vertices of the indicated data object. More... | |
GeomVertexReader (const GeomVertexData *vertex_data, CPT_InternalName name, Thread *current_thread=Thread::get_current_thread()) | |
Constructs a new reader to process the vertices of the indicated data object. More... | |
GeomVertexReader (const GeomVertexArrayData *array_data, Thread *current_thread=Thread::get_current_thread()) | |
Constructs a new reader to process the vertices of the indicated array only. More... | |
GeomVertexReader (const GeomVertexArrayData *array_data, int column, Thread *current_thread=Thread::get_current_thread()) | |
Constructs a new reader to process the vertices of the indicated array only. More... | |
GeomVertexReader (const GeomVertexDataPipelineReader *data_reader, const InternalName *name, bool force=true) | |
Constructs a new reader to process the vertices of the indicated data object. More... | |
GeomVertexReader (const GeomVertexReader ©) | |
void | clear () |
Resets the GeomVertexReader to the initial state. More... | |
int | get_array () const |
Returns the array index containing the data type that the reader is working on. More... | |
const GeomVertexArrayData * | get_array_data () const |
Returns the particular array object that the reader is currently processing. More... | |
const GeomVertexArrayDataHandle * | get_array_handle () const |
Returns the read handle to the array object that the read is currently processing. More... | |
const GeomVertexColumn * | get_column () const |
Returns the description of the data type that the reader is working on. More... | |
Thread * | get_current_thread () const |
Returns the Thread pointer of the currently-executing thread, as passed to the constructor of this object. More... | |
PN_stdfloat | get_data1 () |
Returns the data associated with the read row, expressed as a 1-component value, and advances the read row. More... | |
double | get_data1d () |
Returns the data associated with the read row, expressed as a 1-component value, and advances the read row. More... | |
float | get_data1f () |
Returns the data associated with the read row, expressed as a 1-component value, and advances the read row. More... | |
int | get_data1i () |
Returns the data associated with the read row, expressed as a 1-component value, and advances the read row. More... | |
const LVecBase2 & | get_data2 () |
Returns the data associated with the read row, expressed as a 2-component value, and advances the read row. More... | |
const LVecBase2d & | get_data2d () |
Returns the data associated with the read row, expressed as a 2-component value, and advances the read row. More... | |
const LVecBase2f & | get_data2f () |
Returns the data associated with the read row, expressed as a 2-component value, and advances the read row. More... | |
const LVecBase2i & | get_data2i () |
Returns the data associated with the read row, expressed as a 2-component value, and advances the read row. More... | |
const LVecBase3 & | get_data3 () |
Returns the data associated with the read row, expressed as a 3-component value, and advances the read row. More... | |
const LVecBase3d & | get_data3d () |
Returns the data associated with the read row, expressed as a 3-component value, and advances the read row. More... | |
const LVecBase3f & | get_data3f () |
Returns the data associated with the read row, expressed as a 3-component value, and advances the read row. More... | |
const LVecBase3i & | get_data3i () |
Returns the data associated with the read row, expressed as a 3-component value, and advances the read row. More... | |
const LVecBase4 & | get_data4 () |
Returns the data associated with the read row, expressed as a 4-component value, and advances the read row. More... | |
const LVecBase4d & | get_data4d () |
Returns the data associated with the read row, expressed as a 4-component value, and advances the read row. More... | |
const LVecBase4f & | get_data4f () |
Returns the data associated with the read row, expressed as a 4-component value, and advances the read row. More... | |
const LVecBase4i & | get_data4i () |
Returns the data associated with the read row, expressed as a 4-component value, and advances the read row. More... | |
bool | get_force () const |
Returns the value of the force flag. More... | |
LMatrix3 | get_matrix3 () |
Returns the 3-by-3 matrix associated with the read row and advances the read row. More... | |
LMatrix3d | get_matrix3d () |
Returns the 3-by-3 matrix associated with the read row and advances the read row. More... | |
LMatrix3f | get_matrix3f () |
Returns the 3-by-3 matrix associated with the read row and advances the read row. More... | |
LMatrix4 | get_matrix4 () |
Returns the 4-by-4 matrix associated with the read row and advances the read row. More... | |
LMatrix4d | get_matrix4d () |
Returns the 4-by-4 matrix associated with the read row and advances the read row. More... | |
LMatrix4f | get_matrix4f () |
Returns the 4-by-4 matrix associated with the read row and advances the read row. More... | |
int | get_read_row () const |
Returns the row index from which the data will be retrieved by the next call to get_data*(). More... | |
int | get_start_row () const |
Returns the row index at which the reader started. More... | |
size_t | get_stride () const |
Returns the per-row stride (bytes between consecutive rows) of the underlying vertex array. More... | |
const GeomVertexData * | get_vertex_data () const |
Returns the vertex data object that the reader is processing. More... | |
bool | has_column () const |
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). More... | |
bool | is_at_end () const |
Returns true if the reader is currently at the end of the list of vertices, false otherwise. More... | |
void | operator= (const GeomVertexReader ©) |
void | output (ostream &out) const |
bool | set_column (int column) |
Sets up the reader to use the nth data type of the GeomVertexFormat, numbering from 0. More... | |
bool | set_column (CPT_InternalName name) |
Sets up the reader to use the data type with the indicated name. More... | |
bool | set_column (int array, const GeomVertexColumn *column) |
Sets up the reader to use the indicated column description on the given array. More... | |
void | set_force (bool force) |
Sets the value of the force flag. More... | |
void | set_row (int row) |
Sets the start row to the indicated value. More... | |
void | set_row_unsafe (int row) |
Sets the start row to the indicated value, without internal checks. More... | |
Additional Inherited Members | |
![]() | |
enum | AnimationType { AT_none, AT_panda, AT_hardware } |
enum | Contents { C_other, C_point, C_clip_point, C_vector, C_texcoord, C_color, C_index, C_morph_delta, C_matrix, C_normal } |
enum | GeomRendering { GR_indexed_point = 0x00001, GR_indexed_other = 0x10000, GR_indexed_bits = 0x10001, GR_point = 0x00002, GR_point_uniform_size = 0x00004, GR_per_point_size = 0x00008, GR_point_perspective = 0x00010, GR_point_aspect_ratio = 0x00020, GR_point_scale = 0x00040, GR_point_rotate = 0x00080, GR_point_sprite = 0x00100, GR_point_sprite_tex_matrix = 0x00200, GR_point_bits = 0x003fe, GR_triangle_strip = 0x00400, GR_triangle_fan = 0x00800, GR_line_strip = 0x01000, GR_composite_bits = 0x01c00, GR_strip_cut_index = 0x20000, GR_flat_first_vertex = 0x02000, GR_flat_last_vertex = 0x04000, GR_shade_model_bits = 0x06000 } |
enum | NumericType { NT_uint8, NT_uint16, NT_uint32, NT_packed_dcba, NT_packed_dabc, NT_float32, NT_float64, NT_stdfloat } |
enum | PrimitiveType { PT_none, PT_polygons, PT_lines, PT_points, PT_patches } |
enum | ShadeModel { SM_uniform, SM_smooth, SM_flat_first_vertex, SM_flat_last_vertex } |
enum | UsageHint { UH_client, UH_stream, UH_dynamic, UH_static, UH_unspecified } |
This object provides a high-level interface for quickly reading a sequence of numeric values from a vertex table.
It is particularly optimized for reading a single column of data values for a series of vertices, without changing columns between each number. Although you can also use one GeomVertexReader to read across the columns if it is convenient, by calling set_column() repeatedly at each vertex, it is faster to read down the columns, and to use a different GeomVertexReader for each column.
Note that a GeomVertexReader does not keep a reference count to the actual vertex data buffer (it grabs the current data buffer from the GeomVertexData whenever set_column() is called). This means that it is important not to keep a GeomVertexReader object around over a long period of time in which the data buffer is likely to be deallocated; it is intended for making a quick pass over the data in one session.
It also means that you should create any GeomVertexWriters *before* creating GeomVertexReaders on the same data, since the writer itself might cause the vertex buffer to be deallocated. Better yet, use a GeomVertexRewriter if you are going to create both of them anyway.
Definition at line 56 of file geomVertexReader.h.
|
inline |
Constructs an invalid GeomVertexReader.
You must use the assignment operator to assign a valid GeomVertexReader to this object before you can use it.
Definition at line 25 of file geomVertexReader.I.
Referenced by clear(), GeomVertexReader(), and GeomVertexRewriter::GeomVertexRewriter().
|
inline |
Constructs a new reader to process the vertices of the indicated data object.
Definition at line 39 of file geomVertexReader.I.
References GeomVertexReader().
|
inline |
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.
Definition at line 55 of file geomVertexReader.I.
References GeomVertexReader(), and set_column().
|
inline |
Constructs a new reader to process the vertices of the indicated array only.
Definition at line 72 of file geomVertexReader.I.
References GeomVertexReader().
|
inline |
Constructs a new reader to process the vertices of the indicated array only.
Definition at line 87 of file geomVertexReader.I.
References GeomVertexReader(), and set_column().
|
inline |
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.
Definition at line 104 of file geomVertexReader.I.
References GeomVertexReader(), and get_vertex_data().
|
inline |
Resets the GeomVertexReader to the initial state.
Definition at line 325 of file geomVertexReader.I.
References GeomVertexReader(), and has_column().
Referenced by GeomPrimitive::calc_sphere_radius(), GeomVertexRewriter::clear(), and set_column().
|
inline |
Returns the array index containing the data type that the reader is working on.
Definition at line 349 of file geomVertexReader.I.
References get_column().
Referenced by GeomVertexRewriter::get_array(), and has_column().
|
inline |
Returns the particular array object that the reader is currently processing.
Definition at line 188 of file geomVertexReader.I.
References get_array_handle().
Referenced by GeomVertexRewriter::get_array_data(), get_vertex_data(), and set_column().
|
inline |
Returns the read handle to the array object that the read is currently processing.
This low-level call should be used with caution.
Definition at line 200 of file geomVertexReader.I.
References get_stride().
Referenced by get_array_data().
|
inline |
Returns the description of the data type that the reader is working on.
Definition at line 360 of file geomVertexReader.I.
References set_row_unsafe().
Referenced by get_array(), GeomVertexRewriter::get_column(), GeomVertexRewriter::has_column(), CullableObject::munge_geom(), and set_column().
|
inline |
Returns the Thread pointer of the currently-executing thread, as passed to the constructor of this object.
Definition at line 224 of file geomVertexReader.I.
References set_force().
Referenced by GeomVertexRewriter::get_current_thread(), and get_stride().
|
inline |
Returns the data associated with the read row, expressed as a 1-component value, and advances the read row.
Definition at line 664 of file geomVertexReader.I.
References get_data1d(), get_data1f(), and get_data2().
Referenced by get_matrix4d(), and CullableObject::munge_geom().
|
inline |
Returns the data associated with the read row, expressed as a 1-component value, and advances the read row.
Definition at line 556 of file geomVertexReader.I.
References get_data2d(), and has_column().
Referenced by get_data1(), and get_matrix4f().
|
inline |
Returns the data associated with the read row, expressed as a 1-component value, and advances the read row.
Definition at line 448 of file geomVertexReader.I.
References get_data2f(), and has_column().
Referenced by get_data1(), is_at_end(), and StaticTextFont::StaticTextFont().
|
inline |
Returns the data associated with the read row, expressed as a 1-component value, and advances the read row.
Definition at line 762 of file geomVertexReader.I.
References get_data2i(), and has_column().
Referenced by EggSaver::add_node(), GeomPrimitive::calc_sphere_radius(), GeomPrimitivePipelineReader::check_minmax(), GeomVertexData::clear_cache_stage(), GeomVertexData::copy_from(), GeomTransformer::finish_collect(), get_matrix4(), Geom::get_next_modified(), GeomPrimitive::get_primitive_max_vertex(), GeomPrimitive::get_primitive_min_vertex(), CullableObject::munge_geom(), GeomPrimitive::offset_vertices(), and GeomVertexData::transform_vertices().
|
inline |
Returns the data associated with the read row, expressed as a 2-component value, and advances the read row.
Definition at line 680 of file geomVertexReader.I.
References get_data2d(), get_data2f(), and get_data3().
Referenced by EggSaver::add_node(), MultitexReducer::flatten(), MeshDrawer::geometry(), and get_data1().
|
inline |
Returns the data associated with the read row, expressed as a 2-component value, and advances the read row.
Definition at line 569 of file geomVertexReader.I.
References get_data3d(), has_column(), and LVecBase2d::zero().
Referenced by get_data1d(), and get_data2().
|
inline |
Returns the data associated with the read row, expressed as a 2-component value, and advances the read row.
Definition at line 461 of file geomVertexReader.I.
References get_data3f(), has_column(), and LVecBase2f::zero().
Referenced by get_data1f(), get_data2(), PhysxSoftBodyNode::set_from_geom(), and PhysxClothMeshDesc::set_from_node_path().
|
inline |
Returns the data associated with the read row, expressed as a 2-component value, and advances the read row.
Definition at line 775 of file geomVertexReader.I.
References get_data3i(), has_column(), and LVecBase2i::zero().
Referenced by get_data1i().
|
inline |
Returns the data associated with the read row, expressed as a 3-component value, and advances the read row.
Definition at line 696 of file geomVertexReader.I.
References get_data3d(), get_data3f(), and get_data4().
Referenced by EggSaver::add_node(), TinyGraphicsStateGuardian::begin_draw_primitives(), GeomPrimitive::calc_sphere_radius(), GeomPrimitive::calc_tight_bounds(), GeomVertexData::clear_cache_stage(), CollisionTraverser::clear_colliders(), GeomVertexData::copy_row_from(), MeshDrawer::geometry(), BulletSoftBodyNode::get_closest_node_index(), get_data2(), LineSegs::get_vertex(), TextAssembler::is_whitespace(), CullableObject::munge_geom(), ProjectionScreen::recompute_if_stale(), and StaticTextFont::StaticTextFont().
|
inline |
Returns the data associated with the read row, expressed as a 3-component value, and advances the read row.
Definition at line 582 of file geomVertexReader.I.
References get_data4d(), has_column(), and LVecBase3d::zero().
Referenced by get_data2d(), and get_data3().
|
inline |
Returns the data associated with the read row, expressed as a 3-component value, and advances the read row.
Definition at line 474 of file geomVertexReader.I.
References get_data4f(), has_column(), and LVecBase3f::zero().
Referenced by get_data2f(), get_data3(), PhysxSoftBodyNode::set_from_geom(), PhysxConvexMeshDesc::set_from_node_path(), PhysxCcdSkeletonDesc::set_from_node_path(), PhysxTriangleMeshDesc::set_from_node_path(), PhysxClothMeshDesc::set_from_node_path(), and SceneGraphAnalyzer::write().
|
inline |
Returns the data associated with the read row, expressed as a 3-component value, and advances the read row.
Definition at line 788 of file geomVertexReader.I.
References get_data4i(), has_column(), and LVecBase3i::zero().
Referenced by get_data2i().
|
inline |
Returns the data associated with the read row, expressed as a 4-component value, and advances the read row.
Definition at line 712 of file geomVertexReader.I.
References get_data4d(), get_data4f(), and get_matrix3().
Referenced by EggSaver::add_node(), TinyGraphicsStateGuardian::begin_draw_primitives(), GeomVertexData::clear_cache_stage(), GeomVertexData::copy_from(), GeomVertexData::copy_row_from(), get_data3(), LineSegs::get_vertex_color(), CullableObject::munge_geom(), GeomTransformer::transform_texcoords(), and GeomVertexData::transform_vertices().
|
inline |
Returns the data associated with the read row, expressed as a 4-component value, and advances the read row.
Definition at line 595 of file geomVertexReader.I.
References get_matrix3d(), has_column(), and LVecBase4d::zero().
Referenced by get_data3d(), and get_data4().
|
inline |
Returns the data associated with the read row, expressed as a 4-component value, and advances the read row.
Definition at line 487 of file geomVertexReader.I.
References get_matrix3f(), has_column(), and LVecBase4f::zero().
Referenced by get_data3f(), and get_data4().
|
inline |
Returns the data associated with the read row, expressed as a 4-component value, and advances the read row.
Definition at line 801 of file geomVertexReader.I.
References has_column(), set_column(), and LVecBase4i::zero().
Referenced by GeomTransformer::finish_collect(), and get_data3i().
|
inline |
Returns the value of the force flag.
See set_force().
Definition at line 256 of file geomVertexReader.I.
References set_column().
Referenced by set_force().
|
inline |
Returns the 3-by-3 matrix associated with the read row and advances the read row.
This is a special method that only works when the column in question contains a matrix of an appropriate size.
Definition at line 729 of file geomVertexReader.I.
References get_matrix3d(), get_matrix3f(), and get_matrix4().
Referenced by get_data4().
|
inline |
Returns the 3-by-3 matrix associated with the read row and advances the read row.
This is a special method that only works when the column in question contains a matrix of an appropriate size.
Definition at line 609 of file geomVertexReader.I.
References get_matrix4d(), has_column(), LMatrix3d::ident_mat(), and LMatrix3d::set_row().
Referenced by get_data4d(), and get_matrix3().
|
inline |
Returns the 3-by-3 matrix associated with the read row and advances the read row.
This is a special method that only works when the column in question contains a matrix of an appropriate size.
Definition at line 501 of file geomVertexReader.I.
References get_matrix4f(), has_column(), LMatrix3f::ident_mat(), and LMatrix3f::set_row().
Referenced by get_data4f(), and get_matrix3().
|
inline |
Returns the 4-by-4 matrix associated with the read row and advances the read row.
This is a special method that only works when the column in question contains a matrix of an appropriate size.
Definition at line 746 of file geomVertexReader.I.
References get_data1i(), get_matrix4d(), and get_matrix4f().
Referenced by get_matrix3().
|
inline |
Returns the 4-by-4 matrix associated with the read row and advances the read row.
This is a special method that only works when the column in question contains a matrix of an appropriate size.
Definition at line 636 of file geomVertexReader.I.
References get_data1(), has_column(), LMatrix4d::ident_mat(), and LMatrix4d::set_row().
Referenced by get_matrix3d(), and get_matrix4().
|
inline |
Returns the 4-by-4 matrix associated with the read row and advances the read row.
This is a special method that only works when the column in question contains a matrix of an appropriate size.
Definition at line 528 of file geomVertexReader.I.
References get_data1d(), has_column(), LMatrix4f::ident_mat(), and LMatrix4f::set_row().
Referenced by get_matrix3f(), and get_matrix4().
|
inline |
Returns the row index from which the data will be retrieved by the next call to get_data*().
Definition at line 423 of file geomVertexReader.I.
References is_at_end().
Referenced by get_start_row(), and set_column().
|
inline |
Returns the row index at which the reader started.
It will return to this row if you reset the current column.
Definition at line 412 of file geomVertexReader.I.
References get_read_row().
Referenced by GeomVertexRewriter::get_start_row(), and set_row().
|
inline |
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 GeomVertexReader directly.
Definition at line 213 of file geomVertexReader.I.
References get_current_thread().
Referenced by get_array_handle(), and GeomVertexRewriter::get_stride().
|
inline |
Returns the vertex data object that the reader is processing.
This may return NULL if the reader was constructed with just an array pointer.
Definition at line 177 of file geomVertexReader.I.
References get_array_data().
Referenced by GeomVertexReader(), and GeomVertexRewriter::get_vertex_data().
|
inline |
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).
Definition at line 338 of file geomVertexReader.I.
References get_array().
Referenced by TinyGraphicsStateGuardian::begin_draw_primitives(), GeomPrimitive::calc_sphere_radius(), GeomPrimitive::calc_tight_bounds(), clear(), GeomVertexData::clear_cache_stage(), get_data1d(), get_data1f(), get_data1i(), get_data2d(), get_data2f(), get_data2i(), get_data3d(), get_data3f(), get_data3i(), get_data4d(), get_data4f(), get_data4i(), get_matrix3d(), get_matrix3f(), get_matrix4d(), get_matrix4f(), CullableObject::munge_geom(), set_row(), and set_row_unsafe().
|
inline |
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.
Definition at line 436 of file geomVertexReader.I.
References get_data1f().
Referenced by GeomPrimitive::calc_sphere_radius(), GeomVertexData::copy_from(), MultitexReducer::flatten(), BulletSoftBodyNode::get_closest_node_index(), GeomPrimitive::get_primitive_max_vertex(), get_read_row(), GeomVertexRewriter::is_at_end(), CullableObject::munge_geom(), ProjectionScreen::recompute_if_stale(), PhysxSoftBodyNode::set_from_geom(), PhysxConvexMeshDesc::set_from_node_path(), PhysxCcdSkeletonDesc::set_from_node_path(), PhysxTriangleMeshDesc::set_from_node_path(), PhysxClothMeshDesc::set_from_node_path(), GeomTransformer::transform_texcoords(), and SceneGraphAnalyzer::write().
|
inline |
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.
Definition at line 274 of file geomVertexReader.I.
Referenced by EggSaver::add_node(), GeomVertexData::copy_from(), GeomVertexReader(), get_data4i(), get_force(), GeomVertexRewriter::set_column(), set_column(), and GeomVertexData::transform_vertices().
|
inline |
Sets up the reader to use the data type with the indicated name.
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.
Definition at line 303 of file geomVertexReader.I.
References clear().
bool GeomVertexReader::set_column | ( | int | array, |
const GeomVertexColumn * | column | ||
) |
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.)
The return value is true if the data type is valid, false otherwise.
Definition at line 38 of file geomVertexReader.cxx.
References get_array_data(), get_column(), GeomVertexColumn::get_name(), get_read_row(), and set_column().
|
inline |
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.
Definition at line 245 of file geomVertexReader.I.
References get_force().
Referenced by get_current_thread().
|
inline |
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.
Definition at line 396 of file geomVertexReader.I.
References get_start_row(), and has_column().
Referenced by EggSaver::add_node(), GeomVertexRewriter::set_row(), and set_row_unsafe().
|
inline |
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.
Definition at line 379 of file geomVertexReader.I.
References has_column(), and set_row().
Referenced by TinyGraphicsStateGuardian::begin_draw_primitives(), GeomPrimitive::calc_sphere_radius(), GeomPrimitive::calc_tight_bounds(), GeomVertexData::clear_cache_stage(), CollisionTraverser::clear_colliders(), MeshDrawer::geometry(), get_column(), GeomPrimitive::get_primitive_max_vertex(), GeomPrimitive::get_primitive_min_vertex(), LineSegs::get_vertex(), GeomPrimitivePipelineReader::get_vertex(), LineSegs::get_vertex_color(), GeomPrimitive::offset_vertices(), PhysxSoftBodyNode::set_from_geom(), GeomVertexRewriter::set_row_unsafe(), and GeomVertexData::transform_vertices().