Vuo  1.2.5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
Functions
VuoMesh.c File Reference

Description

VuoMesh implementation.

Macros

#define glGenVertexArrays   glGenVertexArraysAPPLE
 
#define glBindVertexArray   glBindVertexArrayAPPLE
 
#define glDeleteVertexArrays   glDeleteVertexArraysAPPLE
 

Functions

VuoSubmesh VuoSubmesh_make (unsigned int vertexCount, unsigned int elementCount)
 Allocates the vertex (position, normal, ...) and element arrays.
 
VuoSubmesh VuoSubmesh_makeFromBuffers (unsigned int vertexCount, VuoPoint4d *positions, VuoPoint4d *normals, VuoPoint4d *tangents, VuoPoint4d *bitangents, VuoPoint4d *textureCoordinates, unsigned int elementCount, unsigned int *elements, VuoMesh_ElementAssemblyMethod elementAssemblyMethod)
 Creates a VuoSubmesh consisting of data that already exists in CPU RAM.
 
VuoSubmesh VuoSubmesh_makeGl (unsigned int vertexCount, unsigned int combinedBuffer, unsigned int combinedBufferSize, unsigned int combinedBufferStride, void *normalOffset, void *tangentOffset, void *bitangentOffset, void *textureCoordinateOffset, unsigned int elementCount, unsigned int elementBuffer, unsigned int elementBufferSize, VuoMesh_ElementAssemblyMethod elementAssemblyMethod)
 Creates a VuoSubmesh consisting of data that's already been uploaded to the GPU.
 
unsigned long VuoSubmesh_getGlMode (VuoSubmesh submesh)
 Returns the GL mode (e.g., GL_TRIANGLES) that submesh should be interpreted as.
 
unsigned long VuoSubmesh_getSplitPrimitiveCount (VuoSubmesh submesh)
 Returns the number of split primitives in submesh.
 
unsigned long VuoSubmesh_getSplitVertexCount (VuoSubmesh submesh)
 Returns the number of split vertices in submesh.
 
unsigned long VuoSubmesh_getCompleteElementCount (const VuoSubmesh submesh)
 Returns the number of complete elements in submesh.
 
void VuoMesh_free (void *value)
 Frees the mesh and each of its submeshes, including the vertex and element arrays within it.
 
VuoMesh VuoMesh_make (unsigned int submeshCount)
 Creates and registers a mesh with empty slots for the given number of sub-meshes.
 
void VuoMesh_upload (VuoMesh mesh)
 Uploads mesh to the GPU.
 
VuoMesh VuoMesh_makeFromSingleSubmesh (VuoSubmesh submesh)
 Creates and registers a mesh with space for one submesh, and sets it to the given submesh.
 
static VuoMesh VuoMesh_makeSingletonFromSingleSubmesh (VuoSubmesh submesh)
 Creates and registers a singleton mesh with space for one submesh, and sets it to the given submesh.
 
static VuoMesh VuoMesh_makeQuadWithNormalsInternal (void)
 Returns a quad with dimensions 1x1, on the XY plane, centered at the origin.
 
static VuoMesh VuoMesh_makeQuadWithoutNormalsInternal (void)
 Returns a quad with dimensions 1x1, on the XY plane, centered at the origin.
 
static VuoMesh VuoMesh_makeEquilateralTriangleInternal (void)
 Returns an equilateral triangle with bottom edge length 1, pointing upward on the XY plane, centered at the origin.
 
VuoMesh VuoMesh_makeQuad (void)
 Returns a quad with dimensions 1x1, on the XY plane, centered at the origin.
 
VuoMesh VuoMesh_makeQuadWithoutNormals (void)
 Returns a quad with dimensions 1x1, on the XY plane, centered at the origin.
 
VuoMesh VuoMesh_makeEquilateralTriangle (void)
 Returns an equilateral triangle with bottom edge length 1, pointing upward on the XY plane, centered at the origin.
 
static VuoMesh VuoMesh_makeCubeInternal (void)
 Returns a cube of size 1x1.
 
VuoMesh VuoMesh_makeCube (void)
 Returns a cube of size 1x1.
 
VuoMesh VuoMesh_make_VuoPoint2d (VuoList_VuoPoint2d positions, VuoMesh_ElementAssemblyMethod elementAssemblyMethod, VuoReal primitiveSize)
 Returns a VuoMesh consisting of the given positions and element assembly method.
 
VuoMesh VuoMesh_make_VuoPoint3d (VuoList_VuoPoint3d positions, VuoMesh_ElementAssemblyMethod elementAssemblyMethod, VuoReal primitiveSize)
 Returns a VuoMesh consisting of the given positions and element assembly method.
 
VuoMesh VuoMesh_copy (const VuoMesh mesh)
 Makes a copy of the mesh and its submeshes.
 
VuoMesh_ElementAssemblyMethod VuoMesh_elementAssemblyMethodFromCString (const char *elementAssemblyMethodString)
 Returns the VuoMesh_ElementAssemblyMethod corresponding with the string elementAssemblyMethodString.
 
const char * VuoMesh_cStringForElementAssemblyMethod (VuoMesh_ElementAssemblyMethod elementAssemblyMethod)
 Returns a string constant representing elementAssemblyMethod.
 
unsigned long VuoSubmesh_getStride (const VuoSubmesh submesh)
 Returns the number of bytes per combined-buffer entry.
 
VuoPoint4dextractElements (CGLContextObj cgl_ctx, VuoSubmesh *submesh, unsigned int vertexCount, unsigned int bufferStride, unsigned int bufferIndex)
 Pulls an element array from gl buffer.
 
void VuoSubmeshMesh_download (VuoSubmesh *submesh)
 Copies element data from GPU back to the CPU.
 
VuoBox VuoMesh_bounds (const VuoMesh v, float matrix[16])
 Iterates through mesh's vertices finding the center and extents.
 
bool VuoMesh_isPopulated (const VuoMesh mesh)
 Returns true if the mesh has at least one submesh with a non-zero vertex count.
 
VuoMesh VuoMesh_makeFromJson (json_object *js)
 Decodes the JSON object js to create a new value.
 
json_objectVuoMesh_getJson (const VuoMesh value)
 Encodes value as a JSON object.
 
json_objectVuoMesh_getInterprocessJson (const VuoMesh value)
 Calls VuoMesh_getJson().
 
char * VuoSubmesh_getSummary (const VuoSubmesh value)
 A brief summary of the contents of this submesh.
 
char * VuoMesh_getSummary (const VuoMesh value)
 A brief summary of the contents of this mesh, including a list of sub-meshes.
 

Function Documentation

VuoPoint4d* extractElements ( CGLContextObj  cgl_ctx,
VuoSubmesh submesh,
unsigned int  vertexCount,
unsigned int  bufferStride,
unsigned int  bufferIndex 
)

Pulls an element array from gl buffer.

void VuoMesh_free ( void *  value)

Frees the mesh and each of its submeshes, including the vertex and element arrays within it.

static VuoMesh VuoMesh_makeCubeInternal ( void  )
static

Returns a cube of size 1x1.

static VuoMesh VuoMesh_makeEquilateralTriangleInternal ( void  )
static

Returns an equilateral triangle with bottom edge length 1, pointing upward on the XY plane, centered at the origin.

static VuoMesh VuoMesh_makeQuadWithNormalsInternal ( void  )
static

Returns a quad with dimensions 1x1, on the XY plane, centered at the origin.

static VuoMesh VuoMesh_makeQuadWithoutNormalsInternal ( void  )
static

Returns a quad with dimensions 1x1, on the XY plane, centered at the origin.

The quad consists of only positions and texture coordinates (without normals, tangents, or bitangents).

static VuoMesh VuoMesh_makeSingletonFromSingleSubmesh ( VuoSubmesh  submesh)
static

Creates and registers a singleton mesh with space for one submesh, and sets it to the given submesh.

Uploads the submesh to the GPU.

void VuoSubmeshMesh_download ( VuoSubmesh submesh)

Copies element data from GPU back to the CPU.