Classes | Defines | Enumerations | Functions

CC3Mesh.h File Reference

#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 CC3MeshIntersectionCC3NearestMeshIntersection (CC3MeshIntersection *meshHits, NSUInteger hitCount)
static NSString * NSStringFromCC3FaceNeighbours (CC3FaceNeighbours faceNeighbours)
static NSString * NSStringFromCC3MeshIntersection (CC3MeshIntersection mi)

Detailed Description


Define Documentation

#define kCC3FaceNoNeighbour   ((GLuint)~0)

Indicates that a face has no neighbour over a particular edge.


Enumeration Type Documentation

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:

  • kCC3VertexContentLocation
  • kCC3VertexContentNormal
  • kCC3VertexContentColor
  • kCC3VertexContentTextureCoordinates
  • kCC3VertexContentPointSize
  • kCC3VertexContentWeights
  • kCC3VertexContentMatrixIndices

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:

  • kCC3VertexContentPointSize is accepted by CC3PointParticleMesh in support of point particles.
  • kCC3VertexContentWeights and kCC3VertexContentMatrixIndices are accepted by CC3SkinMesh in support of skinned meshes controlled by bone-rigging.

Meshes that do not support a particular vertex component type will silently ignore that component in a CC3VertexContent.

Enumerator:
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.


Function Documentation

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.