Vuo  2.3.2
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...
 
union  VuoSceneObject_internal.__unnamed3__
 
struct  VuoSceneObject_internal.__unnamed3__.camera
 
struct  VuoSceneObject_internal.__unnamed3__.light
 
struct  VuoSceneObject_internal.__unnamed3__.text
 

Functions

uint64_t VuoSceneObject_getNextId (void)
 Returns a number, unique within this process, for identifying a particlar scene object instance. More...
 
void VuoSceneObject_free (void *sceneObject)
 Frees the memory associated with the object. 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_makeMesh (VuoMesh mesh, VuoShader shader, VuoTransform transform)
 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 size, VuoOrientation fixed, VuoReal alpha)
 Returns an unlit scene object with the specified image. More...
 
VuoSceneObject VuoSceneObject_makeLitImage (VuoImage image, VuoPoint3d center, VuoPoint3d rotation, VuoReal size, VuoOrientation fixed, 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_makeCube_VuoShader (VuoTransform transform, VuoShader shader)
 Creates a cube painted on all sides by shader. More...
 
VuoSceneObject VuoSceneObject_makeCube_VuoImage (VuoTransform transform, VuoImage image)
 Creates a cube painted on all sides by image. More...
 
VuoSceneObject VuoSceneObject_makeCube_VuoColor (VuoTransform transform, VuoColor color)
 Creates a cube painted on all sides by color. More...
 
VuoSceneObject VuoSceneObject_makeCube_VuoCubemap (VuoTransform transform, VuoCubemap cubemap)
 Creates a cube painted with a cubemap. More...
 
VuoSceneObject VuoSceneObject_makeCubeMulti (VuoTransform transform, VuoInteger columns, VuoInteger rows, VuoInteger slices, VuoShader front, VuoShader left, VuoShader right, VuoShader back, VuoShader top, VuoShader bottom)
 Creates a cube with subdivided faces and multiple shaders. 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 sceneObject, 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 sceneObject, 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 sceneObject, 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 sceneObject, VuoText nameToMatch, VuoSceneObject *foundCamera)
 Performs a depth-first search of the scenegraph. More...
 
bool VuoSceneObject_isPopulated (VuoSceneObject sceneObject)
 Returns true if the scene object has a non-empty type. 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)
 Returns an ambient light with the specified color and brightness (typically between 0 and 1). More...
 
VuoSceneObject VuoSceneObject_makePointLight (VuoColor color, float brightness, VuoPoint3d position, float range, float sharpness)
 Returns a point light (uniform emission in all directions). More...
 
VuoSceneObject VuoSceneObject_makeSpotlight (VuoColor color, float brightness, VuoTransform transform, float cone, float range, float sharpness)
 Returns a spot light (emists only in the specified direction). More...
 
void VuoSceneObject_findLights (VuoSceneObject sceneObject, VuoColor *ambientColor, float *ambientBrightness, VuoList_VuoSceneObject *pointLights, VuoList_VuoSceneObject *spotLights)
 Finds and returns all the lights in the scene, with their transforms applied. 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 sceneObject, 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_transform (VuoSceneObject object, VuoTransform transform)
 Applies a transformation to the sceneobject (combining it with its previous transform). More...
 
void VuoSceneObject_translate (VuoSceneObject object, VuoPoint3d translation)
 Moves the sceneobject in 3D space. More...
 
void VuoSceneObject_scale (VuoSceneObject object, VuoPoint3d scale)
 Scales the sceneobject in 3D space. More...
 
VuoText VuoSceneObject_getName (VuoSceneObject object)
 Returns the sceneobject's display name. More...
 
VuoList_VuoSceneObject VuoSceneObject_getChildObjects (VuoSceneObject object)
 Returns the list of this sceneobject's child sceneobjects. More...
 
VuoBlendMode VuoSceneObject_getBlendMode (const VuoSceneObject object)
 Returns the sceneobject's blend mode. More...
 
VuoSceneObjectSubType VuoSceneObject_getType (const VuoSceneObject object)
 Returns the sceneobject's type. More...
 
uint64_t VuoSceneObject_getId (const VuoSceneObject object)
 Returns the sceneobject's identification number (unique among objects in the currently-running composition). More...
 
VuoShader VuoSceneObject_getShader (const VuoSceneObject object)
 Returns the sceneobject's shader. More...
 
bool VuoSceneObject_isRealSize (const VuoSceneObject object)
 Returns true if the sceneobject should ignore rotations and scales, and be sized to match the shader's first image. More...
 
bool VuoSceneObject_shouldPreservePhysicalSize (const VuoSceneObject object)
 Returns true if the sceneobject should use the texture's scaleFactor and the backingScaleFactor to determine the rendered size. More...
 
VuoMesh VuoSceneObject_getMesh (const VuoSceneObject object)
 Returns the sceneobject's mesh. More...
 
VuoText VuoSceneObject_getText (const VuoSceneObject object)
 Returns the sceneobject's rendered text. More...
 
VuoFont VuoSceneObject_getTextFont (const VuoSceneObject object)
 Returns the sceneobject's font. More...
 
bool VuoSceneObject_shouldTextScaleWithScene (const VuoSceneObject object)
 Returns true if the sceneobject's text should change depending on the scene's rendering destination, or false if it should maintain its nominal size. More...
 
float VuoSceneObject_getTextWrapWidth (const VuoSceneObject object)
 Returns the width at which the sceneobject's rendered text should wrap. More...
 
float VuoSceneObject_getCameraFieldOfView (const VuoSceneObject object)
 Returns the sceneobject's field of view (for perspective cameras). More...
 
float VuoSceneObject_getCameraWidth (const VuoSceneObject object)
 Returns the sceneobject's camera width (for isometric cameras). More...
 
float VuoSceneObject_getCameraDistanceMin (const VuoSceneObject object)
 Returns the sceneobject's depth buffer minimum distance. More...
 
float VuoSceneObject_getCameraDistanceMax (const VuoSceneObject object)
 Returns the sceneobject's depth buffer maximum distance. More...
 
float VuoSceneObject_getCameraVignetteWidth (const VuoSceneObject object)
 Returns the sceneobject's vignette width (for fisheye cameras). More...
 
float VuoSceneObject_getCameraVignetteSharpness (const VuoSceneObject object)
 Returns the sceneobject's vignette sharpness (for fisheye cameras). More...
 
float VuoSceneObject_getCameraIntraocularDistance (const VuoSceneObject object)
 Returns the sceneobject's camera intraocular distance (for stereoscopic cameras). More...
 
float VuoSceneObject_getCameraConfocalDistance (const VuoSceneObject object)
 Returns the sceneobject's camera confocal distance (for stereoscopic cameras). More...
 
VuoColor VuoSceneObject_getLightColor (const VuoSceneObject object)
 Returns the sceneobject's light color. More...
 
float VuoSceneObject_getLightBrightness (const VuoSceneObject object)
 Returns the sceneobject's light brightness. More...
 
float VuoSceneObject_getLightRange (const VuoSceneObject object)
 Returns the sceneobject's light cone range. More...
 
float VuoSceneObject_getLightSharpness (const VuoSceneObject object)
 Returns the sceneobject's light cone sharpness. More...
 
float VuoSceneObject_getLightCone (const VuoSceneObject object)
 Returns the sceneobject's light cone angle. More...
 
VuoTransform VuoSceneObject_getTransform (const VuoSceneObject object)
 Returns the sceneobject's transform. More...
 
VuoPoint3d VuoSceneObject_getTranslation (const VuoSceneObject object)
 Returns the sceneobject's transform's translation. More...
 
void VuoSceneObject_setType (VuoSceneObject object, VuoSceneObjectSubType type)
 Changes the sceneobject's type. More...
 
void VuoSceneObject_setId (VuoSceneObject object, uint64_t id)
 Changes the sceneobject's identification number (should be unique among objects in the currently-running composition). More...
 
void VuoSceneObject_setName (VuoSceneObject object, VuoText name)
 Changes the sceneobject's display name. More...
 
void VuoSceneObject_setChildObjects (VuoSceneObject object, VuoList_VuoSceneObject childObjects)
 Changes the sceneobject's list of child objects. More...
 
void VuoSceneObject_setMesh (VuoSceneObject object, VuoMesh mesh)
 Changes the sceneobject's mesh. More...
 
void VuoSceneObject_setTransform (VuoSceneObject object, VuoTransform transform)
 Changes the sceneobject's transform. More...
 
void VuoSceneObject_setTranslation (VuoSceneObject object, VuoPoint3d translation)
 Changes the sceneobject's transform's translation. More...
 
void VuoSceneObject_setScale (VuoSceneObject object, VuoPoint3d scale)
 Changes the sceneobject's transform's scale. More...
 
void VuoSceneObject_setShader (VuoSceneObject object, VuoShader shader)
 Changes the sceneobject's shader. More...
 
void VuoSceneObject_setFaceCulling (VuoSceneObject object, VuoMesh_FaceCulling faceCulling)
 Sets the faceCulling on object and its child objects. More...
 
void VuoSceneObject_setBlendMode (VuoSceneObject object, VuoBlendMode blendMode)
 Sets the blendMode on object and its child objects. More...
 
void VuoSceneObject_setRealSize (VuoSceneObject object, bool isRealSize)
 Changes whether the sceneobject should ignore rotations and scales and be sized to match the shader's first image. More...
 
void VuoSceneObject_setPreservePhysicalSize (VuoSceneObject object, bool shouldPreservePhysicalSize)
 Changes whether the sceneobject should use the texture's scaleFactor and the backingScaleFactor to determine the rendered size. More...
 
void VuoSceneObject_setText (VuoSceneObject object, VuoText text)
 Changes the sceneobject's rendered text. More...
 
void VuoSceneObject_setTextFont (VuoSceneObject object, VuoFont font)
 Changes the sceneobject's font for rendered text. More...
 
void VuoSceneObject_setCameraFieldOfView (VuoSceneObject object, float fieldOfView)
 Changes the sceneobject's camera field of view (for perspective cameras). More...
 
void VuoSceneObject_setCameraDistanceMin (VuoSceneObject object, float distanceMin)
 Changes the sceneobject's depth buffer minimum distance. More...
 
void VuoSceneObject_setCameraDistanceMax (VuoSceneObject object, float distanceMax)
 Changes the sceneobject's depth buffer maximum distance. More...
 
VuoSceneObject VuoSceneObject_copy (const VuoSceneObject object)
 Creates a new scene object hierarchy that references the input object's meshes and shaders. 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 sceneObject, VuoBox *bounds, float matrix[16])
 Bounding box of the vertices for this SceneObject (taking into account transform). More...
 
void VuoSceneObject_center (VuoSceneObject sceneObject)
 Make the bounds center of all vertices == {0,0,0}. More...
 
void VuoSceneObject_normalize (VuoSceneObject sceneObject)
 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 sceneObject)
 Encodes value as a JSON object. More...
 
unsigned long VuoSceneObject_getVertexCount (const VuoSceneObject sceneObject)
 Returns the total number of vertices in the scene object (but not its descendants). More...
 
unsigned long VuoSceneObject_getElementCount (const VuoSceneObject sceneObject)
 Returns the total number of element in the scene object (but not its descendants). More...
 
void VuoSceneObject_getStatistics (const VuoSceneObject sceneObject, 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 sceneObject)
 Returns a list of all unique shader names in the sceneobject and its descendants. More...
 
char * VuoSceneObject_getSummary (const VuoSceneObject sceneObject)
 Produces a brief human-readable summary of value. More...
 
static void VuoSceneObject_dump_internal (const VuoSceneObject sceneObject, 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)
 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

◆ VuoSceneObject_internal.__unnamed3__

union VuoSceneObject_internal.__unnamed3__
Class Members
__unnamed3__ camera
VuoList_VuoSceneObject childObjects
__unnamed3__ light
__unnamed3__ text

◆ VuoSceneObject_internal.__unnamed3__.camera

struct VuoSceneObject_internal.__unnamed3__.camera
Class Members
float confocalDistance Distance from camera to stereoscopic confocal plane.
float distanceMax Distance from camera to far clip plane.
float distanceMin Distance from camera to near clip plane.
float fieldOfView Perspective and fisheye FOV, in degrees.
float intraocularDistance Distance between the stereoscopic camera pair.
float vignetteSharpness Fisheye only. Distance that the vignette gradient covers.
float vignetteWidth Fisheye only. Distance from the center of the viewport to the center of the vignette.
float width Orthographic width, in scene coordinates.

◆ VuoSceneObject_internal.__unnamed3__.light

struct VuoSceneObject_internal.__unnamed3__.light
Class Members
float brightness
VuoColor color
float cone Size (in radians) of the light's cone. Affects spotlights.
float range Distance (in local coordinates) the light reaches. Affects point lights and spotlights.
float sharpness Sharpness of the light's distance/cone falloff. 0 means the light starts fading at distance/angle 0 and ends at 2*lightRange or 2*lightCone. 1 means the falloff is instant.

◆ VuoSceneObject_internal.__unnamed3__.text

struct VuoSceneObject_internal.__unnamed3__.text
Class Members
VuoFont font
bool scaleWithScene
VuoText text
float wrapWidth

Function Documentation

◆ convertQualityToEpsilon()

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

Definition at line 3054 of file VuoSceneObject.cc.

◆ VuoSceneObject_applyInternal()

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

Helper for VuoSceneObject_apply.

Definition at line 1051 of file VuoSceneObject.cc.

◆ VuoSceneObject_cStringForType()

static const char* VuoSceneObject_cStringForType ( VuoSceneObjectSubType  type)
static

Returns a string constant representing type.

Definition at line 823 of file VuoSceneObject.cc.

◆ VuoSceneObject_dump_internal()

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

Outputs information about the sceneobject (and its descendants).

Definition at line 2612 of file VuoSceneObject.cc.

◆ VuoSceneObject_findShaderNames()

static VuoList_VuoText VuoSceneObject_findShaderNames ( VuoSceneObject  sceneObject)
static

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

Definition at line 2391 of file VuoSceneObject.cc.

◆ VuoSceneObject_free()

void VuoSceneObject_free ( void *  sceneObject)

Frees the memory associated with the object.

This function may be called from any thread.

Definition at line 122 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 2981 of file VuoSceneObject.cc.

◆ VuoSceneObject_getElementCount()

unsigned long VuoSceneObject_getElementCount ( const VuoSceneObject  sceneObject)

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

Definition at line 2351 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 3020 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 792 of file VuoSceneObject.cc.