#import <CC3VertexArrays.h>
Additional Inherited Members | |
Class Methods inherited from CC3VertexArray | |
(id) | + arrayFromCPODData:fromSPODMesh: |
(GLenum) | + defaultSemantic |
(id) | + vertexArray |
(id) | + vertexArrayWithName: |
(id) | + vertexArrayWithTag: |
(id) | + vertexArrayWithTag:withName: |
Properties inherited from CC3VertexArray | |
GLvoid *elements | __deprecated |
GLuint elementCount | __deprecated |
GLuint elementStride | __deprecated |
GLfloat capacityExpansionFactor | __deprecated |
BOOL shouldReleaseRedundantData | __deprecated |
GLuint | allocatedVertexCapacity |
GLuint | bufferID |
GLenum | bufferTarget |
GLenum | bufferUsage |
GLuint | elementLength |
GLuint | elementOffset |
GLint | elementSize |
GLenum | elementType |
BOOL | isUsingGLBuffer |
GLenum | semantic |
BOOL | shouldAllowVertexBuffering |
BOOL | shouldNormalizeContent |
BOOL | shouldReleaseRedundantContent |
GLuint | vertexCount |
GLuint | vertexStride |
GLvoid * | vertices |
A CC3VertexArray that manages a collection of bone weights for each vertex.
Each bone weight indicates how much that particular bone influences the movement of the vertex for a mesh that uses vertex skinning. Vertex skinning is the manipulation of a soft-body mesh under control of a skeleton of bone nodes.
For each vertex, the bone to which the weight should be applied is identified by the bone index specified in the corresponding entry in the CC3VertexBoneIndices vertex array.
This vertex array works together with an instace of a CC3VertexBoneIndices vertex array. The elementSize property of the two vertex arrays must be equal, and under OpenGL ES 1.1, must not be larger than the maximum number of available bone influences allowed by the platform, which can be retreived from CC3OpenGL.sharedGL.maxNumberOfBoneInfluencesPerVertex.
- (GLfloat*) boneWeightsAt: | (GLuint) | vtxIndex |
Returns the weights of all of the bones that influence the movement of the vertex at the specified index within the underlying vertex content.
Several weights are stored for each vertex, one for each bone that influences the movement of the vertex. The number of elements in the returned array is the same for each vertex in this vertex array, as defined by the elementSize property.
The vertex index refers to vertices, not bytes. The implementation takes into consideration the vertexStride and elementOffset properties to access the correct vertices.
If the releaseRedundantContent method has been invoked and the underlying vertex content has been released, this method will raise an assertion exception.
- (void) setBoneWeights: | (GLfloat *) | weights | |
at: | (GLuint) | vtxIndex | |
Sets the weights of all of the bones that influence the movement of the vertex at the specified index within the underlying vertex content.
Several weights are stored for each vertex, one for each bone that influences the movement of the vertex. The number of elements in the specified input array must therefore be at least as large as the value of the elementSize property.
The vertex index refers to vertices, not bytes. The implementation takes into consideration the vertexStride and elementOffset properties to access the correct vertices.
If the releaseRedundantContent method has been invoked and the underlying vertex content has been released, this method will raise an assertion exception.
- (void) setWeight: | (GLfloat) | weight | |
forBoneInfluence: | (GLuint) | influenceIndex | |
at: | (GLuint) | vtxIndex | |
Sets the weight value, for the specified influence index within the vertex, for the vertex at the specified index within the underlying vertex content.
The weight indicates how much a particular bone influences the movement of the particular vertex. Several weights are stored for each vertex, one for each bone that influences the movement of that vertex. The specified influenceIndex parameter must be between zero, and the elementSize property (inclusive/exclusive respectively).
The vertex index refers to vertices, not bytes. The implementation takes into consideration the vertexStride and elementOffset properties to access the correct element.
If the releaseRedundantContent method has been invoked and the underlying vertex content has been released, this method will raise an assertion exception.
- (void) setWeight: | (GLfloat) | aWeight | |
forVertexUnit: | (GLuint) | vertexUnit | |
at: | (GLuint) | __deprecated | |
- (void) setWeights: | (GLfloat *) | weights | |
at: | (GLuint) | __deprecated | |
- (GLfloat) weightForBoneInfluence: | (GLuint) | influenceIndex | |
at: | (GLuint) | vtxIndex | |
Returns the weight value, for the specified influence index within the vertex, for the vertex at the specified index within the underlying vertex content.
The weight indicates how much a particular bone influences the movement of the particular vertex. Several weights are stored for each vertex, one for each bone that influences the movement of that vertex. The specified influenceIndex parameter must be between zero, and the elementSize property (inclusive/exclusive respectively).
The vertex index refers to vertices, not bytes. The implementation takes into consideration the vertexStride and elementOffset properties to access the correct element.
If the releaseRedundantContent method has been invoked and the underlying vertex content has been released, this method will raise an assertion exception.
- (GLfloat) weightForVertexUnit: | (GLuint) | vertexUnit | |
at: | (GLuint) | __deprecated | |
- (GLfloat*) weightsAt: | (GLuint) | __deprecated |