@opsydyn/effect-three 0.0.0-stage → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +69 -0
- package/LICENSE +21 -0
- package/README.md +189 -2
- package/dist/index-01kwfekm.js +5118 -0
- package/dist/index-01kwfekm.js.map +40 -0
- package/dist/index-4045wme0.js +129 -0
- package/dist/index-4045wme0.js.map +10 -0
- package/dist/index.d.ts +12 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1361 -0
- package/dist/index.js.map +14 -0
- package/dist/kernel/animation.d.ts +14 -0
- package/dist/kernel/animation.d.ts.map +1 -0
- package/dist/kernel/behaviours.d.ts +16 -0
- package/dist/kernel/behaviours.d.ts.map +1 -0
- package/dist/kernel/bodies.d.ts +60 -0
- package/dist/kernel/bodies.d.ts.map +1 -0
- package/dist/kernel/bodySources.d.ts +47 -0
- package/dist/kernel/bodySources.d.ts.map +1 -0
- package/dist/kernel/build.d.ts +564 -0
- package/dist/kernel/build.d.ts.map +1 -0
- package/dist/kernel/cameraMotion.d.ts +39 -0
- package/dist/kernel/cameraMotion.d.ts.map +1 -0
- package/dist/kernel/clock.d.ts +17 -0
- package/dist/kernel/clock.d.ts.map +1 -0
- package/dist/kernel/contactShadowPasses.d.ts +47 -0
- package/dist/kernel/contactShadowPasses.d.ts.map +1 -0
- package/dist/kernel/description.d.ts +1120 -0
- package/dist/kernel/description.d.ts.map +1 -0
- package/dist/kernel/diff.d.ts +90 -0
- package/dist/kernel/diff.d.ts.map +1 -0
- package/dist/kernel/environmentPresets.d.ts +30 -0
- package/dist/kernel/environmentPresets.d.ts.map +1 -0
- package/dist/kernel/equality.d.ts +64 -0
- package/dist/kernel/equality.d.ts.map +1 -0
- package/dist/kernel/frames.d.ts +55 -0
- package/dist/kernel/frames.d.ts.map +1 -0
- package/dist/kernel/index.d.ts +37 -0
- package/dist/kernel/index.d.ts.map +1 -0
- package/dist/kernel/index.js +335 -0
- package/dist/kernel/index.js.map +9 -0
- package/dist/kernel/instances.d.ts +26 -0
- package/dist/kernel/instances.d.ts.map +1 -0
- package/dist/kernel/labels.d.ts +51 -0
- package/dist/kernel/labels.d.ts.map +1 -0
- package/dist/kernel/loop.d.ts +49 -0
- package/dist/kernel/loop.d.ts.map +1 -0
- package/dist/kernel/materials.d.ts +24 -0
- package/dist/kernel/materials.d.ts.map +1 -0
- package/dist/kernel/motion.d.ts +36 -0
- package/dist/kernel/motion.d.ts.map +1 -0
- package/dist/kernel/orbit.d.ts +127 -0
- package/dist/kernel/orbit.d.ts.map +1 -0
- package/dist/kernel/overlays.d.ts +16 -0
- package/dist/kernel/overlays.d.ts.map +1 -0
- package/dist/kernel/performance.d.ts +41 -0
- package/dist/kernel/performance.d.ts.map +1 -0
- package/dist/kernel/physics.d.ts +166 -0
- package/dist/kernel/physics.d.ts.map +1 -0
- package/dist/kernel/physicsDebug.d.ts +18 -0
- package/dist/kernel/physicsDebug.d.ts.map +1 -0
- package/dist/kernel/pointer.d.ts +357 -0
- package/dist/kernel/pointer.d.ts.map +1 -0
- package/dist/kernel/renderKit.d.ts +49 -0
- package/dist/kernel/renderKit.d.ts.map +1 -0
- package/dist/kernel/renderer.d.ts +83 -0
- package/dist/kernel/renderer.d.ts.map +1 -0
- package/dist/kernel/resources.d.ts +112 -0
- package/dist/kernel/resources.d.ts.map +1 -0
- package/dist/kernel/sceneGraph.d.ts +155 -0
- package/dist/kernel/sceneGraph.d.ts.map +1 -0
- package/dist/kernel/sceneIndex.d.ts +90 -0
- package/dist/kernel/sceneIndex.d.ts.map +1 -0
- package/dist/kernel/stage.d.ts +87 -0
- package/dist/kernel/stage.d.ts.map +1 -0
- package/dist/kernel/textLayout.d.ts +29 -0
- package/dist/kernel/textLayout.d.ts.map +1 -0
- package/dist/kernel/tween.d.ts +35 -0
- package/dist/kernel/tween.d.ts.map +1 -0
- package/dist/kernel/xrInput.d.ts +107 -0
- package/dist/kernel/xrInput.d.ts.map +1 -0
- package/dist/kernel/xrLocomotion.d.ts +38 -0
- package/dist/kernel/xrLocomotion.d.ts.map +1 -0
- package/dist/runtime/FrameSource.d.ts +29 -0
- package/dist/runtime/FrameSource.d.ts.map +1 -0
- package/dist/runtime/ResourceRegistry.d.ts +18 -0
- package/dist/runtime/ResourceRegistry.d.ts.map +1 -0
- package/dist/runtime/SceneRuntime.d.ts +68 -0
- package/dist/runtime/SceneRuntime.d.ts.map +1 -0
- package/dist/runtime/SceneSchema.d.ts +2536 -0
- package/dist/runtime/SceneSchema.d.ts.map +1 -0
- package/dist/runtime/errors.d.ts +19 -0
- package/dist/runtime/errors.d.ts.map +1 -0
- package/dist/runtime/index.d.ts +11 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/webgl/contactShadows.d.ts +5 -0
- package/dist/webgl/contactShadows.d.ts.map +1 -0
- package/dist/webgl/index.d.ts +11 -0
- package/dist/webgl/index.d.ts.map +1 -0
- package/dist/webgl/index.js +239 -0
- package/dist/webgl/index.js.map +13 -0
- package/dist/webgl/shaderGrid.d.ts +27 -0
- package/dist/webgl/shaderGrid.d.ts.map +1 -0
- package/dist/webgl/sky.d.ts +4 -0
- package/dist/webgl/sky.d.ts.map +1 -0
- package/dist/webgpu/contactShadows.d.ts +5 -0
- package/dist/webgpu/contactShadows.d.ts.map +1 -0
- package/dist/webgpu/index.d.ts +10 -0
- package/dist/webgpu/index.d.ts.map +1 -0
- package/dist/webgpu/index.js +216 -0
- package/dist/webgpu/index.js.map +13 -0
- package/dist/webgpu/shaderGrid.d.ts +5 -0
- package/dist/webgpu/shaderGrid.d.ts.map +1 -0
- package/dist/webgpu/sky.d.ts +4 -0
- package/dist/webgpu/sky.d.ts.map +1 -0
- package/package.json +82 -4
- package/src/index.ts +11 -0
- package/src/kernel/animation.ts +24 -0
- package/src/kernel/behaviours.ts +36 -0
- package/src/kernel/bodies.ts +338 -0
- package/src/kernel/bodySources.ts +203 -0
- package/src/kernel/build.ts +1325 -0
- package/src/kernel/cameraMotion.ts +202 -0
- package/src/kernel/clock.ts +35 -0
- package/src/kernel/contactShadowPasses.ts +207 -0
- package/src/kernel/description.ts +1197 -0
- package/src/kernel/diff.ts +383 -0
- package/src/kernel/environmentPresets.ts +38 -0
- package/src/kernel/equality.ts +604 -0
- package/src/kernel/frames.ts +124 -0
- package/src/kernel/index.ts +274 -0
- package/src/kernel/instances.ts +97 -0
- package/src/kernel/labels.ts +54 -0
- package/src/kernel/loop.ts +248 -0
- package/src/kernel/materials.ts +258 -0
- package/src/kernel/motion.ts +75 -0
- package/src/kernel/orbit.ts +554 -0
- package/src/kernel/overlays.ts +130 -0
- package/src/kernel/performance.ts +101 -0
- package/src/kernel/physics.ts +361 -0
- package/src/kernel/physicsDebug.ts +68 -0
- package/src/kernel/pointer.ts +785 -0
- package/src/kernel/renderKit.ts +54 -0
- package/src/kernel/renderer.ts +136 -0
- package/src/kernel/resources.ts +504 -0
- package/src/kernel/sceneGraph.ts +1442 -0
- package/src/kernel/sceneIndex.ts +219 -0
- package/src/kernel/stage.ts +157 -0
- package/src/kernel/textLayout.ts +102 -0
- package/src/kernel/tween.ts +80 -0
- package/src/kernel/xrInput.ts +230 -0
- package/src/kernel/xrLocomotion.ts +72 -0
- package/src/runtime/FrameSource.ts +41 -0
- package/src/runtime/ResourceRegistry.ts +24 -0
- package/src/runtime/SceneRuntime.ts +229 -0
- package/src/runtime/SceneSchema.ts +983 -0
- package/src/runtime/errors.ts +18 -0
- package/src/runtime/index.ts +10 -0
- package/src/webgl/contactShadows.ts +67 -0
- package/src/webgl/index.ts +19 -0
- package/src/webgl/shaderGrid.ts +196 -0
- package/src/webgl/sky.ts +42 -0
- package/src/webgpu/contactShadows.ts +83 -0
- package/src/webgpu/index.ts +19 -0
- package/src/webgpu/shaderGrid.ts +158 -0
- package/src/webgpu/sky.ts +35 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,1361 @@
|
|
|
1
|
+
import {
|
|
2
|
+
handJoints2,
|
|
3
|
+
clipTime2,
|
|
4
|
+
clipRunning2,
|
|
5
|
+
createPose2,
|
|
6
|
+
resetPose2,
|
|
7
|
+
float2,
|
|
8
|
+
builtinBehaviours2,
|
|
9
|
+
spinAngle2,
|
|
10
|
+
writeRotation2,
|
|
11
|
+
buildMaterial2,
|
|
12
|
+
updateMaterial2,
|
|
13
|
+
vec3Equals2,
|
|
14
|
+
rotationEquals2,
|
|
15
|
+
shapeEquals2,
|
|
16
|
+
geometryRefEquals2,
|
|
17
|
+
instanceEquals2,
|
|
18
|
+
instancesEqual2,
|
|
19
|
+
behaviourEquals2,
|
|
20
|
+
animationEquals2,
|
|
21
|
+
transitionEquals2,
|
|
22
|
+
materialRefEquals2,
|
|
23
|
+
cameraEquals2,
|
|
24
|
+
renderSettingsEquals2,
|
|
25
|
+
effectsEqual2,
|
|
26
|
+
viewsEqual2,
|
|
27
|
+
resourcesEqual2,
|
|
28
|
+
overlaysEqual2,
|
|
29
|
+
environmentEquals2,
|
|
30
|
+
skyEquals2,
|
|
31
|
+
contactShadowsEquals2,
|
|
32
|
+
bodyEquals2,
|
|
33
|
+
physicsEquals2,
|
|
34
|
+
xrEquals2,
|
|
35
|
+
capacityFor2,
|
|
36
|
+
createPerformanceMonitor2,
|
|
37
|
+
easeProgress2,
|
|
38
|
+
startTween2,
|
|
39
|
+
applyTween2,
|
|
40
|
+
fixed2,
|
|
41
|
+
spin2,
|
|
42
|
+
box2,
|
|
43
|
+
sphere2,
|
|
44
|
+
plane2,
|
|
45
|
+
cylinder2,
|
|
46
|
+
torus2,
|
|
47
|
+
cone2,
|
|
48
|
+
capsule2,
|
|
49
|
+
ring2,
|
|
50
|
+
circle2,
|
|
51
|
+
text2,
|
|
52
|
+
instant2,
|
|
53
|
+
ease2,
|
|
54
|
+
basic2,
|
|
55
|
+
lambert2,
|
|
56
|
+
phong2,
|
|
57
|
+
standard2,
|
|
58
|
+
physical2,
|
|
59
|
+
normalMaterial2,
|
|
60
|
+
shadowMaterial2,
|
|
61
|
+
grid2,
|
|
62
|
+
shaderGrid2,
|
|
63
|
+
sharedGeometry2,
|
|
64
|
+
lentGeometry2,
|
|
65
|
+
sharedMaterial2,
|
|
66
|
+
group2,
|
|
67
|
+
headSpace2,
|
|
68
|
+
jointSpace2,
|
|
69
|
+
controllerSpace2,
|
|
70
|
+
anchorSpace2,
|
|
71
|
+
planeSpace2,
|
|
72
|
+
meshSpace2,
|
|
73
|
+
xrMeshGeometryId2,
|
|
74
|
+
xrMesh2,
|
|
75
|
+
xrAnchor2,
|
|
76
|
+
mesh2,
|
|
77
|
+
body2,
|
|
78
|
+
interactionGroups2,
|
|
79
|
+
cuboidCollider2,
|
|
80
|
+
ballCollider2,
|
|
81
|
+
capsuleCollider2,
|
|
82
|
+
cylinderCollider2,
|
|
83
|
+
coneCollider2,
|
|
84
|
+
velocityMotor2,
|
|
85
|
+
positionMotor2,
|
|
86
|
+
physics2,
|
|
87
|
+
bodyRef2,
|
|
88
|
+
joint2,
|
|
89
|
+
fixedJoint2,
|
|
90
|
+
sphericalJoint2,
|
|
91
|
+
revoluteJoint2,
|
|
92
|
+
prismaticJoint2,
|
|
93
|
+
ropeJoint2,
|
|
94
|
+
springJoint2,
|
|
95
|
+
glide2,
|
|
96
|
+
xr2,
|
|
97
|
+
instance2,
|
|
98
|
+
instances2,
|
|
99
|
+
behave2,
|
|
100
|
+
play2,
|
|
101
|
+
borrowed2,
|
|
102
|
+
label2,
|
|
103
|
+
colorRange2,
|
|
104
|
+
ambientLight2,
|
|
105
|
+
directionalLight2,
|
|
106
|
+
pointLight2,
|
|
107
|
+
spotLight2,
|
|
108
|
+
hemisphereLight2,
|
|
109
|
+
perspectiveCamera2,
|
|
110
|
+
orthographicCamera2,
|
|
111
|
+
bloom2,
|
|
112
|
+
vignette2,
|
|
113
|
+
film2,
|
|
114
|
+
renderSettings2,
|
|
115
|
+
view2,
|
|
116
|
+
renderTexture2,
|
|
117
|
+
environment2,
|
|
118
|
+
sunPositionFromAngles2,
|
|
119
|
+
sky2,
|
|
120
|
+
contactShadows2,
|
|
121
|
+
overlay2,
|
|
122
|
+
scene2,
|
|
123
|
+
emptyIndex2,
|
|
124
|
+
indexScene2,
|
|
125
|
+
changedFields2,
|
|
126
|
+
diff2,
|
|
127
|
+
createResourceStore2,
|
|
128
|
+
createSceneClock2,
|
|
129
|
+
createManualFrames2,
|
|
130
|
+
createGatedFrames2,
|
|
131
|
+
createFramePacer2,
|
|
132
|
+
defaultOrbit2,
|
|
133
|
+
orbitOptions2,
|
|
134
|
+
rotateCamera2,
|
|
135
|
+
dollyCamera2,
|
|
136
|
+
panCamera2,
|
|
137
|
+
dollyCameraToward2,
|
|
138
|
+
orbit2,
|
|
139
|
+
orbitKey2,
|
|
140
|
+
autoRotated2,
|
|
141
|
+
fitCamera2,
|
|
142
|
+
clipCamera2,
|
|
143
|
+
placeOverlays2,
|
|
144
|
+
interactionBits2,
|
|
145
|
+
colliderFor2,
|
|
146
|
+
describedColliders2,
|
|
147
|
+
collidersFor2,
|
|
148
|
+
colliderSignature2,
|
|
149
|
+
locomote2,
|
|
150
|
+
teleport2,
|
|
151
|
+
glided2,
|
|
152
|
+
createXrTracker2,
|
|
153
|
+
environmentPresets2,
|
|
154
|
+
environmentPresetUrl2,
|
|
155
|
+
stagePresets2,
|
|
156
|
+
stage2,
|
|
157
|
+
centerOffset2,
|
|
158
|
+
stageBounds2,
|
|
159
|
+
noModifiers2,
|
|
160
|
+
pointOnPlane2,
|
|
161
|
+
createPicker2,
|
|
162
|
+
createPointerTracker2,
|
|
163
|
+
createSceneLoop2,
|
|
164
|
+
recordingRendererFactory2,
|
|
165
|
+
createSceneGraph2
|
|
166
|
+
} from "./index-01kwfekm.js";
|
|
167
|
+
var __defProp = Object.defineProperty;
|
|
168
|
+
var __returnValue = (v) => v;
|
|
169
|
+
function __exportSetter(name, newValue) {
|
|
170
|
+
this[name] = __returnValue.bind(null, newValue);
|
|
171
|
+
}
|
|
172
|
+
var __export = (target, all) => {
|
|
173
|
+
for (var name in all)
|
|
174
|
+
__defProp(target, name, {
|
|
175
|
+
get: all[name],
|
|
176
|
+
enumerable: true,
|
|
177
|
+
configurable: true,
|
|
178
|
+
set: __exportSetter.bind(all, name)
|
|
179
|
+
});
|
|
180
|
+
};
|
|
181
|
+
|
|
182
|
+
// src/runtime/FrameSource.ts
|
|
183
|
+
var exports_FrameSource = {};
|
|
184
|
+
__export(exports_FrameSource, {
|
|
185
|
+
FrameSource: () => FrameSource,
|
|
186
|
+
fromScheduler: () => fromScheduler,
|
|
187
|
+
layer: () => layer
|
|
188
|
+
});
|
|
189
|
+
|
|
190
|
+
// src/runtime/ResourceRegistry.ts
|
|
191
|
+
var exports_ResourceRegistry = {};
|
|
192
|
+
__export(exports_ResourceRegistry, {
|
|
193
|
+
ResourceRegistry: () => ResourceRegistry,
|
|
194
|
+
layer: () => layer2
|
|
195
|
+
});
|
|
196
|
+
|
|
197
|
+
// src/runtime/SceneRuntime.ts
|
|
198
|
+
var exports_SceneRuntime = {};
|
|
199
|
+
__export(exports_SceneRuntime, {
|
|
200
|
+
make: () => make
|
|
201
|
+
});
|
|
202
|
+
|
|
203
|
+
// src/runtime/SceneSchema.ts
|
|
204
|
+
var exports_SceneSchema = {};
|
|
205
|
+
__export(exports_SceneSchema, {
|
|
206
|
+
AmbientLightNode: () => AmbientLightNode,
|
|
207
|
+
Animation: () => Animation,
|
|
208
|
+
AutoRotatedDetail: () => AutoRotatedDetail,
|
|
209
|
+
Axis: () => Axis,
|
|
210
|
+
BasicMaterial: () => BasicMaterial,
|
|
211
|
+
Behave: () => Behave,
|
|
212
|
+
Body: () => Body,
|
|
213
|
+
BodyRef: () => BodyRef,
|
|
214
|
+
BorrowedNode: () => BorrowedNode,
|
|
215
|
+
BoxGeometry: () => BoxGeometry,
|
|
216
|
+
ButtonDetail: () => ButtonDetail,
|
|
217
|
+
Camera: () => Camera,
|
|
218
|
+
CapsuleGeometry: () => CapsuleGeometry,
|
|
219
|
+
CircleGeometry: () => CircleGeometry,
|
|
220
|
+
ColliderDescription: () => ColliderDescription,
|
|
221
|
+
CollisionDetail: () => CollisionDetail,
|
|
222
|
+
ConeGeometry: () => ConeGeometry,
|
|
223
|
+
ContactForceDetail: () => ContactForceDetail,
|
|
224
|
+
ContactShadows: () => ContactShadows,
|
|
225
|
+
CylinderGeometry: () => CylinderGeometry,
|
|
226
|
+
DescriptionError: () => DescriptionError,
|
|
227
|
+
DirectionalLightNode: () => DirectionalLightNode,
|
|
228
|
+
DragDetail: () => DragDetail,
|
|
229
|
+
Easing: () => Easing,
|
|
230
|
+
Environment: () => Environment,
|
|
231
|
+
GeometryRef: () => GeometryRef,
|
|
232
|
+
Gesture: () => Gesture,
|
|
233
|
+
GestureDetail: () => GestureDetail,
|
|
234
|
+
Gestures: () => Gestures,
|
|
235
|
+
GridNode: () => GridNode,
|
|
236
|
+
HemisphereLightNode: () => HemisphereLightNode,
|
|
237
|
+
HitDetail: () => HitDetail,
|
|
238
|
+
Instance: () => Instance,
|
|
239
|
+
InstancesNode: () => InstancesNode,
|
|
240
|
+
InteractionGroups: () => InteractionGroups,
|
|
241
|
+
Joint: () => Joint,
|
|
242
|
+
JointKind: () => JointKind,
|
|
243
|
+
JointLimits: () => JointLimits,
|
|
244
|
+
JointMotor: () => JointMotor,
|
|
245
|
+
KeyDetail: () => KeyDetail,
|
|
246
|
+
LabelMeasuredDetail: () => LabelMeasuredDetail,
|
|
247
|
+
LabelNode: () => LabelNode,
|
|
248
|
+
LambertMaterial: () => LambertMaterial,
|
|
249
|
+
MaterialRef: () => MaterialRef,
|
|
250
|
+
MaterialSide: () => MaterialSide,
|
|
251
|
+
MeasuredDetail: () => MeasuredDetail,
|
|
252
|
+
MeshNode: () => MeshNode,
|
|
253
|
+
MissDetail: () => MissDetail,
|
|
254
|
+
Modifiers: () => Modifiers,
|
|
255
|
+
NormalMaterial: () => NormalMaterial,
|
|
256
|
+
OrthographicCamera: () => OrthographicCamera,
|
|
257
|
+
Overlay: () => Overlay,
|
|
258
|
+
PerformanceDetail: () => PerformanceDetail,
|
|
259
|
+
PerspectiveCamera: () => PerspectiveCamera,
|
|
260
|
+
PhongMaterial: () => PhongMaterial,
|
|
261
|
+
PhysicalMaterial: () => PhysicalMaterial,
|
|
262
|
+
Physics: () => Physics,
|
|
263
|
+
PlaneGeometry: () => PlaneGeometry,
|
|
264
|
+
PointLightNode: () => PointLightNode,
|
|
265
|
+
PostEffect: () => PostEffect,
|
|
266
|
+
Ray: () => Ray,
|
|
267
|
+
RenderSettings: () => RenderSettings,
|
|
268
|
+
RenderTexture: () => RenderTexture,
|
|
269
|
+
ResourceDefinitions: () => ResourceDefinitions,
|
|
270
|
+
Rgb: () => Rgb,
|
|
271
|
+
RingGeometry: () => RingGeometry,
|
|
272
|
+
Rotation: () => Rotation,
|
|
273
|
+
SceneDescription: () => SceneDescription,
|
|
274
|
+
SceneEvent: () => SceneEvent,
|
|
275
|
+
SceneNode: () => SceneNode,
|
|
276
|
+
ShaderGridNode: () => ShaderGridNode,
|
|
277
|
+
ShadowMaterial: () => ShadowMaterial,
|
|
278
|
+
ShapeGeometry: () => ShapeGeometry,
|
|
279
|
+
Sky: () => Sky,
|
|
280
|
+
SphereGeometry: () => SphereGeometry,
|
|
281
|
+
SpotLightNode: () => SpotLightNode,
|
|
282
|
+
StandardMaterial: () => StandardMaterial,
|
|
283
|
+
SurfaceMaterial: () => SurfaceMaterial,
|
|
284
|
+
TextGeometry: () => TextGeometry,
|
|
285
|
+
TorusGeometry: () => TorusGeometry,
|
|
286
|
+
Transition: () => Transition,
|
|
287
|
+
Vec3: () => Vec3,
|
|
288
|
+
View: () => View,
|
|
289
|
+
WheelDetail: () => WheelDetail,
|
|
290
|
+
Xr: () => Xr,
|
|
291
|
+
XrAnchor: () => XrAnchor,
|
|
292
|
+
XrButtonDetail: () => XrButtonDetail,
|
|
293
|
+
XrMesh: () => XrMesh,
|
|
294
|
+
XrMeshesDetail: () => XrMeshesDetail,
|
|
295
|
+
XrMovedDetail: () => XrMovedDetail,
|
|
296
|
+
XrPlane: () => XrPlane,
|
|
297
|
+
XrPlanesDetail: () => XrPlanesDetail,
|
|
298
|
+
XrSpace: () => XrSpace,
|
|
299
|
+
XrStickDetail: () => XrStickDetail,
|
|
300
|
+
XrSurfaceDetail: () => XrSurfaceDetail
|
|
301
|
+
});
|
|
302
|
+
// src/runtime/errors.ts
|
|
303
|
+
import { Data } from "effect";
|
|
304
|
+
|
|
305
|
+
class InvalidScene extends Data.TaggedError("InvalidScene") {
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
class RendererUnavailable extends Data.TaggedError("RendererUnavailable") {
|
|
309
|
+
}
|
|
310
|
+
// src/runtime/FrameSource.ts
|
|
311
|
+
import { Context, Effect, Layer } from "effect";
|
|
312
|
+
var registration = (scheduler, onFrame) => () => {
|
|
313
|
+
const gate = createGatedFrames2(scheduler);
|
|
314
|
+
const unsubscribe = gate.subscribe(onFrame);
|
|
315
|
+
const control = {
|
|
316
|
+
wake: () => gate.setOpen(true),
|
|
317
|
+
sleep: () => gate.setOpen(false)
|
|
318
|
+
};
|
|
319
|
+
return { control, unsubscribe };
|
|
320
|
+
};
|
|
321
|
+
var fromScheduler = (scheduler) => ({
|
|
322
|
+
subscribe: (onFrame) => {
|
|
323
|
+
const register = Effect.sync(registration(scheduler, onFrame));
|
|
324
|
+
return Effect.acquireRelease(register, (registered) => Effect.sync(registered.unsubscribe)).pipe(Effect.map((registered) => registered.control));
|
|
325
|
+
}
|
|
326
|
+
});
|
|
327
|
+
|
|
328
|
+
class FrameSource extends Context.Service()("effect-three/FrameSource") {
|
|
329
|
+
}
|
|
330
|
+
var layer = (scheduler) => Layer.succeed(FrameSource, fromScheduler(scheduler));
|
|
331
|
+
// src/runtime/ResourceRegistry.ts
|
|
332
|
+
import { Context as Context2, Effect as Effect2, Layer as Layer2 } from "effect";
|
|
333
|
+
class ResourceRegistry extends Context2.Service()("effect-three/ResourceRegistry") {
|
|
334
|
+
}
|
|
335
|
+
var acquireStore = Effect2.sync(createResourceStore2);
|
|
336
|
+
var toService = (store) => ({ store });
|
|
337
|
+
var scopedStore = Effect2.acquireRelease(acquireStore, (store) => Effect2.sync(store.dispose));
|
|
338
|
+
var layer2 = Layer2.effect(ResourceRegistry, scopedStore.pipe(Effect2.map(toService)));
|
|
339
|
+
// src/runtime/SceneRuntime.ts
|
|
340
|
+
import { Clock, Effect as Effect3, Exit, Match, Option, Queue, Result, Scope, Stream } from "effect";
|
|
341
|
+
var defaultEventCapacity = 64;
|
|
342
|
+
var noBehaviours = {};
|
|
343
|
+
var ignorePlacements = (_placements) => {
|
|
344
|
+
return;
|
|
345
|
+
};
|
|
346
|
+
var nanosPerMillisecond = 1e6;
|
|
347
|
+
var nanosPerSecond = 1e9;
|
|
348
|
+
var toResult = (result) => Match.valueTags(result, {
|
|
349
|
+
Applied: (applied) => Result.succeed(applied.ops),
|
|
350
|
+
Invalid: ({ error }) => Result.fail(new InvalidScene({ error }))
|
|
351
|
+
});
|
|
352
|
+
var applyViewport = (graph, renderer, viewport) => {
|
|
353
|
+
graph.resize(viewport.width, viewport.height);
|
|
354
|
+
renderer.setViewport(viewport);
|
|
355
|
+
};
|
|
356
|
+
var sceneGraph = (registry, behaviours, engines) => () => createSceneGraph2({
|
|
357
|
+
store: registry.store,
|
|
358
|
+
behaviours,
|
|
359
|
+
physics: engines.physics,
|
|
360
|
+
labels: engines.labels,
|
|
361
|
+
kit: engines.renderer.kit
|
|
362
|
+
});
|
|
363
|
+
var reconcileNow = (graph, sceneClock, scene) => {
|
|
364
|
+
graph.tick(sceneClock.elapsedSeconds());
|
|
365
|
+
return graph.reconcile(scene);
|
|
366
|
+
};
|
|
367
|
+
var viewportChange = (graph, renderer, viewport) => () => applyViewport(graph, renderer, viewport);
|
|
368
|
+
var animationChange = (sceneClock, graph, animating) => () => {
|
|
369
|
+
sceneClock.setAnimating(animating);
|
|
370
|
+
graph.setAnimating(animating);
|
|
371
|
+
};
|
|
372
|
+
var acquireGraph = (registry, behaviours, engines) => {
|
|
373
|
+
const create = Effect3.sync(sceneGraph(registry, behaviours, engines));
|
|
374
|
+
return Effect3.acquireRelease(create, (graph) => Effect3.sync(graph.dispose));
|
|
375
|
+
};
|
|
376
|
+
var acquireRenderer = (factory) => {
|
|
377
|
+
const create = Effect3.try({
|
|
378
|
+
try: factory.create,
|
|
379
|
+
catch: (cause) => new RendererUnavailable({ cause })
|
|
380
|
+
});
|
|
381
|
+
return Effect3.acquireRelease(create, (renderer) => Effect3.sync(renderer.dispose));
|
|
382
|
+
};
|
|
383
|
+
var awaitReady = (renderer) => Option.match(Option.fromNullishOr(renderer.ready), {
|
|
384
|
+
onNone: () => Effect3.void,
|
|
385
|
+
onSome: (ready) => Effect3.tryPromise({ try: ready, catch: (cause) => new RendererUnavailable({ cause }) })
|
|
386
|
+
});
|
|
387
|
+
var invalidationListening = (graph, onInvalidated) => () => graph.onInvalidated(onInvalidated);
|
|
388
|
+
var acquireInvalidation = (graph, onInvalidated) => {
|
|
389
|
+
const listen = Effect3.sync(invalidationListening(graph, onInvalidated));
|
|
390
|
+
return Effect3.acquireRelease(listen, Effect3.sync);
|
|
391
|
+
};
|
|
392
|
+
var acquireEvents = (capacity) => {
|
|
393
|
+
const create = Queue.sliding(capacity);
|
|
394
|
+
return Effect3.acquireRelease(create, Queue.shutdown);
|
|
395
|
+
};
|
|
396
|
+
function* startScene(options) {
|
|
397
|
+
const registry = yield* ResourceRegistry;
|
|
398
|
+
const frames = yield* FrameSource;
|
|
399
|
+
const clock = yield* Clock.Clock;
|
|
400
|
+
const graph = yield* acquireGraph(registry, options.behaviours ?? noBehaviours, options);
|
|
401
|
+
const startupOps = yield* Effect3.fromResult(toResult(graph.reconcile(options.scene)));
|
|
402
|
+
const renderer = yield* acquireRenderer(options.renderer);
|
|
403
|
+
yield* awaitReady(renderer);
|
|
404
|
+
applyViewport(graph, renderer, options.viewport);
|
|
405
|
+
const events = yield* acquireEvents(options.eventCapacity ?? defaultEventCapacity);
|
|
406
|
+
const sceneClock = createSceneClock2(() => Number(clock.monotonicTimeNanosUnsafe()) / nanosPerSecond);
|
|
407
|
+
const loop = createSceneLoop2({
|
|
408
|
+
graph,
|
|
409
|
+
renderer,
|
|
410
|
+
elapsedSeconds: sceneClock.elapsedSeconds,
|
|
411
|
+
emit: (event) => {
|
|
412
|
+
Queue.offerUnsafe(events, event);
|
|
413
|
+
},
|
|
414
|
+
now: () => Number(clock.monotonicTimeNanosUnsafe()) / nanosPerMillisecond,
|
|
415
|
+
placeOverlays: options.placeOverlays ?? ignorePlacements
|
|
416
|
+
});
|
|
417
|
+
yield* Effect3.addFinalizer(() => Effect3.sync(loop.dispose));
|
|
418
|
+
const pacer = createFramePacer2(loop);
|
|
419
|
+
pacer.attach(yield* frames.subscribe(pacer.frame));
|
|
420
|
+
yield* acquireInvalidation(graph, pacer.wake);
|
|
421
|
+
return {
|
|
422
|
+
graph,
|
|
423
|
+
startupOps,
|
|
424
|
+
update: (scene) => Effect3.suspend(() => Effect3.fromResult(toResult(reconcileNow(graph, sceneClock, scene)))),
|
|
425
|
+
resize: (viewport) => Effect3.sync(viewportChange(graph, renderer, viewport)),
|
|
426
|
+
setAnimating: (animating) => Effect3.sync(animationChange(sceneClock, graph, animating)),
|
|
427
|
+
advance: Effect3.sync(pacer.advance),
|
|
428
|
+
drawNow: pacer.advance,
|
|
429
|
+
pointer: loop.pointer,
|
|
430
|
+
xrInput: loop.xrInput,
|
|
431
|
+
events: Stream.fromQueue(events),
|
|
432
|
+
drainEvents: Queue.clear(events)
|
|
433
|
+
};
|
|
434
|
+
}
|
|
435
|
+
function* startAtomically(options) {
|
|
436
|
+
const parent = yield* Effect3.scope;
|
|
437
|
+
const child = yield* Scope.fork(parent);
|
|
438
|
+
return yield* Effect3.gen(() => startScene(options)).pipe(Scope.provide(child), Effect3.onError((cause) => Scope.close(child, Exit.failCause(cause))));
|
|
439
|
+
}
|
|
440
|
+
var make = (options) => {
|
|
441
|
+
const program = Effect3.gen(() => startAtomically(options));
|
|
442
|
+
return program.pipe(Effect3.withSpan("effect-three/SceneRuntime.make"));
|
|
443
|
+
};
|
|
444
|
+
// src/runtime/SceneSchema.ts
|
|
445
|
+
import { Schema } from "effect";
|
|
446
|
+
var NonNegative = Schema.Finite.check(Schema.isGreaterThanOrEqualTo(0));
|
|
447
|
+
var Positive = Schema.Finite.check(Schema.isGreaterThan(0));
|
|
448
|
+
var UnitInterval = Schema.Finite.check(Schema.isBetween({ minimum: 0, maximum: 1 }));
|
|
449
|
+
var Vec3 = Schema.Tuple([Schema.Finite, Schema.Finite, Schema.Finite]);
|
|
450
|
+
var Axis = Schema.Literals(["x", "y", "z"]);
|
|
451
|
+
var Rgb = Schema.Int.check(Schema.isBetween({ minimum: 0, maximum: 16777215 }));
|
|
452
|
+
var Rotation = Schema.Union([
|
|
453
|
+
Schema.TaggedStruct("Fixed", { euler: Vec3 }),
|
|
454
|
+
Schema.TaggedStruct("Spin", {
|
|
455
|
+
axis: Axis,
|
|
456
|
+
radiansPerSecond: Schema.Finite,
|
|
457
|
+
phase: Schema.Finite
|
|
458
|
+
})
|
|
459
|
+
]);
|
|
460
|
+
var BoxGeometry = Schema.TaggedStruct("Box", {
|
|
461
|
+
width: Positive,
|
|
462
|
+
height: Positive,
|
|
463
|
+
depth: Positive
|
|
464
|
+
});
|
|
465
|
+
var Segments = Schema.Int.check(Schema.isGreaterThanOrEqualTo(3));
|
|
466
|
+
var SphereGeometry = Schema.TaggedStruct("Sphere", {
|
|
467
|
+
radius: Positive,
|
|
468
|
+
widthSegments: Segments,
|
|
469
|
+
heightSegments: Schema.Int.check(Schema.isGreaterThanOrEqualTo(2))
|
|
470
|
+
});
|
|
471
|
+
var PlaneGeometry = Schema.TaggedStruct("Plane", { width: Positive, height: Positive });
|
|
472
|
+
var CylinderGeometry = Schema.TaggedStruct("Cylinder", {
|
|
473
|
+
radiusTop: NonNegative,
|
|
474
|
+
radiusBottom: NonNegative,
|
|
475
|
+
height: Positive,
|
|
476
|
+
radialSegments: Segments
|
|
477
|
+
});
|
|
478
|
+
var TorusGeometry = Schema.TaggedStruct("Torus", {
|
|
479
|
+
radius: Positive,
|
|
480
|
+
tube: Positive,
|
|
481
|
+
radialSegments: Segments,
|
|
482
|
+
tubularSegments: Segments
|
|
483
|
+
});
|
|
484
|
+
var ConeGeometry = Schema.TaggedStruct("Cone", {
|
|
485
|
+
radius: Positive,
|
|
486
|
+
height: Positive,
|
|
487
|
+
radialSegments: Segments
|
|
488
|
+
});
|
|
489
|
+
var CapsuleGeometry = Schema.TaggedStruct("Capsule", {
|
|
490
|
+
radius: Positive,
|
|
491
|
+
height: NonNegative,
|
|
492
|
+
capSegments: Schema.Int.check(Schema.isGreaterThanOrEqualTo(1)),
|
|
493
|
+
radialSegments: Segments
|
|
494
|
+
});
|
|
495
|
+
var RingGeometry = Schema.TaggedStruct("Ring", {
|
|
496
|
+
innerRadius: NonNegative,
|
|
497
|
+
outerRadius: Positive,
|
|
498
|
+
thetaSegments: Segments
|
|
499
|
+
});
|
|
500
|
+
var CircleGeometry = Schema.TaggedStruct("Circle", {
|
|
501
|
+
radius: Positive,
|
|
502
|
+
segments: Segments
|
|
503
|
+
});
|
|
504
|
+
var Steps = Schema.Int.check(Schema.isGreaterThanOrEqualTo(1));
|
|
505
|
+
var TextGeometry = Schema.TaggedStruct("Text", {
|
|
506
|
+
text: Schema.String,
|
|
507
|
+
font: Schema.String,
|
|
508
|
+
size: Positive,
|
|
509
|
+
depth: NonNegative,
|
|
510
|
+
curveSegments: Steps,
|
|
511
|
+
bevel: Schema.NullOr(Schema.Struct({
|
|
512
|
+
thickness: NonNegative,
|
|
513
|
+
size: NonNegative,
|
|
514
|
+
offset: Schema.Finite,
|
|
515
|
+
segments: Steps
|
|
516
|
+
})),
|
|
517
|
+
center: Schema.Boolean,
|
|
518
|
+
letterSpacing: Schema.Finite,
|
|
519
|
+
lineHeight: NonNegative,
|
|
520
|
+
align: Schema.Literals(["left", "center", "right"])
|
|
521
|
+
});
|
|
522
|
+
var ShapeGeometry = Schema.Union([
|
|
523
|
+
TextGeometry,
|
|
524
|
+
BoxGeometry,
|
|
525
|
+
SphereGeometry,
|
|
526
|
+
PlaneGeometry,
|
|
527
|
+
CylinderGeometry,
|
|
528
|
+
TorusGeometry,
|
|
529
|
+
ConeGeometry,
|
|
530
|
+
CapsuleGeometry,
|
|
531
|
+
RingGeometry,
|
|
532
|
+
CircleGeometry
|
|
533
|
+
]);
|
|
534
|
+
var Behave = Schema.Struct({
|
|
535
|
+
name: Schema.String,
|
|
536
|
+
params: Schema.Record(Schema.String, Schema.Finite)
|
|
537
|
+
});
|
|
538
|
+
var Easing = Schema.Literals(["linear", "easeInOutCubic", "easeOutCubic", "easeOutBack"]);
|
|
539
|
+
var Transition = Schema.Union([
|
|
540
|
+
Schema.TaggedStruct("Instant", {}),
|
|
541
|
+
Schema.TaggedStruct("Ease", { seconds: Positive, easing: Easing })
|
|
542
|
+
]);
|
|
543
|
+
var MaterialSide = Schema.Literals(["front", "back", "double"]);
|
|
544
|
+
var TextureId = Schema.NullOr(Schema.String);
|
|
545
|
+
var surface = {
|
|
546
|
+
opacity: UnitInterval,
|
|
547
|
+
transparent: Schema.Boolean,
|
|
548
|
+
side: MaterialSide,
|
|
549
|
+
wireframe: Schema.Boolean
|
|
550
|
+
};
|
|
551
|
+
var shaded = { ...surface, flatShading: Schema.Boolean };
|
|
552
|
+
var BasicMaterial = Schema.TaggedStruct("Basic", {
|
|
553
|
+
color: Rgb,
|
|
554
|
+
map: TextureId,
|
|
555
|
+
...surface
|
|
556
|
+
});
|
|
557
|
+
var LambertMaterial = Schema.TaggedStruct("Lambert", {
|
|
558
|
+
color: Rgb,
|
|
559
|
+
map: TextureId,
|
|
560
|
+
emissive: Rgb,
|
|
561
|
+
...shaded
|
|
562
|
+
});
|
|
563
|
+
var PhongMaterial = Schema.TaggedStruct("Phong", {
|
|
564
|
+
color: Rgb,
|
|
565
|
+
map: TextureId,
|
|
566
|
+
emissive: Rgb,
|
|
567
|
+
specular: Rgb,
|
|
568
|
+
shininess: NonNegative,
|
|
569
|
+
...shaded
|
|
570
|
+
});
|
|
571
|
+
var pbr = {
|
|
572
|
+
color: Rgb,
|
|
573
|
+
map: TextureId,
|
|
574
|
+
roughness: UnitInterval,
|
|
575
|
+
metalness: UnitInterval,
|
|
576
|
+
emissive: Rgb,
|
|
577
|
+
emissiveIntensity: NonNegative
|
|
578
|
+
};
|
|
579
|
+
var StandardMaterial = Schema.TaggedStruct("Standard", { ...pbr, ...shaded });
|
|
580
|
+
var PhysicalMaterial = Schema.TaggedStruct("Physical", {
|
|
581
|
+
...pbr,
|
|
582
|
+
clearcoat: UnitInterval,
|
|
583
|
+
clearcoatRoughness: UnitInterval,
|
|
584
|
+
transmission: UnitInterval,
|
|
585
|
+
ior: Schema.Finite.check(Schema.isBetween({ minimum: 1, maximum: 2.333 })),
|
|
586
|
+
...shaded
|
|
587
|
+
});
|
|
588
|
+
var NormalMaterial = Schema.TaggedStruct("Normal", shaded);
|
|
589
|
+
var ShadowMaterial = Schema.TaggedStruct("Shadow", { color: Rgb, opacity: UnitInterval });
|
|
590
|
+
var SurfaceMaterial = Schema.Union([
|
|
591
|
+
ShadowMaterial,
|
|
592
|
+
BasicMaterial,
|
|
593
|
+
LambertMaterial,
|
|
594
|
+
PhongMaterial,
|
|
595
|
+
StandardMaterial,
|
|
596
|
+
PhysicalMaterial,
|
|
597
|
+
NormalMaterial
|
|
598
|
+
]);
|
|
599
|
+
var GeometryRef = Schema.Union([
|
|
600
|
+
...ShapeGeometry.members,
|
|
601
|
+
Schema.TaggedStruct("SharedGeometry", { id: Schema.String }),
|
|
602
|
+
Schema.TaggedStruct("LentGeometry", { id: Schema.String })
|
|
603
|
+
]);
|
|
604
|
+
var MaterialRef = Schema.Union([
|
|
605
|
+
...SurfaceMaterial.members,
|
|
606
|
+
Schema.TaggedStruct("SharedMaterial", { id: Schema.String })
|
|
607
|
+
]);
|
|
608
|
+
var ResourceDefinitions = Schema.Struct({
|
|
609
|
+
geometries: Schema.Array(Schema.Struct({ id: Schema.String, geometry: ShapeGeometry })),
|
|
610
|
+
materials: Schema.Array(Schema.Struct({ id: Schema.String, material: SurfaceMaterial }))
|
|
611
|
+
});
|
|
612
|
+
var Upright = { halfHeight: Positive, radius: Positive };
|
|
613
|
+
var ColliderDescription = Schema.Struct({
|
|
614
|
+
shape: Schema.Union([
|
|
615
|
+
Schema.TaggedStruct("Cuboid", { halfExtents: Vec3 }),
|
|
616
|
+
Schema.TaggedStruct("Ball", { radius: Positive }),
|
|
617
|
+
Schema.TaggedStruct("Capsule", Upright),
|
|
618
|
+
Schema.TaggedStruct("Cylinder", Upright),
|
|
619
|
+
Schema.TaggedStruct("Cone", Upright)
|
|
620
|
+
]),
|
|
621
|
+
position: Vec3,
|
|
622
|
+
rotation: Vec3,
|
|
623
|
+
name: Schema.NullOr(Schema.String)
|
|
624
|
+
});
|
|
625
|
+
var Group = Schema.Int.check(Schema.isBetween({ minimum: 0, maximum: 15 }));
|
|
626
|
+
var InteractionGroups = Schema.Struct({
|
|
627
|
+
memberships: Schema.Array(Group),
|
|
628
|
+
filters: Schema.NullOr(Schema.Array(Group))
|
|
629
|
+
});
|
|
630
|
+
var Body = Schema.Struct({
|
|
631
|
+
type: Schema.Literals(["dynamic", "fixed", "kinematic"]),
|
|
632
|
+
collider: Schema.Literals(["cuboid", "ball", "hull", "trimesh"]),
|
|
633
|
+
mass: Schema.NullOr(Positive),
|
|
634
|
+
friction: NonNegative,
|
|
635
|
+
restitution: NonNegative,
|
|
636
|
+
linearDamping: NonNegative,
|
|
637
|
+
angularDamping: NonNegative,
|
|
638
|
+
gravityScale: Schema.Finite,
|
|
639
|
+
ccd: Schema.Boolean,
|
|
640
|
+
sensor: Schema.Boolean,
|
|
641
|
+
linearVelocity: Vec3,
|
|
642
|
+
angularVelocity: Vec3,
|
|
643
|
+
impulse: Schema.NullOr(Schema.Struct({ id: Schema.Finite, impulse: Vec3 })),
|
|
644
|
+
colliders: Schema.NullOr(Schema.Array(ColliderDescription)),
|
|
645
|
+
contactForces: Schema.NullOr(NonNegative),
|
|
646
|
+
collisionGroups: Schema.NullOr(InteractionGroups),
|
|
647
|
+
solverGroups: Schema.NullOr(InteractionGroups)
|
|
648
|
+
});
|
|
649
|
+
var Handedness = Schema.Literals(["left", "right"]);
|
|
650
|
+
var XrSpace = Schema.Union([
|
|
651
|
+
Schema.TaggedStruct("Head", {}),
|
|
652
|
+
Schema.TaggedStruct("Joint", { hand: Handedness, joint: Schema.Literals(handJoints2) }),
|
|
653
|
+
Schema.TaggedStruct("Controller", { hand: Handedness, space: Schema.Literals(["grip", "ray"]) }),
|
|
654
|
+
Schema.TaggedStruct("Anchor", { id: Schema.String }),
|
|
655
|
+
Schema.TaggedStruct("Plane", { id: Schema.String }),
|
|
656
|
+
Schema.TaggedStruct("Mesh", { id: Schema.String })
|
|
657
|
+
]);
|
|
658
|
+
var BodyRef = Schema.Struct({
|
|
659
|
+
key: Schema.String,
|
|
660
|
+
instance: Schema.NullOr(Schema.String)
|
|
661
|
+
});
|
|
662
|
+
var JointMotor = Schema.Struct({
|
|
663
|
+
position: Schema.Finite,
|
|
664
|
+
velocity: Schema.Finite,
|
|
665
|
+
stiffness: NonNegative,
|
|
666
|
+
damping: NonNegative
|
|
667
|
+
});
|
|
668
|
+
var JointLimits = Schema.Tuple([Schema.Finite, Schema.Finite]);
|
|
669
|
+
var JointKind = Schema.Union([
|
|
670
|
+
Schema.TaggedStruct("Fixed", { frameA: Vec3, frameB: Vec3 }),
|
|
671
|
+
Schema.TaggedStruct("Spherical", {}),
|
|
672
|
+
Schema.TaggedStruct("Revolute", {
|
|
673
|
+
axis: Vec3,
|
|
674
|
+
limits: Schema.NullOr(JointLimits),
|
|
675
|
+
motor: Schema.NullOr(JointMotor)
|
|
676
|
+
}),
|
|
677
|
+
Schema.TaggedStruct("Prismatic", {
|
|
678
|
+
axis: Vec3,
|
|
679
|
+
limits: Schema.NullOr(JointLimits),
|
|
680
|
+
motor: Schema.NullOr(JointMotor)
|
|
681
|
+
}),
|
|
682
|
+
Schema.TaggedStruct("Rope", { length: Schema.Finite }),
|
|
683
|
+
Schema.TaggedStruct("Spring", {
|
|
684
|
+
restLength: Schema.Finite,
|
|
685
|
+
stiffness: Schema.Finite,
|
|
686
|
+
damping: Schema.Finite
|
|
687
|
+
})
|
|
688
|
+
]);
|
|
689
|
+
var Joint = Schema.Struct({
|
|
690
|
+
key: Schema.String,
|
|
691
|
+
a: BodyRef,
|
|
692
|
+
b: BodyRef,
|
|
693
|
+
anchorA: Vec3,
|
|
694
|
+
anchorB: Vec3,
|
|
695
|
+
kind: JointKind,
|
|
696
|
+
contacts: Schema.Boolean
|
|
697
|
+
});
|
|
698
|
+
var Physics = Schema.Struct({
|
|
699
|
+
gravity: Vec3,
|
|
700
|
+
paused: Schema.Boolean,
|
|
701
|
+
timeStep: Positive,
|
|
702
|
+
interpolate: Schema.Boolean,
|
|
703
|
+
debug: Schema.Boolean,
|
|
704
|
+
joints: Schema.Array(Joint)
|
|
705
|
+
});
|
|
706
|
+
var MeshNode = Schema.TaggedStruct("Mesh", {
|
|
707
|
+
key: Schema.String,
|
|
708
|
+
position: Vec3,
|
|
709
|
+
rotation: Rotation,
|
|
710
|
+
scale: Vec3,
|
|
711
|
+
transition: Transition,
|
|
712
|
+
behaviour: Schema.NullOr(Behave),
|
|
713
|
+
geometry: GeometryRef,
|
|
714
|
+
material: MaterialRef,
|
|
715
|
+
interactive: Schema.Boolean,
|
|
716
|
+
castShadow: Schema.Boolean,
|
|
717
|
+
receiveShadow: Schema.Boolean,
|
|
718
|
+
body: Schema.NullOr(Body)
|
|
719
|
+
});
|
|
720
|
+
var Instance = Schema.Struct({
|
|
721
|
+
key: Schema.String,
|
|
722
|
+
position: Vec3,
|
|
723
|
+
rotation: Vec3,
|
|
724
|
+
scale: Vec3,
|
|
725
|
+
color: Rgb
|
|
726
|
+
});
|
|
727
|
+
var InstancesNode = Schema.TaggedStruct("Instances", {
|
|
728
|
+
key: Schema.String,
|
|
729
|
+
position: Vec3,
|
|
730
|
+
rotation: Rotation,
|
|
731
|
+
scale: Vec3,
|
|
732
|
+
transition: Transition,
|
|
733
|
+
behaviour: Schema.NullOr(Behave),
|
|
734
|
+
geometry: GeometryRef,
|
|
735
|
+
material: MaterialRef,
|
|
736
|
+
interactive: Schema.Boolean,
|
|
737
|
+
castShadow: Schema.Boolean,
|
|
738
|
+
receiveShadow: Schema.Boolean,
|
|
739
|
+
instances: Schema.Array(Instance),
|
|
740
|
+
body: Schema.NullOr(Body)
|
|
741
|
+
});
|
|
742
|
+
var Animation = Schema.Struct({
|
|
743
|
+
clip: Schema.String,
|
|
744
|
+
speed: Schema.Finite,
|
|
745
|
+
loop: Schema.Boolean
|
|
746
|
+
});
|
|
747
|
+
var BorrowedNode = Schema.TaggedStruct("Borrowed", {
|
|
748
|
+
key: Schema.String,
|
|
749
|
+
id: Schema.String,
|
|
750
|
+
animation: Schema.NullOr(Animation),
|
|
751
|
+
position: Vec3,
|
|
752
|
+
rotation: Rotation,
|
|
753
|
+
scale: Vec3,
|
|
754
|
+
transition: Transition,
|
|
755
|
+
behaviour: Schema.NullOr(Behave),
|
|
756
|
+
interactive: Schema.Boolean,
|
|
757
|
+
body: Schema.NullOr(Body)
|
|
758
|
+
});
|
|
759
|
+
var LabelNode = Schema.TaggedStruct("Label", {
|
|
760
|
+
key: Schema.String,
|
|
761
|
+
position: Vec3,
|
|
762
|
+
rotation: Rotation,
|
|
763
|
+
scale: Vec3,
|
|
764
|
+
transition: Transition,
|
|
765
|
+
behaviour: Schema.NullOr(Behave),
|
|
766
|
+
interactive: Schema.Boolean,
|
|
767
|
+
text: Schema.String,
|
|
768
|
+
font: Schema.NullOr(Schema.String),
|
|
769
|
+
fontSize: Positive,
|
|
770
|
+
color: Rgb,
|
|
771
|
+
fillOpacity: NonNegative,
|
|
772
|
+
anchorX: Schema.Union([Schema.Literals(["left", "center", "right"]), Schema.Finite]),
|
|
773
|
+
anchorY: Schema.Union([
|
|
774
|
+
Schema.Literals(["top", "top-baseline", "middle", "bottom-baseline", "bottom"]),
|
|
775
|
+
Schema.Finite
|
|
776
|
+
]),
|
|
777
|
+
maxWidth: Schema.NullOr(Positive),
|
|
778
|
+
lineHeight: Schema.NullOr(Positive),
|
|
779
|
+
letterSpacing: Schema.Finite,
|
|
780
|
+
textAlign: Schema.Literals(["left", "right", "center", "justify"]),
|
|
781
|
+
outlineWidth: NonNegative,
|
|
782
|
+
outlineColor: Rgb,
|
|
783
|
+
outlineOpacity: NonNegative,
|
|
784
|
+
outlineBlur: NonNegative,
|
|
785
|
+
colorRanges: Schema.Array(Schema.Struct({ start: Schema.Int.check(Schema.isGreaterThanOrEqualTo(0)), color: Rgb })),
|
|
786
|
+
curveRadius: Schema.Finite,
|
|
787
|
+
material: Schema.NullOr(MaterialRef)
|
|
788
|
+
});
|
|
789
|
+
var AmbientLightNode = Schema.TaggedStruct("AmbientLight", {
|
|
790
|
+
key: Schema.String,
|
|
791
|
+
color: Rgb,
|
|
792
|
+
intensity: NonNegative
|
|
793
|
+
});
|
|
794
|
+
var isPowerOfTwo = (size) => Number.isInteger(Math.log2(size)) || "expected a power of two";
|
|
795
|
+
var ShadowMapSize = Schema.Int.check(Schema.isBetween({ minimum: 16, maximum: 8192 }), Schema.makeFilter(isPowerOfTwo));
|
|
796
|
+
var DirectionalLightNode = Schema.TaggedStruct("DirectionalLight", {
|
|
797
|
+
key: Schema.String,
|
|
798
|
+
color: Rgb,
|
|
799
|
+
intensity: NonNegative,
|
|
800
|
+
position: Vec3,
|
|
801
|
+
castShadow: Schema.Boolean,
|
|
802
|
+
shadowMapSize: ShadowMapSize,
|
|
803
|
+
shadowBias: Schema.Finite,
|
|
804
|
+
shadowArea: Positive
|
|
805
|
+
});
|
|
806
|
+
var PointLightNode = Schema.TaggedStruct("PointLight", {
|
|
807
|
+
key: Schema.String,
|
|
808
|
+
color: Rgb,
|
|
809
|
+
intensity: NonNegative,
|
|
810
|
+
position: Vec3,
|
|
811
|
+
distance: NonNegative,
|
|
812
|
+
decay: NonNegative,
|
|
813
|
+
castShadow: Schema.Boolean,
|
|
814
|
+
shadowMapSize: ShadowMapSize,
|
|
815
|
+
shadowBias: Schema.Finite
|
|
816
|
+
});
|
|
817
|
+
var SpotLightNode = Schema.TaggedStruct("SpotLight", {
|
|
818
|
+
key: Schema.String,
|
|
819
|
+
color: Rgb,
|
|
820
|
+
intensity: NonNegative,
|
|
821
|
+
position: Vec3,
|
|
822
|
+
target: Vec3,
|
|
823
|
+
distance: NonNegative,
|
|
824
|
+
angle: Schema.Finite.check(Schema.isBetween({ minimum: 0, maximum: Math.PI / 2, exclusiveMinimum: true })),
|
|
825
|
+
penumbra: Schema.Finite.check(Schema.isBetween({ minimum: 0, maximum: 1 })),
|
|
826
|
+
decay: NonNegative,
|
|
827
|
+
castShadow: Schema.Boolean,
|
|
828
|
+
shadowMapSize: ShadowMapSize,
|
|
829
|
+
shadowBias: Schema.Finite
|
|
830
|
+
});
|
|
831
|
+
var GridNode = Schema.TaggedStruct("Grid", {
|
|
832
|
+
key: Schema.String,
|
|
833
|
+
position: Vec3,
|
|
834
|
+
size: Positive,
|
|
835
|
+
divisions: Schema.Int.check(Schema.isGreaterThanOrEqualTo(1)),
|
|
836
|
+
color: Rgb,
|
|
837
|
+
centerColor: Rgb
|
|
838
|
+
});
|
|
839
|
+
var ShaderGridNode = Schema.TaggedStruct("ShaderGrid", {
|
|
840
|
+
key: Schema.String,
|
|
841
|
+
position: Vec3,
|
|
842
|
+
rotation: Vec3,
|
|
843
|
+
size: Schema.Tuple([Positive, Positive]),
|
|
844
|
+
cellSize: Positive,
|
|
845
|
+
cellThickness: NonNegative,
|
|
846
|
+
cellColor: Rgb,
|
|
847
|
+
sectionSize: Positive,
|
|
848
|
+
sectionThickness: NonNegative,
|
|
849
|
+
sectionColor: Rgb,
|
|
850
|
+
infinite: Schema.Boolean,
|
|
851
|
+
followCamera: Schema.Boolean,
|
|
852
|
+
fadeDistance: Positive,
|
|
853
|
+
fadeStrength: NonNegative,
|
|
854
|
+
fadeFrom: Schema.Finite,
|
|
855
|
+
side: Schema.Literals(["front", "back", "double"])
|
|
856
|
+
});
|
|
857
|
+
var HemisphereLightNode = Schema.TaggedStruct("HemisphereLight", {
|
|
858
|
+
key: Schema.String,
|
|
859
|
+
color: Rgb,
|
|
860
|
+
groundColor: Rgb,
|
|
861
|
+
intensity: NonNegative,
|
|
862
|
+
position: Vec3
|
|
863
|
+
});
|
|
864
|
+
var SceneNode = Schema.Union([
|
|
865
|
+
Schema.TaggedStruct("Group", {
|
|
866
|
+
key: Schema.String,
|
|
867
|
+
position: Vec3,
|
|
868
|
+
rotation: Rotation,
|
|
869
|
+
scale: Vec3,
|
|
870
|
+
transition: Transition,
|
|
871
|
+
behaviour: Schema.NullOr(Behave),
|
|
872
|
+
interactive: Schema.Boolean,
|
|
873
|
+
children: Schema.Array(Schema.suspend(() => SceneNode)),
|
|
874
|
+
body: Schema.NullOr(Body),
|
|
875
|
+
follow: Schema.NullOr(XrSpace)
|
|
876
|
+
}),
|
|
877
|
+
MeshNode,
|
|
878
|
+
InstancesNode,
|
|
879
|
+
BorrowedNode,
|
|
880
|
+
LabelNode,
|
|
881
|
+
ShaderGridNode,
|
|
882
|
+
AmbientLightNode,
|
|
883
|
+
DirectionalLightNode,
|
|
884
|
+
PointLightNode,
|
|
885
|
+
SpotLightNode,
|
|
886
|
+
HemisphereLightNode,
|
|
887
|
+
GridNode
|
|
888
|
+
]);
|
|
889
|
+
var CameraDamping = Schema.Finite.check(Schema.isGreaterThanOrEqualTo(0), Schema.isLessThan(1));
|
|
890
|
+
var PerspectiveCamera = Schema.TaggedStruct("Perspective", {
|
|
891
|
+
fov: Schema.Finite.check(Schema.isBetween({ minimum: 0, maximum: 180, exclusiveMinimum: true })),
|
|
892
|
+
near: Positive,
|
|
893
|
+
far: Positive,
|
|
894
|
+
position: Vec3,
|
|
895
|
+
lookAt: Vec3,
|
|
896
|
+
damping: CameraDamping,
|
|
897
|
+
autoRotate: Schema.Finite
|
|
898
|
+
});
|
|
899
|
+
var OrthographicCamera = Schema.TaggedStruct("Orthographic", {
|
|
900
|
+
zoom: Positive,
|
|
901
|
+
near: Positive,
|
|
902
|
+
far: Positive,
|
|
903
|
+
position: Vec3,
|
|
904
|
+
lookAt: Vec3,
|
|
905
|
+
damping: CameraDamping,
|
|
906
|
+
autoRotate: Schema.Finite
|
|
907
|
+
});
|
|
908
|
+
var Camera = Schema.Union([PerspectiveCamera, OrthographicCamera]);
|
|
909
|
+
var NonNegativeFinite = Schema.Finite.check(Schema.isGreaterThanOrEqualTo(0));
|
|
910
|
+
var PostEffect = Schema.Union([
|
|
911
|
+
Schema.TaggedStruct("Bloom", {
|
|
912
|
+
strength: NonNegativeFinite,
|
|
913
|
+
radius: NonNegativeFinite,
|
|
914
|
+
threshold: NonNegativeFinite
|
|
915
|
+
}),
|
|
916
|
+
Schema.TaggedStruct("Vignette", { offset: NonNegativeFinite, darkness: NonNegativeFinite }),
|
|
917
|
+
Schema.TaggedStruct("Film", { intensity: NonNegativeFinite, grayscale: Schema.Boolean })
|
|
918
|
+
]);
|
|
919
|
+
var RenderSettings = Schema.Struct({
|
|
920
|
+
effects: Schema.Array(PostEffect),
|
|
921
|
+
frames: Schema.Literals(["always", "demand", "never"]),
|
|
922
|
+
resolution: Schema.Finite.check(Schema.isBetween({ minimum: 0, maximum: 1, exclusiveMinimum: true })),
|
|
923
|
+
shadows: Schema.Literals(["off", "basic", "percentage", "soft", "variance"]),
|
|
924
|
+
toneMapping: Schema.Literals(["none", "linear", "reinhard", "cineon", "aces", "agx", "neutral"]),
|
|
925
|
+
exposure: Positive,
|
|
926
|
+
colorSpace: Schema.Literals(["srgb", "linear"])
|
|
927
|
+
});
|
|
928
|
+
var View = Schema.Struct({
|
|
929
|
+
key: Schema.String,
|
|
930
|
+
camera: Camera,
|
|
931
|
+
rect: Schema.Struct({
|
|
932
|
+
x: Schema.Finite,
|
|
933
|
+
y: Schema.Finite,
|
|
934
|
+
width: Schema.Finite.check(Schema.isGreaterThan(0)),
|
|
935
|
+
height: Schema.Finite.check(Schema.isGreaterThan(0))
|
|
936
|
+
})
|
|
937
|
+
});
|
|
938
|
+
var RenderTexture = Schema.Struct({
|
|
939
|
+
id: Schema.String,
|
|
940
|
+
width: Schema.Int.check(Schema.isBetween({ minimum: 1, maximum: 8192 })),
|
|
941
|
+
height: Schema.Int.check(Schema.isBetween({ minimum: 1, maximum: 8192 })),
|
|
942
|
+
camera: Camera,
|
|
943
|
+
background: Schema.NullOr(Rgb),
|
|
944
|
+
children: Schema.Array(SceneNode)
|
|
945
|
+
});
|
|
946
|
+
var Overlay = Schema.Struct({
|
|
947
|
+
key: Schema.String,
|
|
948
|
+
node: Schema.NullOr(Schema.String),
|
|
949
|
+
position: Vec3,
|
|
950
|
+
center: Schema.Boolean,
|
|
951
|
+
distanceFactor: Schema.NullOr(Positive),
|
|
952
|
+
occlude: Schema.Boolean,
|
|
953
|
+
zIndexRange: Schema.Tuple([Schema.Int, Schema.Int]),
|
|
954
|
+
view: Schema.NullOr(Schema.String)
|
|
955
|
+
});
|
|
956
|
+
var Environment = Schema.Struct({
|
|
957
|
+
map: Schema.NullOr(Schema.String),
|
|
958
|
+
background: Schema.Union([Schema.Boolean, Schema.Literal("only")]),
|
|
959
|
+
backgroundBlurriness: Schema.Finite.check(Schema.isBetween({ minimum: 0, maximum: 1 })),
|
|
960
|
+
backgroundIntensity: NonNegative,
|
|
961
|
+
environmentIntensity: NonNegative
|
|
962
|
+
});
|
|
963
|
+
var Sky = Schema.Struct({
|
|
964
|
+
sunPosition: Vec3,
|
|
965
|
+
turbidity: NonNegative,
|
|
966
|
+
rayleigh: NonNegative,
|
|
967
|
+
mieCoefficient: NonNegative,
|
|
968
|
+
mieDirectionalG: UnitInterval,
|
|
969
|
+
clouds: UnitInterval,
|
|
970
|
+
distance: Positive
|
|
971
|
+
});
|
|
972
|
+
var ContactShadows = Schema.Struct({
|
|
973
|
+
position: Vec3,
|
|
974
|
+
size: Schema.Tuple([Positive, Positive]),
|
|
975
|
+
near: Schema.Finite,
|
|
976
|
+
far: Positive,
|
|
977
|
+
blur: NonNegative,
|
|
978
|
+
smooth: Schema.Boolean,
|
|
979
|
+
opacity: UnitInterval,
|
|
980
|
+
color: Rgb,
|
|
981
|
+
resolution: Schema.Int.check(Schema.isBetween({ minimum: 16, maximum: 4096 }))
|
|
982
|
+
});
|
|
983
|
+
var XrAnchor = Schema.Struct({ id: Schema.String, position: Vec3, rotation: Vec3 });
|
|
984
|
+
var Xr = Schema.Struct({
|
|
985
|
+
origin: Vec3,
|
|
986
|
+
heading: Schema.Finite,
|
|
987
|
+
referenceSpace: Schema.Literals(["local-floor", "local", "bounded-floor"]),
|
|
988
|
+
framebufferScale: Positive,
|
|
989
|
+
hitTest: Schema.Boolean,
|
|
990
|
+
showInputs: Schema.Boolean,
|
|
991
|
+
anchors: Schema.Array(XrAnchor),
|
|
992
|
+
planes: Schema.Boolean,
|
|
993
|
+
meshes: Schema.Boolean,
|
|
994
|
+
domOverlay: Schema.Boolean,
|
|
995
|
+
glide: Schema.NullOr(Schema.Struct({
|
|
996
|
+
speed: NonNegative,
|
|
997
|
+
turn: Schema.Literals(["smooth", "snap"]),
|
|
998
|
+
turnSpeed: NonNegative,
|
|
999
|
+
snapDegrees: NonNegative
|
|
1000
|
+
}))
|
|
1001
|
+
});
|
|
1002
|
+
var Gestures = Schema.Literals(["page", "scene"]);
|
|
1003
|
+
var SceneDescription = Schema.Struct({
|
|
1004
|
+
camera: Camera,
|
|
1005
|
+
gestures: Gestures,
|
|
1006
|
+
views: Schema.Array(View),
|
|
1007
|
+
renderTextures: Schema.Array(RenderTexture),
|
|
1008
|
+
overlays: Schema.Array(Overlay),
|
|
1009
|
+
environment: Schema.NullOr(Environment),
|
|
1010
|
+
sky: Schema.NullOr(Sky),
|
|
1011
|
+
contactShadows: Schema.NullOr(ContactShadows),
|
|
1012
|
+
physics: Schema.NullOr(Physics),
|
|
1013
|
+
xr: Schema.NullOr(Xr),
|
|
1014
|
+
measure: Schema.Array(Schema.String),
|
|
1015
|
+
render: RenderSettings,
|
|
1016
|
+
resources: ResourceDefinitions,
|
|
1017
|
+
children: Schema.Array(SceneNode)
|
|
1018
|
+
});
|
|
1019
|
+
var KeyDetail = Schema.Struct({ key: Schema.String });
|
|
1020
|
+
var HitDetail = Schema.Struct({
|
|
1021
|
+
key: Schema.String,
|
|
1022
|
+
instance: Schema.optionalKey(Schema.String),
|
|
1023
|
+
part: Schema.optionalKey(Schema.String),
|
|
1024
|
+
view: Schema.optionalKey(Schema.String),
|
|
1025
|
+
path: Schema.Array(Schema.String),
|
|
1026
|
+
point: Vec3,
|
|
1027
|
+
distance: Schema.Finite,
|
|
1028
|
+
normal: Vec3,
|
|
1029
|
+
uv: Schema.Tuple([Schema.Finite, Schema.Finite]),
|
|
1030
|
+
ray: Schema.Struct({ origin: Vec3, direction: Vec3 })
|
|
1031
|
+
});
|
|
1032
|
+
var ButtonDetail = Schema.Struct({ ...HitDetail.fields, button: Schema.Int });
|
|
1033
|
+
var WheelDetail = Schema.Struct({
|
|
1034
|
+
...HitDetail.fields,
|
|
1035
|
+
deltaX: Schema.Finite,
|
|
1036
|
+
deltaY: Schema.Finite
|
|
1037
|
+
});
|
|
1038
|
+
var MissDetail = Schema.Struct({ button: Schema.Int });
|
|
1039
|
+
var Ray = HitDetail.fields.ray;
|
|
1040
|
+
var DragDetail = Schema.Struct({ key: Schema.String, button: Schema.Int, ray: Ray });
|
|
1041
|
+
var PerformanceDetail = Schema.Struct({
|
|
1042
|
+
fps: Schema.Finite,
|
|
1043
|
+
factor: Schema.Finite.check(Schema.isBetween({ minimum: 0, maximum: 1 }))
|
|
1044
|
+
});
|
|
1045
|
+
var Modifiers = Schema.Struct({
|
|
1046
|
+
shift: Schema.Boolean,
|
|
1047
|
+
control: Schema.Boolean,
|
|
1048
|
+
meta: Schema.Boolean,
|
|
1049
|
+
alt: Schema.Boolean
|
|
1050
|
+
});
|
|
1051
|
+
var regionFields = {
|
|
1052
|
+
view: Schema.optionalKey(Schema.String),
|
|
1053
|
+
width: Schema.Finite,
|
|
1054
|
+
height: Schema.Finite,
|
|
1055
|
+
x: Schema.Finite,
|
|
1056
|
+
y: Schema.Finite
|
|
1057
|
+
};
|
|
1058
|
+
var Gesture = Schema.Union([
|
|
1059
|
+
Schema.TaggedStruct("Drag", {
|
|
1060
|
+
button: Schema.Int,
|
|
1061
|
+
modifiers: Modifiers,
|
|
1062
|
+
key: Schema.optionalKey(Schema.String),
|
|
1063
|
+
...regionFields,
|
|
1064
|
+
deltaX: Schema.Finite,
|
|
1065
|
+
deltaY: Schema.Finite
|
|
1066
|
+
}),
|
|
1067
|
+
Schema.TaggedStruct("Wheel", {
|
|
1068
|
+
modifiers: Modifiers,
|
|
1069
|
+
...regionFields,
|
|
1070
|
+
deltaX: Schema.Finite,
|
|
1071
|
+
deltaY: Schema.Finite
|
|
1072
|
+
}),
|
|
1073
|
+
Schema.TaggedStruct("Pinch", {
|
|
1074
|
+
...regionFields,
|
|
1075
|
+
scale: Schema.Finite,
|
|
1076
|
+
deltaX: Schema.Finite,
|
|
1077
|
+
deltaY: Schema.Finite
|
|
1078
|
+
})
|
|
1079
|
+
]);
|
|
1080
|
+
var CollisionDetail = Schema.Struct({
|
|
1081
|
+
a: Schema.String,
|
|
1082
|
+
aInstance: Schema.optionalKey(Schema.String),
|
|
1083
|
+
aPart: Schema.optionalKey(Schema.String),
|
|
1084
|
+
b: Schema.String,
|
|
1085
|
+
bInstance: Schema.optionalKey(Schema.String),
|
|
1086
|
+
bPart: Schema.optionalKey(Schema.String),
|
|
1087
|
+
started: Schema.Boolean
|
|
1088
|
+
});
|
|
1089
|
+
var XrHand = Schema.Literals(["left", "right", "none"]);
|
|
1090
|
+
var XrStickDetail = Schema.Struct({
|
|
1091
|
+
hand: XrHand,
|
|
1092
|
+
direction: Schema.Literals(["center", "left", "right", "forward", "back"])
|
|
1093
|
+
});
|
|
1094
|
+
var XrButtonDetail = Schema.Struct({
|
|
1095
|
+
hand: XrHand,
|
|
1096
|
+
button: Schema.Literals(["trigger", "squeeze", "touchpad", "thumbstick", "primary", "secondary"]),
|
|
1097
|
+
pressed: Schema.Boolean
|
|
1098
|
+
});
|
|
1099
|
+
var XrMovedDetail = Schema.Struct({ origin: Vec3, heading: Schema.Finite });
|
|
1100
|
+
var XrSurfaceDetail = Schema.Struct({ hand: XrHand, point: Vec3, normal: Vec3 });
|
|
1101
|
+
var XrPlane = Schema.Struct({
|
|
1102
|
+
id: Schema.String,
|
|
1103
|
+
orientation: Schema.Literals(["horizontal", "vertical"]),
|
|
1104
|
+
label: Schema.String,
|
|
1105
|
+
position: Vec3,
|
|
1106
|
+
rotation: Vec3,
|
|
1107
|
+
polygon: Schema.Array(Vec3)
|
|
1108
|
+
});
|
|
1109
|
+
var XrPlanesDetail = Schema.Struct({ planes: Schema.Array(XrPlane) });
|
|
1110
|
+
var XrMesh = Schema.Struct({
|
|
1111
|
+
id: Schema.String,
|
|
1112
|
+
label: Schema.String,
|
|
1113
|
+
position: Vec3,
|
|
1114
|
+
rotation: Vec3
|
|
1115
|
+
});
|
|
1116
|
+
var XrMeshesDetail = Schema.Struct({ meshes: Schema.Array(XrMesh) });
|
|
1117
|
+
var ContactForceDetail = Schema.Struct({
|
|
1118
|
+
a: Schema.String,
|
|
1119
|
+
aInstance: Schema.optionalKey(Schema.String),
|
|
1120
|
+
aPart: Schema.optionalKey(Schema.String),
|
|
1121
|
+
b: Schema.String,
|
|
1122
|
+
bInstance: Schema.optionalKey(Schema.String),
|
|
1123
|
+
bPart: Schema.optionalKey(Schema.String),
|
|
1124
|
+
totalForce: Vec3,
|
|
1125
|
+
totalForceMagnitude: Schema.Finite,
|
|
1126
|
+
maxForceDirection: Vec3,
|
|
1127
|
+
maxForceMagnitude: Schema.Finite
|
|
1128
|
+
});
|
|
1129
|
+
var Rect = Schema.Tuple([Schema.Finite, Schema.Finite, Schema.Finite, Schema.Finite]);
|
|
1130
|
+
var LabelMeasuredDetail = Schema.Struct({
|
|
1131
|
+
key: Schema.String,
|
|
1132
|
+
block: Rect,
|
|
1133
|
+
visible: Rect
|
|
1134
|
+
});
|
|
1135
|
+
var MeasuredDetail = Schema.Struct({ key: Schema.String, min: Vec3, max: Vec3 });
|
|
1136
|
+
var AutoRotatedDetail = Schema.Struct({
|
|
1137
|
+
view: Schema.optionalKey(Schema.String),
|
|
1138
|
+
position: Vec3
|
|
1139
|
+
});
|
|
1140
|
+
var GestureDetail = Schema.Struct({ gesture: Gesture });
|
|
1141
|
+
var SceneEvent = Schema.Union([
|
|
1142
|
+
Schema.TaggedStruct("PointerEnter", HitDetail.fields),
|
|
1143
|
+
Schema.TaggedStruct("PointerLeave", KeyDetail.fields),
|
|
1144
|
+
Schema.TaggedStruct("PointerMove", HitDetail.fields),
|
|
1145
|
+
Schema.TaggedStruct("PointerDown", ButtonDetail.fields),
|
|
1146
|
+
Schema.TaggedStruct("PointerUp", ButtonDetail.fields),
|
|
1147
|
+
Schema.TaggedStruct("Click", ButtonDetail.fields),
|
|
1148
|
+
Schema.TaggedStruct("DoubleClick", ButtonDetail.fields),
|
|
1149
|
+
Schema.TaggedStruct("ContextMenu", HitDetail.fields),
|
|
1150
|
+
Schema.TaggedStruct("Wheel", WheelDetail.fields),
|
|
1151
|
+
Schema.TaggedStruct("PointerMissed", MissDetail.fields),
|
|
1152
|
+
Schema.TaggedStruct("Drag", DragDetail.fields),
|
|
1153
|
+
Schema.TaggedStruct("DragEnd", DragDetail.fields),
|
|
1154
|
+
Schema.TaggedStruct("Gesture", GestureDetail.fields),
|
|
1155
|
+
Schema.TaggedStruct("AutoRotated", AutoRotatedDetail.fields),
|
|
1156
|
+
Schema.TaggedStruct("Collision", CollisionDetail.fields),
|
|
1157
|
+
Schema.TaggedStruct("Measured", MeasuredDetail.fields),
|
|
1158
|
+
Schema.TaggedStruct("LabelMeasured", LabelMeasuredDetail.fields),
|
|
1159
|
+
Schema.TaggedStruct("ContactForce", ContactForceDetail.fields),
|
|
1160
|
+
Schema.TaggedStruct("XrStick", XrStickDetail.fields),
|
|
1161
|
+
Schema.TaggedStruct("XrButton", XrButtonDetail.fields),
|
|
1162
|
+
Schema.TaggedStruct("XrSurface", XrSurfaceDetail.fields),
|
|
1163
|
+
Schema.TaggedStruct("XrMoved", XrMovedDetail.fields),
|
|
1164
|
+
Schema.TaggedStruct("XrPlanes", XrPlanesDetail.fields),
|
|
1165
|
+
Schema.TaggedStruct("XrMeshes", XrMeshesDetail.fields),
|
|
1166
|
+
Schema.TaggedStruct("PerformanceChanged", PerformanceDetail.fields)
|
|
1167
|
+
]);
|
|
1168
|
+
var DescriptionError = Schema.Union([
|
|
1169
|
+
Schema.TaggedStruct("DuplicateKey", { key: Schema.String }),
|
|
1170
|
+
Schema.TaggedStruct("DuplicateResourceId", {
|
|
1171
|
+
resource: Schema.Literals(["geometry", "material"]),
|
|
1172
|
+
id: Schema.String
|
|
1173
|
+
}),
|
|
1174
|
+
Schema.TaggedStruct("UnknownSharedGeometry", { nodeKey: Schema.String, id: Schema.String }),
|
|
1175
|
+
Schema.TaggedStruct("UnknownSharedMaterial", { nodeKey: Schema.String, id: Schema.String }),
|
|
1176
|
+
Schema.TaggedStruct("DuplicateInstanceKey", { nodeKey: Schema.String, key: Schema.String }),
|
|
1177
|
+
Schema.TaggedStruct("UnknownBehaviour", { nodeKey: Schema.String, name: Schema.String }),
|
|
1178
|
+
Schema.TaggedStruct("DuplicateViewKey", { key: Schema.String }),
|
|
1179
|
+
Schema.TaggedStruct("DuplicateOverlayKey", { key: Schema.String }),
|
|
1180
|
+
Schema.TaggedStruct("UnknownOverlayNode", { key: Schema.String, node: Schema.String }),
|
|
1181
|
+
Schema.TaggedStruct("UnknownOverlayView", { key: Schema.String, view: Schema.String }),
|
|
1182
|
+
Schema.TaggedStruct("UnknownMeasuredNode", { key: Schema.String }),
|
|
1183
|
+
Schema.TaggedStruct("DuplicateJointKey", { key: Schema.String }),
|
|
1184
|
+
Schema.TaggedStruct("UnknownJointBody", { joint: Schema.String, body: Schema.String }),
|
|
1185
|
+
Schema.TaggedStruct("DuplicateRenderTextureId", { id: Schema.String })
|
|
1186
|
+
]);
|
|
1187
|
+
export {
|
|
1188
|
+
exports_FrameSource as FrameSource,
|
|
1189
|
+
InvalidScene,
|
|
1190
|
+
RendererUnavailable,
|
|
1191
|
+
exports_ResourceRegistry as ResourceRegistry,
|
|
1192
|
+
exports_SceneRuntime as SceneRuntime,
|
|
1193
|
+
exports_SceneSchema as SceneSchema,
|
|
1194
|
+
ambientLight2 as ambientLight,
|
|
1195
|
+
anchorSpace2 as anchorSpace,
|
|
1196
|
+
animationEquals2 as animationEquals,
|
|
1197
|
+
applyTween2 as applyTween,
|
|
1198
|
+
autoRotated2 as autoRotated,
|
|
1199
|
+
ballCollider2 as ballCollider,
|
|
1200
|
+
basic2 as basic,
|
|
1201
|
+
behave2 as behave,
|
|
1202
|
+
behaviourEquals2 as behaviourEquals,
|
|
1203
|
+
bloom2 as bloom,
|
|
1204
|
+
body2 as body,
|
|
1205
|
+
bodyEquals2 as bodyEquals,
|
|
1206
|
+
bodyRef2 as bodyRef,
|
|
1207
|
+
borrowed2 as borrowed,
|
|
1208
|
+
box2 as box,
|
|
1209
|
+
buildMaterial2 as buildMaterial,
|
|
1210
|
+
builtinBehaviours2 as builtinBehaviours,
|
|
1211
|
+
cameraEquals2 as cameraEquals,
|
|
1212
|
+
capacityFor2 as capacityFor,
|
|
1213
|
+
capsule2 as capsule,
|
|
1214
|
+
capsuleCollider2 as capsuleCollider,
|
|
1215
|
+
centerOffset2 as centerOffset,
|
|
1216
|
+
changedFields2 as changedFields,
|
|
1217
|
+
circle2 as circle,
|
|
1218
|
+
clipCamera2 as clipCamera,
|
|
1219
|
+
clipRunning2 as clipRunning,
|
|
1220
|
+
clipTime2 as clipTime,
|
|
1221
|
+
colliderFor2 as colliderFor,
|
|
1222
|
+
colliderSignature2 as colliderSignature,
|
|
1223
|
+
collidersFor2 as collidersFor,
|
|
1224
|
+
colorRange2 as colorRange,
|
|
1225
|
+
cone2 as cone,
|
|
1226
|
+
coneCollider2 as coneCollider,
|
|
1227
|
+
contactShadows2 as contactShadows,
|
|
1228
|
+
contactShadowsEquals2 as contactShadowsEquals,
|
|
1229
|
+
controllerSpace2 as controllerSpace,
|
|
1230
|
+
createFramePacer2 as createFramePacer,
|
|
1231
|
+
createGatedFrames2 as createGatedFrames,
|
|
1232
|
+
createManualFrames2 as createManualFrames,
|
|
1233
|
+
createPerformanceMonitor2 as createPerformanceMonitor,
|
|
1234
|
+
createPicker2 as createPicker,
|
|
1235
|
+
createPointerTracker2 as createPointerTracker,
|
|
1236
|
+
createPose2 as createPose,
|
|
1237
|
+
createResourceStore2 as createResourceStore,
|
|
1238
|
+
createSceneClock2 as createSceneClock,
|
|
1239
|
+
createSceneGraph2 as createSceneGraph,
|
|
1240
|
+
createSceneLoop2 as createSceneLoop,
|
|
1241
|
+
createXrTracker2 as createXrTracker,
|
|
1242
|
+
cuboidCollider2 as cuboidCollider,
|
|
1243
|
+
cylinder2 as cylinder,
|
|
1244
|
+
cylinderCollider2 as cylinderCollider,
|
|
1245
|
+
defaultOrbit2 as defaultOrbit,
|
|
1246
|
+
describedColliders2 as describedColliders,
|
|
1247
|
+
diff2 as diff,
|
|
1248
|
+
directionalLight2 as directionalLight,
|
|
1249
|
+
dollyCamera2 as dollyCamera,
|
|
1250
|
+
dollyCameraToward2 as dollyCameraToward,
|
|
1251
|
+
ease2 as ease,
|
|
1252
|
+
easeProgress2 as easeProgress,
|
|
1253
|
+
effectsEqual2 as effectsEqual,
|
|
1254
|
+
emptyIndex2 as emptyIndex,
|
|
1255
|
+
environment2 as environment,
|
|
1256
|
+
environmentEquals2 as environmentEquals,
|
|
1257
|
+
environmentPresetUrl2 as environmentPresetUrl,
|
|
1258
|
+
environmentPresets2 as environmentPresets,
|
|
1259
|
+
film2 as film,
|
|
1260
|
+
fitCamera2 as fitCamera,
|
|
1261
|
+
fixed2 as fixed,
|
|
1262
|
+
fixedJoint2 as fixedJoint,
|
|
1263
|
+
float2 as float,
|
|
1264
|
+
geometryRefEquals2 as geometryRefEquals,
|
|
1265
|
+
glide2 as glide,
|
|
1266
|
+
glided2 as glided,
|
|
1267
|
+
grid2 as grid,
|
|
1268
|
+
group2 as group,
|
|
1269
|
+
handJoints2 as handJoints,
|
|
1270
|
+
headSpace2 as headSpace,
|
|
1271
|
+
hemisphereLight2 as hemisphereLight,
|
|
1272
|
+
indexScene2 as indexScene,
|
|
1273
|
+
instance2 as instance,
|
|
1274
|
+
instanceEquals2 as instanceEquals,
|
|
1275
|
+
instances2 as instances,
|
|
1276
|
+
instancesEqual2 as instancesEqual,
|
|
1277
|
+
instant2 as instant,
|
|
1278
|
+
interactionBits2 as interactionBits,
|
|
1279
|
+
interactionGroups2 as interactionGroups,
|
|
1280
|
+
joint2 as joint,
|
|
1281
|
+
jointSpace2 as jointSpace,
|
|
1282
|
+
label2 as label,
|
|
1283
|
+
lambert2 as lambert,
|
|
1284
|
+
lentGeometry2 as lentGeometry,
|
|
1285
|
+
locomote2 as locomote,
|
|
1286
|
+
materialRefEquals2 as materialRefEquals,
|
|
1287
|
+
mesh2 as mesh,
|
|
1288
|
+
meshSpace2 as meshSpace,
|
|
1289
|
+
noModifiers2 as noModifiers,
|
|
1290
|
+
normalMaterial2 as normalMaterial,
|
|
1291
|
+
orbit2 as orbit,
|
|
1292
|
+
orbitKey2 as orbitKey,
|
|
1293
|
+
orbitOptions2 as orbitOptions,
|
|
1294
|
+
orthographicCamera2 as orthographicCamera,
|
|
1295
|
+
overlay2 as overlay,
|
|
1296
|
+
overlaysEqual2 as overlaysEqual,
|
|
1297
|
+
panCamera2 as panCamera,
|
|
1298
|
+
perspectiveCamera2 as perspectiveCamera,
|
|
1299
|
+
phong2 as phong,
|
|
1300
|
+
physical2 as physical,
|
|
1301
|
+
physics2 as physics,
|
|
1302
|
+
physicsEquals2 as physicsEquals,
|
|
1303
|
+
placeOverlays2 as placeOverlays,
|
|
1304
|
+
plane2 as plane,
|
|
1305
|
+
planeSpace2 as planeSpace,
|
|
1306
|
+
play2 as play,
|
|
1307
|
+
pointLight2 as pointLight,
|
|
1308
|
+
pointOnPlane2 as pointOnPlane,
|
|
1309
|
+
positionMotor2 as positionMotor,
|
|
1310
|
+
prismaticJoint2 as prismaticJoint,
|
|
1311
|
+
recordingRendererFactory2 as recordingRendererFactory,
|
|
1312
|
+
renderSettings2 as renderSettings,
|
|
1313
|
+
renderSettingsEquals2 as renderSettingsEquals,
|
|
1314
|
+
renderTexture2 as renderTexture,
|
|
1315
|
+
resetPose2 as resetPose,
|
|
1316
|
+
resourcesEqual2 as resourcesEqual,
|
|
1317
|
+
revoluteJoint2 as revoluteJoint,
|
|
1318
|
+
ring2 as ring,
|
|
1319
|
+
ropeJoint2 as ropeJoint,
|
|
1320
|
+
rotateCamera2 as rotateCamera,
|
|
1321
|
+
rotationEquals2 as rotationEquals,
|
|
1322
|
+
scene2 as scene,
|
|
1323
|
+
shaderGrid2 as shaderGrid,
|
|
1324
|
+
shadowMaterial2 as shadowMaterial,
|
|
1325
|
+
shapeEquals2 as shapeEquals,
|
|
1326
|
+
sharedGeometry2 as sharedGeometry,
|
|
1327
|
+
sharedMaterial2 as sharedMaterial,
|
|
1328
|
+
sky2 as sky,
|
|
1329
|
+
skyEquals2 as skyEquals,
|
|
1330
|
+
sphere2 as sphere,
|
|
1331
|
+
sphericalJoint2 as sphericalJoint,
|
|
1332
|
+
spin2 as spin,
|
|
1333
|
+
spinAngle2 as spinAngle,
|
|
1334
|
+
spotLight2 as spotLight,
|
|
1335
|
+
springJoint2 as springJoint,
|
|
1336
|
+
stage2 as stage,
|
|
1337
|
+
stageBounds2 as stageBounds,
|
|
1338
|
+
stagePresets2 as stagePresets,
|
|
1339
|
+
standard2 as standard,
|
|
1340
|
+
startTween2 as startTween,
|
|
1341
|
+
sunPositionFromAngles2 as sunPositionFromAngles,
|
|
1342
|
+
teleport2 as teleport,
|
|
1343
|
+
text2 as text,
|
|
1344
|
+
torus2 as torus,
|
|
1345
|
+
transitionEquals2 as transitionEquals,
|
|
1346
|
+
updateMaterial2 as updateMaterial,
|
|
1347
|
+
vec3Equals2 as vec3Equals,
|
|
1348
|
+
velocityMotor2 as velocityMotor,
|
|
1349
|
+
view2 as view,
|
|
1350
|
+
viewsEqual2 as viewsEqual,
|
|
1351
|
+
vignette2 as vignette,
|
|
1352
|
+
writeRotation2 as writeRotation,
|
|
1353
|
+
xr2 as xr,
|
|
1354
|
+
xrAnchor2 as xrAnchor,
|
|
1355
|
+
xrEquals2 as xrEquals,
|
|
1356
|
+
xrMesh2 as xrMesh,
|
|
1357
|
+
xrMeshGeometryId2 as xrMeshGeometryId
|
|
1358
|
+
};
|
|
1359
|
+
|
|
1360
|
+
//# debugId=4A51874F0CADE91E64756E2164756E21
|
|
1361
|
+
//# sourceMappingURL=index.js.map
|