#import "CC3Node.h"
#import "CC3Material.h"
Classes | |
class | CC3FaceArray |
CC3FaceArray holds additional cached calculated information about mesh faces, such as the centers, normals, planes and neighbours of each face. More... | |
struct | CC3FaceNeighbours |
For each edge in a face, contains an index to the adjacent face, or kCC3FaceNoNeighbour if the face has no neighbour over that edge. More... | |
class | CC3Mesh |
A CC3Mesh holds the 3D mesh for a CC3MeshNode. More... | |
struct | CC3MeshIntersection |
Represents a point of intersection on the mesh. More... | |
Defines | |
#define | kCC3FaceNoNeighbour ((GLuint)~0) |
Enumerations | |
enum | CC3VertexContent { kCC3VertexContentNone = 0, kCC3VertexContentLocation = 1 << 0, kCC3VertexContentNormal = 1 << 1, kCC3VertexContentColor = 1 << 2, kCC3VertexContentTextureCoordinates = 1 << 3, kCC3VertexContentPointSize = 1 << 4, kCC3VertexContentWeights = 1 << 5, kCC3VertexContentMatrixIndices = 1 << 6 } |
Functions | |
static CC3MeshIntersection * | CC3NearestMeshIntersection (CC3MeshIntersection *meshHits, NSUInteger hitCount) |
static NSString * | NSStringFromCC3FaceNeighbours (CC3FaceNeighbours faceNeighbours) |
static NSString * | NSStringFromCC3MeshIntersection (CC3MeshIntersection mi) |
#define kCC3FaceNoNeighbour ((GLuint)~0) |
Indicates that a face has no neighbour over a particular edge.
enum CC3VertexContent |
Variable type that holds a bitwise-OR of flags enumerating the types of vertex content contained within a mesh.
Valid components of this type include:
In addition, an absence of any bitwise-OR components in a CC3VertexContent is represented by kCC3VertexContentNone.
All valid meshes must contain a kCC3VertexContentLocation, and a meshes will raise an assertion if an attempt is made to set the vertex content without that component.
Not all meshes can contain all of the vertex content itemized above. In general, all meshes can contain the first four vertex content types. Specialized mesh subclasses can contain other combinations as follows:
Meshes that do not support a particular vertex component type will silently ignore that component in a CC3VertexContent.
kCC3VertexContentNone |
Bitwise-OR component of CC3VertexContent variables that indicates an absence of any vertex content. |
kCC3VertexContentLocation |
Bitwise-OR component of CC3VertexContent variables that indicates each vertex contains its own location information. Vertices must always include location info. |
kCC3VertexContentNormal |
Bitwise-OR component of CC3VertexContent variables that indicates each vertex contains its normal information. This component is required if and only if the mesh is to interact with light sources. |
kCC3VertexContentColor |
Bitwise-OR component of CC3VertexContent variables that indicates each vertex contains its own color information. This component is required if and only if each vertex on the mesh will have its own color. If this component is not included, all vertices in the mesh will have the color specified by the coloring properties of the material of the mesh node. |
kCC3VertexContentTextureCoordinates |
Bitwise-OR component of CC3VertexContent variables that indicates each vertex maps to a position on a texture. This component is required if and only if the mesh is covered by a texture. |
kCC3VertexContentPointSize |
Bitwise-OR component of CC3VertexContent variables that indicates each vertex contains point size information. This component is required if and only if the vertices are part of a point pariticle mesh (eg. CC3PointParticleMesh), and each particle will have its own size. If this component is not included in a point particle mesh, all particles will have the same size. |
kCC3VertexContentWeights |
Bitwise-OR component of CC3VertexContent variables that indicates each vertex contains a series of weights to allow the vertex to be manipulated by a series of weighted matrix transforms. This component is required if and only if the mesh is a vertex skinned mesh (eg. CC3SkinMesh). This component requires that the kCC3VertexContentMatrixIndices also be specified. |
kCC3VertexContentMatrixIndices |
Bitwise-OR component of CC3VertexContent variables that indicates each vertex contains a series of matrix indices to allow the vertex to be manipulated by a series of weighted matrix transforms. This component is required if and only if the mesh is a vertex skinned mesh (eg. CC3SkinMesh). This component requires that the kCC3VertexContentMatrixIndices also be specified. |
static CC3MeshIntersection* CC3NearestMeshIntersection | ( | CC3MeshIntersection * | meshHits, |
NSUInteger | hitCount | ||
) | [inline, static] |
Returns a pointer to the CC3MeshIntersection structure contained within the specified array of CC3MeshIntersection structures that has the smallest distance component.
The hitCount parameter indicates the size of the meshHits array. Returns NULL if hitCount is zero.
static NSString* NSStringFromCC3FaceNeighbours | ( | CC3FaceNeighbours | faceNeighbours ) | [inline, static] |
Returns a string description of the specified CC3FaceNeighbours struct.
static NSString* NSStringFromCC3MeshIntersection | ( | CC3MeshIntersection | mi ) | [inline, static] |
Returns a string description of the specified CC3MeshIntersection struct.