Vuo 2.4.4
Loading...
Searching...
No Matches
VuoSceneObject.h
Go to the documentation of this file.
1
10#ifndef VuoSceneObject_h
11#define VuoSceneObject_h
12
13#include "VuoCubemap.h"
14#include "VuoText.h"
15#include "VuoMesh.h"
16#include "VuoShader.h"
17#include "VuoTransform.h"
18#include "VuoPoint3d.h"
19#include "VuoBlendMode.h"
20#include "VuoFont.h"
21#include "VuoOrientation.h"
22
23#ifdef __cplusplus
24extern "C" {
25#endif
26
38typedef enum
39{
40 VuoSceneObjectSubType_Empty,
41 VuoSceneObjectSubType_Group,
42 VuoSceneObjectSubType_Mesh,
43 VuoSceneObjectSubType_PerspectiveCamera,
44 VuoSceneObjectSubType_StereoCamera,
45 VuoSceneObjectSubType_OrthographicCamera,
46 VuoSceneObjectSubType_FisheyeCamera,
47 VuoSceneObjectSubType_AmbientLight,
48 VuoSceneObjectSubType_PointLight,
49 VuoSceneObjectSubType_Spotlight,
50 VuoSceneObjectSubType_Text
52
61typedef const struct { void *l; } * VuoSceneObject;
62
64
65uint64_t VuoSceneObject_getNextId(void);
66
67// Constructors
71VuoSceneObject VuoSceneObject_makeQuad(VuoShader shader, VuoPoint3d center, VuoPoint3d rotation, VuoReal width, VuoReal height);
72VuoSceneObject VuoSceneObject_makeQuadWithNormals(VuoShader shader, VuoPoint3d center, VuoPoint3d rotation, VuoReal width, VuoReal height);
73VuoSceneObject VuoSceneObject_makeImage(VuoImage image, VuoPoint3d center, VuoPoint3d rotation, VuoReal size, VuoOrientation fixed, VuoReal alpha);
74VuoSceneObject VuoSceneObject_makeLitImage(VuoImage image, VuoPoint3d center, VuoPoint3d rotation, VuoReal size, VuoOrientation fixed, VuoReal alpha, VuoColor highlightColor, VuoReal shininess);
75VuoSceneObject VuoSceneObject_makeCube(VuoTransform transform, VuoShader frontShader, VuoShader leftShader, VuoShader rightShader, VuoShader backShader, VuoShader topShader, VuoShader bottomShader);
82VuoSceneObject VuoSceneObject_makeText(VuoText text, VuoFont font, VuoBoolean scaleWithScene, float wrapWidth);
83VuoSceneObject VuoSceneObject_makePerspectiveCamera(VuoText name, VuoTransform transform, float fieldOfView, float distanceMin, float distanceMax);
84VuoSceneObject VuoSceneObject_makeStereoCamera(VuoText name, VuoTransform transform, VuoReal fieldOfView, VuoReal distanceMin, VuoReal distanceMax, VuoReal confocalDistance, VuoReal intraocularDistance);
85VuoSceneObject VuoSceneObject_makeOrthographicCamera(VuoText name, VuoTransform transform, float width, float distanceMin, float distanceMax);
86VuoSceneObject VuoSceneObject_makeFisheyeCamera(VuoText name, VuoTransform transform, VuoReal fieldOfView, float distanceMin, float distanceMax, VuoReal vignetteWidth, VuoReal vignetteSharpness);
89VuoSceneObject VuoSceneObject_makePointLight(VuoColor color, float brightness, VuoPoint3d position, float range, float sharpness);
90VuoSceneObject VuoSceneObject_makeSpotlight(VuoColor color, float brightness, VuoTransform transform, float cone, float range, float sharpness);
91
92// Finders
94bool VuoSceneObject_findById(VuoSceneObject so, uint64_t idToMatch, VuoList_VuoSceneObject parentObjects, VuoSceneObject *foundObject) VuoWarnUnusedResult;
97void VuoSceneObject_findLights(VuoSceneObject so, VuoColor *ambientColor, float *ambientBrightness, VuoList_VuoSceneObject *pointLights, VuoList_VuoSceneObject *spotLights);
98
100
101void VuoSceneObject_visit(const VuoSceneObject object, bool (^function)(const VuoSceneObject currentObject, float modelviewMatrix[16]));
102void VuoSceneObject_apply(VuoSceneObject object, void (^function)(VuoSceneObject currentObject, float modelviewMatrix[16]));
103
104// Mutators
108void VuoSceneObject_translate(VuoSceneObject object, VuoPoint3d translation);
109void VuoSceneObject_scale(VuoSceneObject object, VuoPoint3d scale);
110
111// Getters
113uint64_t VuoSceneObject_getId(const VuoSceneObject object);
119VuoPoint3d VuoSceneObject_getTranslation(const VuoSceneObject object);
140
141// Setters
143void VuoSceneObject_setId(VuoSceneObject object, uint64_t id);
148void VuoSceneObject_setTranslation(VuoSceneObject object, VuoPoint3d translation);
149void VuoSceneObject_setScale(VuoSceneObject object, VuoPoint3d scale);
153void VuoSceneObject_setRealSize(VuoSceneObject object, bool isRealSize);
154void VuoSceneObject_setPreservePhysicalSize(VuoSceneObject object, bool shouldPreservePhysicalSize);
157void VuoSceneObject_setCameraFieldOfView(VuoSceneObject object, float fieldOfView);
158void VuoSceneObject_setCameraDistanceMin(VuoSceneObject object, float distanceMin);
159void VuoSceneObject_setCameraDistanceMax(VuoSceneObject object, float distanceMax);
160
162
163VuoSceneObject VuoSceneObject_makeFromJson(struct json_object * js);
164struct json_object * VuoSceneObject_getJson(const VuoSceneObject value);
165char * VuoSceneObject_getSummary(const VuoSceneObject value);
166void VuoSceneObject_getStatistics(const VuoSceneObject value, unsigned long *descendantCount, unsigned long *totalVertexCount, unsigned long *totalElementCount);
167
169bool VuoSceneObject_meshBounds(const VuoSceneObject so, VuoBox *bounds, float matrix[16]);
171
172unsigned long VuoSceneObject_getVertexCount(const VuoSceneObject value);
173
178
180
187
192#ifdef __cplusplus
193}
194#endif
195
196#endif