Vuo 2.4.2
Loading...
Searching...
No Matches
VuoSceneObject.h
Go to the documentation of this file.
1
10#pragma once
11
12#include "VuoCubemap.h"
13#include "VuoHeap.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
28typedef const struct VuoList_VuoSceneObject_struct { void *l; } * VuoList_VuoSceneObject;
29#define VuoList_VuoSceneObject_TYPE_DEFINED
31
43typedef enum
44{
45 VuoSceneObjectSubType_Empty,
46 VuoSceneObjectSubType_Group,
47 VuoSceneObjectSubType_Mesh,
48 VuoSceneObjectSubType_PerspectiveCamera,
49 VuoSceneObjectSubType_StereoCamera,
50 VuoSceneObjectSubType_OrthographicCamera,
51 VuoSceneObjectSubType_FisheyeCamera,
52 VuoSceneObjectSubType_AmbientLight,
53 VuoSceneObjectSubType_PointLight,
54 VuoSceneObjectSubType_Spotlight,
55 VuoSceneObjectSubType_Text
57
66typedef const struct { void *l; } * VuoSceneObject;
67
68uint64_t VuoSceneObject_getNextId(void);
69
70// Constructors
74VuoSceneObject VuoSceneObject_makeQuad(VuoShader shader, VuoPoint3d center, VuoPoint3d rotation, VuoReal width, VuoReal height);
75VuoSceneObject VuoSceneObject_makeQuadWithNormals(VuoShader shader, VuoPoint3d center, VuoPoint3d rotation, VuoReal width, VuoReal height);
76VuoSceneObject VuoSceneObject_makeImage(VuoImage image, VuoPoint3d center, VuoPoint3d rotation, VuoReal size, VuoOrientation fixed, VuoReal alpha);
77VuoSceneObject VuoSceneObject_makeLitImage(VuoImage image, VuoPoint3d center, VuoPoint3d rotation, VuoReal size, VuoOrientation fixed, VuoReal alpha, VuoColor highlightColor, VuoReal shininess);
78VuoSceneObject VuoSceneObject_makeCube(VuoTransform transform, VuoShader frontShader, VuoShader leftShader, VuoShader rightShader, VuoShader backShader, VuoShader topShader, VuoShader bottomShader);
85VuoSceneObject VuoSceneObject_makeText(VuoText text, VuoFont font, VuoBoolean scaleWithScene, float wrapWidth);
86VuoSceneObject VuoSceneObject_makePerspectiveCamera(VuoText name, VuoTransform transform, float fieldOfView, float distanceMin, float distanceMax);
87VuoSceneObject VuoSceneObject_makeStereoCamera(VuoText name, VuoTransform transform, VuoReal fieldOfView, VuoReal distanceMin, VuoReal distanceMax, VuoReal confocalDistance, VuoReal intraocularDistance);
88VuoSceneObject VuoSceneObject_makeOrthographicCamera(VuoText name, VuoTransform transform, float width, float distanceMin, float distanceMax);
89VuoSceneObject VuoSceneObject_makeFisheyeCamera(VuoText name, VuoTransform transform, VuoReal fieldOfView, VuoReal vignetteWidth, VuoReal vignetteSharpness);
92VuoSceneObject VuoSceneObject_makePointLight(VuoColor color, float brightness, VuoPoint3d position, float range, float sharpness);
93VuoSceneObject VuoSceneObject_makeSpotlight(VuoColor color, float brightness, VuoTransform transform, float cone, float range, float sharpness);
94
95// Finders
97bool VuoSceneObject_findById(VuoSceneObject so, uint64_t idToMatch, VuoList_VuoSceneObject parentObjects, VuoSceneObject *foundObject) VuoWarnUnusedResult;
100void VuoSceneObject_findLights(VuoSceneObject so, VuoColor *ambientColor, float *ambientBrightness, VuoList_VuoSceneObject *pointLights, VuoList_VuoSceneObject *spotLights);
101
103
104void VuoSceneObject_visit(const VuoSceneObject object, bool (^function)(const VuoSceneObject currentObject, float modelviewMatrix[16]));
105void VuoSceneObject_apply(VuoSceneObject object, void (^function)(VuoSceneObject currentObject, float modelviewMatrix[16]));
106
107// Mutators
111void VuoSceneObject_translate(VuoSceneObject object, VuoPoint3d translation);
112void VuoSceneObject_scale(VuoSceneObject object, VuoPoint3d scale);
113
114// Getters
116uint64_t VuoSceneObject_getId(const VuoSceneObject object);
122VuoPoint3d VuoSceneObject_getTranslation(const VuoSceneObject object);
143
144// Setters
146void VuoSceneObject_setId(VuoSceneObject object, uint64_t id);
151void VuoSceneObject_setTranslation(VuoSceneObject object, VuoPoint3d translation);
152void VuoSceneObject_setScale(VuoSceneObject object, VuoPoint3d scale);
156void VuoSceneObject_setRealSize(VuoSceneObject object, bool isRealSize);
157void VuoSceneObject_setPreservePhysicalSize(VuoSceneObject object, bool shouldPreservePhysicalSize);
160void VuoSceneObject_setCameraFieldOfView(VuoSceneObject object, float fieldOfView);
161void VuoSceneObject_setCameraDistanceMin(VuoSceneObject object, float distanceMin);
162void VuoSceneObject_setCameraDistanceMax(VuoSceneObject object, float distanceMax);
163
165
168char * VuoSceneObject_getSummary(const VuoSceneObject value);
169void VuoSceneObject_getStatistics(const VuoSceneObject value, unsigned long *descendantCount, unsigned long *totalVertexCount, unsigned long *totalElementCount);
170
172bool VuoSceneObject_meshBounds(const VuoSceneObject so, VuoBox *bounds, float matrix[16]);
174
175unsigned long VuoSceneObject_getVertexCount(const VuoSceneObject value);
176
181
183
190
195#ifdef __cplusplus
196}
197#endif