# GeomVertexArrayData

from pandac.PandaModules import GeomVertexArrayData

Class : GeomVertexArrayData
Description : This is the data for one array of a GeomVertexData structure. Many GeomVertexData structures will only define one array, with all data elements interleaved (DirectX 8.0 and before insisted on this format); some will define multiple arrays.
DirectX calls this concept of one array a "stream". It also closely correlates with the concept of a vertex buffer.
This object is just a block of data. In general, you should not be directly messing with this object from application code. See GeomVertexData for the organizing structure, and see GeomVertexReader/Writer/Rewriter for high-level tools to manipulate the actual vertex data.

## Inheritance:

GeomVertexArrayData: TypedWritableReferenceCount GeomEnums
TypedWritableReferenceCount: TypedWritable ReferenceCount
TypedWritable: TypedObject
TypedObject:
ReferenceCount:
GeomEnums:

## Methods of GeomVertexArrayData:

clearRows
getArrayFormat
getClassType
getData
getDataSizeBytes
getModified
getNumRows
getUsageHint
hasColumn
modifyData
operator =
operator delete
operator new
output
setData
setNumRows
setUsageHint
write

## Methods of TypedWritableReferenceCount:

getClassType

## Methods of TypedWritable:

getClassType

## Methods of TypedObject:

getBestParentFromSet
getClassType
getType
getTypeIndex
isExactType
isOfType

## Methods of ReferenceCount:

getClassType
getRefCount
ref
testRefCountIntegrity
unref

## 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)

clearRows void GeomVertexArrayData::clear_rows(void); Description: Removes all of the rows in the array. Functionally equivalent to set_num_rows(0).

getArrayFormat GeomVertexArrayFormat const *GeomVertexArrayData::get_array_format(void) const; Filename: geomVertexArrayData.I Created by: drose (17Mar05) PANDA 3D SOFTWARE Copyright (c) 2001 - 2004, Disney Enterprises, Inc. All rights reserved All use of this software is subject to the terms of the Panda 3d Software license. You should have received a copy of this license along with this source code; you will also find a current copy of the license at http://etc.cmu.edu/panda3d/docs/license/ . To contact the maintainers of this program write to panda3d-general@lists.sourceforge.net . Description: Returns the format object that describes this array.

getClassType static TypeHandle GeomVertexArrayData::get_class_type(void); Undocumented function.

getData ConstPointerToArray< unsigned char > GeomVertexArrayData::get_data(void) const; Description: Returns a const pointer to the actual vertex data, for application code to directly examine (but not modify).

getDataSizeBytes int GeomVertexArrayData::get_data_size_bytes(void) const; Description: Returns the number of bytes stored in the array.

getModified UpdateSeq GeomVertexArrayData::get_modified(void) const; Description: Returns a sequence number which is guaranteed to change at least every time the array vertex data is modified.

getNumRows int GeomVertexArrayData::get_num_rows(void) const; Description: Returns the number of rows stored in the array, based on the number of bytes and the stride. This should be the same for all arrays within a given GeomVertexData object.

getUsageHint GeomEnums::UsageHint GeomVertexArrayData::get_usage_hint(void) const; Description: Returns the usage hint that describes to the rendering backend how often the vertex data will be modified and/or rendered. See geomEnums.h.

hasColumn bool GeomVertexArrayData::has_column(InternalName const *name) const; Description: Returns true if the array has the named column, false otherwise. This is really just a shortcut for asking the same thing from the format.

modifyData PointerToArray< unsigned char > GeomVertexArrayData::modify_data(void); Description: Returns a modifiable pointer to the actual vertex array, so that application code may directly manipulate it. Use with caution. Don't call this in a downstream thread unless you don't mind it blowing away other changes you might have recently made in an upstream thread.

operator = void GeomVertexArrayData::operator =(GeomVertexArrayData const &copy); Description: The copy assignment operator is not pipeline-safe. This will completely obliterate all stages of the pipeline, so don't do it for a GeomVertexArrayData that is actively being used for rendering.

operator delete void GeomVertexArrayData::operator delete(void *ptr); Undocumented function.

operator new void *GeomVertexArrayData::operator new(unsigned int size); Undocumented function.

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

setData void GeomVertexArrayData::set_data(ConstPointerToArray< unsigned char > data); Description: Replaces the vertex data array with a completely new array. Don't call this in a downstream thread unless you don't mind it blowing away other changes you might have recently made in an upstream thread.

setNumRows bool GeomVertexArrayData::set_num_rows(int n); Description: Sets the length of the array to n rows. Normally, you would not call this directly, since all of the arrays in a particular GeomVertexData must have the same number of rows; instead, call GeomVertexData::set_num_rows(). The return value is true if the number of rows was changed, false if the object already contained n rows (or if there was some error). The new vertex data is initialized to 0, including the "color" column (but see GeomVertexData::set_num_rows()). Don't call this in a downstream thread unless you don't mind it blowing away other changes you might have recently made in an upstream thread.

setUsageHint void GeomVertexArrayData::set_usage_hint(GeomEnums::UsageHint usage_hint); Description: Changes the UsageHint hint for this array. See get_usage_hint(). Don't call this in a downstream thread unless you don't mind it blowing away other changes you might have recently made in an upstream thread.

write void GeomVertexArrayData::write(ostream &out, int indent_level = (0)) const; Description:

getClassType static TypeHandle TypedWritableReferenceCount::get_class_type(void); Undocumented function.

getClassType static TypeHandle TypedWritable::get_class_type(void); Undocumented function.

getBestParentFromSet int TypedObject::get_best_parent_from_Set(set< int > const &) const; Description: Returns true if the current object is the indicated type exactly.

getClassType static TypeHandle TypedObject::get_class_type(void); Undocumented function.

getType virtual TypeHandle TypedObject::get_type(void) const = 0; Derived classes should override this function to return get_class_type().

getTypeIndex int TypedObject::get_type_index(void) const; Description: Returns the internal index number associated with this object's TypeHandle, a unique number for each different type. This is equivalent to get_type().get_index().

isExactType bool TypedObject::is_exact_type(TypeHandle handle) const; Description: Returns true if the current object is the indicated type exactly.

isOfType bool TypedObject::is_of_type(TypeHandle handle) const; Description: Returns true if the current object is or derives from the indicated type.

getClassType static TypeHandle ReferenceCount::get_class_type(void); Undocumented function.

getRefCount int ReferenceCount::get_ref_count(void) const; Description: Returns the current reference count.

ref void ReferenceCount::ref(void) const; Description: Explicitly increments the reference count. User code should avoid using ref() and unref() directly, which can result in missed reference counts. Instead, let a PointerTo object manage the reference counting automatically. This function is const, even though it changes the object, because generally fiddling with an object's reference count isn't considered part of fiddling with the object. An object might be const in other ways, but we still need to accurately count the number of references to it.

testRefCountIntegrity bool ReferenceCount::test_ref_count_integrity(void) const; Description: Does some easy checks to make sure that the reference count isn't completely bogus. Returns true if ok, false otherwise.

unref bool ReferenceCount::unref(void) const; Description: Explicitly decrements the reference count. Note that the object will not be implicitly deleted by unref() simply because the reference count drops to zero. (Having a member function delete itself is problematic; plus, we don't have a virtual destructor anyway.) However, see the helper function unref_delete(). User code should avoid using ref() and unref() directly, which can result in missed reference counts. Instead, let a PointerTo object manage the reference counting automatically. This function is const, even though it changes the object, because generally fiddling with an object's reference count isn't considered part of fiddling with the object. An object might be const in other ways, but we still need to accurately count the number of references to it. The return value is true if the new reference count is nonzero, false if it is zero.