Vuo  2.0.0
Classes | Macros | Functions
VuoSceneObject.cc File Reference

Description

VuoSceneObject implementation.

Definition in file VuoSceneObject.cc.

Go to the source code of this file.

Classes

struct  VuoSceneObject_treeState
 State for visiting an object at its particular place in the hierarchy. More...
 

Functions

uint64_t VuoSceneObject_getNextId (void)
 Returns a number, unique within this process, for identifying a particlar scene object instance. More...
 
VuoSceneObject VuoSceneObject_makeEmpty (void)
 Creates a new, empty scene object. More...
 
VuoSceneObject VuoSceneObject_makeGroup (VuoList_VuoSceneObject childObjects, VuoTransform transform)
 Creates a new scene object that can contain (and transform) other scene objects, but doesn't render anything itself. More...
 
VuoSceneObject VuoSceneObject_make (VuoMesh mesh, VuoShader shader, VuoTransform transform, VuoList_VuoSceneObject childObjects)
 Creates a visible (mesh) scene object. More...
 
VuoSceneObject VuoSceneObject_makeQuad (VuoShader shader, VuoPoint3d center, VuoPoint3d rotation, VuoReal width, VuoReal height)
 Returns a scene object that renders a quad with the specified shader. More...
 
VuoSceneObject VuoSceneObject_makeQuadWithNormals (VuoShader shader, VuoPoint3d center, VuoPoint3d rotation, VuoReal width, VuoReal height)
 Returns a scene object that renders a quad with the specified shader. More...
 
VuoSceneObject VuoSceneObject_makeImage (VuoImage image, VuoPoint3d center, VuoPoint3d rotation, VuoReal width, VuoReal alpha)
 Returns an unlit scene object with the specified image. More...
 
VuoSceneObject VuoSceneObject_makeLitImage (VuoImage image, VuoPoint3d center, VuoPoint3d rotation, VuoReal width, VuoReal alpha, VuoColor highlightColor, VuoReal shininess)
 Returns a lit scene object with the specified image. More...
 
VuoSceneObject VuoSceneObject_makeCube (VuoTransform transform, VuoShader frontShader, VuoShader leftShader, VuoShader rightShader, VuoShader backShader, VuoShader topShader, VuoShader bottomShader)
 Returns a scene object consisting of 6 child objects (square quads), each with its own shader. More...
 
VuoSceneObject VuoSceneObject_makeCube1 (VuoTransform transform, VuoShader shader)
 Returns a cube scene object with a single shader applied to all 6 sides. More...
 
VuoSceneObject VuoSceneObject_makeText (VuoText text, VuoFont font, VuoBoolean scaleWithScene, float wrapWidth)
 Returns a scene object representing deferred-rendered text. More...
 
VuoSceneObject VuoSceneObject_makePerspectiveCamera (VuoText name, VuoTransform transform, float fieldOfView, float distanceMin, float distanceMax)
 Returns a perspective camera having the position and negative-rotation specified by transform (its scale is ignored). More...
 
VuoSceneObject VuoSceneObject_makeStereoCamera (VuoText name, VuoTransform transform, VuoReal fieldOfView, VuoReal distanceMin, VuoReal distanceMax, VuoReal confocalDistance, VuoReal intraocularDistance)
 Returns a stereoscopic camera having the position and negative-rotation specified by transform (its scale is ignored). More...
 
VuoSceneObject VuoSceneObject_makeOrthographicCamera (VuoText name, VuoTransform transform, float width, float distanceMin, float distanceMax)
 Returns an orthographic camera having the position and negative-rotation specified by transform (its scale is ignored). More...
 
VuoSceneObject VuoSceneObject_makeFisheyeCamera (VuoText name, VuoTransform transform, VuoReal fieldOfView, VuoReal vignetteWidth, VuoReal vignetteSharpness)
 Returns a fisheye camera having the position and negative-rotation specified by transform (its scale is ignored). More...
 
VuoSceneObject VuoSceneObject_makeDefaultCamera (void)
 Returns a perspective camera at (0,0,1), facing along -z, 90 degree FOV, and clip planes at 0.1 and 10.0. More...
 
bool VuoSceneObject_find (VuoSceneObject so, VuoText nameToMatch, VuoList_VuoSceneObject ancestorObjects, VuoSceneObject *foundObject)
 Searches the scenegraph (depth-first) for a scene object with the given name. More...
 
bool VuoSceneObject_findById (VuoSceneObject so, uint64_t idToMatch, VuoList_VuoSceneObject ancestorObjects, VuoSceneObject *foundObject)
 Searches the scenegraph (depth-first) for a scene object with the given id. More...
 
bool VuoSceneObject_findWithType (VuoSceneObject so, VuoSceneObjectSubType typeToMatch, VuoList_VuoSceneObject ancestorObjects, VuoSceneObject *foundObject)
 Searches the scenegraph (depth-first) for the first scene object with the specified type. More...
 
bool VuoSceneObject_findCamera (VuoSceneObject so, VuoText nameToMatch, VuoSceneObject *foundCamera)
 Performs a depth-first search of the scenegraph. More...
 
bool VuoSceneObject_isPopulated (VuoSceneObject so)
 Performs a depth-first search of the scenegraph. More...
 
static VuoSceneObjectSubType VuoSceneObject_typeFromCString (const char *typeString)
 Returns the VuoSceneObjectSubType corresponding with the typeString. More...
 
static const char * VuoSceneObject_cStringForType (VuoSceneObjectSubType type)
 Returns a string constant representing type. More...
 
VuoSceneObject VuoSceneObject_makeAmbientLight (VuoColor color, float brightness)
 
VuoSceneObject VuoSceneObject_makePointLight (VuoColor color, float brightness, VuoPoint3d position, float range, float sharpness)
 
VuoSceneObject VuoSceneObject_makeSpotlight (VuoColor color, float brightness, VuoTransform transform, float cone, float range, float sharpness)
 
void VuoSceneObject_findLights (VuoSceneObject so, VuoColor *ambientColor, float *ambientBrightness, VuoList_VuoSceneObject *pointLights, VuoList_VuoSceneObject *spotLights)
 Finds and returns all the lights in the scene. More...
 
void VuoSceneObject_visit (const VuoSceneObject object, bool(^function)(const VuoSceneObject *currentObject, float modelviewMatrix[16]))
 Applies function to object and its child objects, without preserving changes to objects. More...
 
static void VuoSceneObject_applyInternal (VuoSceneObject *object, void(^function)(VuoSceneObject *currentObject, float modelviewMatrix[16]), float modelviewMatrix[16])
 Helper for VuoSceneObject_apply. More...
 
void VuoSceneObject_apply (VuoSceneObject *object, void(^function)(VuoSceneObject *currentObject, float modelviewMatrix[16]))
 Applies function to object and its child objects, and outputs the modified object. More...
 
void VuoSceneObject_setFaceCullingMode (VuoSceneObject *object, unsigned int faceCullingMode)
 Sets the faceCullingMode on object and its child objects. More...
 
void VuoSceneObject_setBlendMode (VuoSceneObject *object, VuoBlendMode blendMode)
 Sets the blendMode on object and its child objects. More...
 
VuoSceneObject VuoSceneObject_copy (const VuoSceneObject object)
 Makes a deep copy of object. More...
 
VuoBox VuoSceneObject_bounds (const VuoSceneObject so)
 Get the axis aligned bounding box of this sceneobject and its children (and its children's children). More...
 
bool VuoSceneObject_meshBounds (const VuoSceneObject so, VuoBox *bounds, float matrix[16])
 Bounding box of the vertices for this SceneObject (taking into account transform). More...
 
void VuoSceneObject_center (VuoSceneObject *so)
 Make the bounds center of all vertices == {0,0,0}. More...
 
void VuoSceneObject_normalize (VuoSceneObject *so)
 Change the root sceneobject's transform such that the entire scenegraph renders within a 1x1x1 axis-aligned cube. More...
 
VuoSceneObject VuoSceneObject_makeFromJson (json_object *js)
 Decodes the JSON object js to create a new value. More...
 
json_objectVuoSceneObject_getJson (const VuoSceneObject value)
 Encodes value as a JSON object. More...
 
unsigned long VuoSceneObject_getVertexCount (const VuoSceneObject value)
 Returns the total number of vertices in the scene object (but not its descendants). More...
 
unsigned long VuoSceneObject_getElementCount (const VuoSceneObject value)
 Returns the total number of element in the scene object (but not its descendants). More...
 
void VuoSceneObject_getStatistics (const VuoSceneObject value, unsigned long *descendantCount, unsigned long *totalVertexCount, unsigned long *totalElementCount)
 Traverses the specified scenegraph and returns statistics about it. More...
 
static VuoList_VuoText VuoSceneObject_findShaderNames (VuoSceneObject object)
 Returns a list of all unique shader names in the sceneobject and its descendants. More...
 
char * VuoSceneObject_getSummary (const VuoSceneObject value)
 Produces a brief human-readable summary of value. More...
 
static void VuoSceneObject_dump_internal (const VuoSceneObject so, unsigned int level)
 Outputs information about the sceneobject (and its descendants). More...
 
void VuoSceneObject_dump (const VuoSceneObject so)
 Outputs information about the sceneobject (and its descendants). More...
 
VuoSceneObject VuoSceneObject_flatten (const VuoSceneObject so, bool calculateTangents)
 Combines all meshes (including child objects) together into a single mesh. More...
 
static csgjs_model VuoSceneObject_getCsgjsModel (const VuoSceneObject so)
 Converts a VuoSceneObject to a csgjs_model. More...
 
static VuoSceneObject VuoSceneObject_makeFromCsgjsModel (const csgjs_model &cm)
 Converts a csgjs_model to a VuoSceneObject. More...
 
static float convertQualityToEpsilon (float quality)
 
VuoSceneObject VuoSceneObject_union (VuoList_VuoSceneObject objects, float quality)
 Returns the union of objects. More...
 
VuoSceneObject VuoSceneObject_subtract (const VuoSceneObject a, const VuoSceneObject b, float quality)
 Returns the boolean difference of a minus b. More...
 
VuoSceneObject VuoSceneObject_intersect (VuoList_VuoSceneObject objects, float quality)
 Returns the intersection of objects. More...
 

Class Documentation

◆ VuoSceneObject_treeState

struct VuoSceneObject_treeState
Class Members
float modelviewMatrix[16]
long objectCount
const VuoSceneObject * objects

Function Documentation

◆ convertQualityToEpsilon()

static float convertQualityToEpsilon ( float  quality)
static
  • quality 0 = epsilon 1
  • quality 1 = epsilon 0.00001

Definition at line 2031 of file VuoSceneObject.cc.

◆ VuoSceneObject_applyInternal()

static void VuoSceneObject_applyInternal ( VuoSceneObject object,
void(^)(VuoSceneObject *currentObject, float modelviewMatrix[16])  function,
float  modelviewMatrix[16] 
)
static

Helper for VuoSceneObject_apply.

Definition at line 839 of file VuoSceneObject.cc.

◆ VuoSceneObject_cStringForType()

static const char* VuoSceneObject_cStringForType ( VuoSceneObjectSubType  type)
static

Returns a string constant representing type.

Definition at line 626 of file VuoSceneObject.cc.

◆ VuoSceneObject_dump_internal()

static void VuoSceneObject_dump_internal ( const VuoSceneObject  so,
unsigned int  level 
)
static

Outputs information about the sceneobject (and its descendants).

Definition at line 1625 of file VuoSceneObject.cc.

◆ VuoSceneObject_findShaderNames()

static VuoList_VuoText VuoSceneObject_findShaderNames ( VuoSceneObject  object)
static

Returns a list of all unique shader names in the sceneobject and its descendants.

Definition at line 1424 of file VuoSceneObject.cc.

◆ VuoSceneObject_getCsgjsModel()

static csgjs_model VuoSceneObject_getCsgjsModel ( const VuoSceneObject  so)
static

Converts a VuoSceneObject to a csgjs_model.

Definition at line 1972 of file VuoSceneObject.cc.

◆ VuoSceneObject_getElementCount()

unsigned long VuoSceneObject_getElementCount ( const VuoSceneObject  value)

Returns the total number of element in the scene object (but not its descendants).

Definition at line 1391 of file VuoSceneObject.cc.

◆ VuoSceneObject_makeFromCsgjsModel()

static VuoSceneObject VuoSceneObject_makeFromCsgjsModel ( const csgjs_model &  cm)
static

Converts a csgjs_model to a VuoSceneObject.

Definition at line 2005 of file VuoSceneObject.cc.

◆ VuoSceneObject_typeFromCString()

static VuoSceneObjectSubType VuoSceneObject_typeFromCString ( const char *  typeString)
static

Returns the VuoSceneObjectSubType corresponding with the typeString.

If none matches, returns VuoSceneObjectSubType_Empty.

Definition at line 595 of file VuoSceneObject.cc.