@vyr/three 0.0.1 → 0.0.2
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/package.json +1 -26
- package/src/actor/ComposerServiceActor.ts +7 -6
- package/src/actor/HTMLConvertActor.ts +4 -4
- package/src/actor/OrbitControllerActor.ts +19 -19
- package/src/actor/SceneServiceActor.ts +9 -9
- package/src/actor/TransformControllerActor.ts +3 -3
- package/src/controls/TransformControls.ts +12 -16
- package/src/descriptor/OrbitControllerDescriptor.ts +2 -2
- package/src/descriptor/TransformControllerDescriptor.ts +2 -2
- package/src/interpreter/ComposerServiceInterpreter.ts +1 -1
- package/src/interpreter/GeoMapInterpreter.ts +32 -32
- package/src/interpreter/HTMLConvertInterpreter.ts +9 -9
- package/src/interpreter/InstancedMeshInterpreter.ts +13 -13
- package/src/interpreter/MeshInterpreter.ts +6 -7
- package/src/interpreter/ModelInterpreter.ts +10 -10
- package/src/interpreter/NodeInterpreter.ts +19 -19
- package/src/interpreter/OrbitControllerInterpreter.ts +20 -20
- package/src/interpreter/OrthographicCameraInterpreter.ts +2 -2
- package/src/interpreter/ParticleInterpreter.ts +13 -13
- package/src/interpreter/PassInterpreter.ts +16 -16
- package/src/interpreter/PerspectiveCameraInterpreter.ts +8 -8
- package/src/interpreter/PointsInterpreter.ts +13 -13
- package/src/interpreter/SceneServiceInterpreter.ts +28 -28
- package/src/interpreter/ServiceSchedulerInterpreter.ts +6 -6
- package/src/interpreter/SpriteInterpreter.ts +10 -10
- package/src/interpreter/TextInterpreter.ts +10 -10
- package/src/interpreter/TransformControllerInterpreter.ts +17 -17
- package/src/interpreter/animation/AnimationActionInterpreter.ts +10 -10
- package/src/interpreter/geometry/BoxGeometryInterpreter.ts +8 -8
- package/src/interpreter/geometry/BufferGeometryInterpreter.ts +8 -8
- package/src/interpreter/geometry/CircleGeometryInterpreter.ts +8 -8
- package/src/interpreter/geometry/CylinderGeometryInterpreter.ts +8 -8
- package/src/interpreter/geometry/ExtrudeGeometryInterpreter.ts +10 -10
- package/src/interpreter/geometry/PlaneGeometryInterpreter.ts +8 -8
- package/src/interpreter/geometry/RingGeometryInterpreter.ts +8 -8
- package/src/interpreter/geometry/SphereGeometryInterpreter.ts +8 -8
- package/src/interpreter/geometry/SurfaceGeometryInterpreter.ts +2 -3
- package/src/interpreter/geometry/TubeGeometryInterpreter.ts +10 -10
- package/src/interpreter/helper/AxesHelperInterpreter.ts +7 -8
- package/src/interpreter/light/AmbientLightInterpreter.ts +8 -8
- package/src/interpreter/light/DirectionalLightInterpreter.ts +14 -14
- package/src/interpreter/light/HemisphereLightInterpreter.ts +8 -8
- package/src/interpreter/light/PointLightInterpreter.ts +11 -11
- package/src/interpreter/light/RectAreaLightInterpreter.ts +8 -8
- package/src/interpreter/light/SpotLightInterpreter.ts +14 -14
- package/src/interpreter/material/MaterialInterpreter.ts +4 -4
- package/src/interpreter/material/MeshBasicMaterialInterpreter.ts +9 -10
- package/src/interpreter/material/MeshPhongMaterialInterpreter.ts +13 -14
- package/src/interpreter/material/MeshStandardMaterialInterpreter.ts +14 -15
- package/src/interpreter/material/PointsMaterialInterpreter.ts +6 -7
- package/src/interpreter/material/ShaderMaterialInterpreter.ts +9 -9
- package/src/interpreter/material/ShadowMaterialInterpreter.ts +4 -5
- package/src/interpreter/material/SpriteMaterialInterpreter.ts +6 -7
- package/src/interpreter/texture/TextureInterpreter.ts +8 -8
- package/src/preset/execute/GeoMap/drilldown.ts +6 -7
- package/src/preset/index.ts +2 -2
- package/src/preset/interaction/GeoMap/drilldown.ts +26 -0
- package/src/utils/geometry/index.ts +3 -3
- package/src/utils/material/index.ts +6 -6
- package/src/utils/texture/index.ts +3 -3
- package/src/preset/routine/GeoMap/drilldown.ts +0 -26
- /package/src/preset/{routine → interaction}/GeoMap/index.ts +0 -0
- /package/src/preset/{routine → interaction}/index.ts +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Object3D } from 'three'
|
|
2
|
-
import { Asset, Descriptor
|
|
2
|
+
import { Asset, Descriptor } from "@vyr/engine";
|
|
3
3
|
import { ModelDescriptor } from "../descriptor";
|
|
4
4
|
import { NodeInterpreter, PickupNode } from "./NodeInterpreter";
|
|
5
5
|
import { NodeActor } from '../actor';
|
|
@@ -11,15 +11,15 @@ class ModelInterpreter extends NodeInterpreter {
|
|
|
11
11
|
readonly wrapper!: Object3D
|
|
12
12
|
url = ''
|
|
13
13
|
|
|
14
|
-
protected createActor(descriptor: Descriptor
|
|
15
|
-
const actor = super.createActor(descriptor
|
|
14
|
+
protected createActor(descriptor: Descriptor) {
|
|
15
|
+
const actor = super.createActor(descriptor)
|
|
16
16
|
//@ts-ignore
|
|
17
17
|
this.wrapper = new Object3D()
|
|
18
18
|
actor.object.add(this.wrapper)
|
|
19
19
|
return actor
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
setModel(descriptor: ModelDescriptor
|
|
22
|
+
setModel(descriptor: ModelDescriptor) {
|
|
23
23
|
|
|
24
24
|
if (this.url !== descriptor.url) {
|
|
25
25
|
diaposeObject3D(this.wrapper)
|
|
@@ -41,17 +41,17 @@ class ModelInterpreter extends NodeInterpreter {
|
|
|
41
41
|
})
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
update(descriptor: ModelDescriptor
|
|
45
|
-
super.update(descriptor
|
|
46
|
-
this.setModel(descriptor
|
|
44
|
+
update(descriptor: ModelDescriptor) {
|
|
45
|
+
super.update(descriptor)
|
|
46
|
+
this.setModel(descriptor)
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
free(descriptor: ModelDescriptor
|
|
49
|
+
free(descriptor: ModelDescriptor) {
|
|
50
50
|
diaposeObject3D(this.wrapper)
|
|
51
|
-
super.free(descriptor
|
|
51
|
+
super.free(descriptor)
|
|
52
52
|
}
|
|
53
53
|
|
|
54
|
-
pickup(descriptor: ModelDescriptor,
|
|
54
|
+
pickup(descriptor: ModelDescriptor, result: PickupNode[]) {
|
|
55
55
|
if (descriptor.visible === false) return
|
|
56
56
|
collectionPickupResult(this.wrapper, true, descriptor, result)
|
|
57
57
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Object3D, Intersection } from "three";
|
|
2
|
-
import { Descriptor, Interpreter, NodeDescriptor, PickupObject
|
|
2
|
+
import { Descriptor, Interpreter, NodeDescriptor, PickupObject } from "@vyr/engine";
|
|
3
3
|
import { NodeActor } from "../actor";
|
|
4
4
|
import { collectionPickupResult } from "../utils";
|
|
5
5
|
|
|
@@ -11,12 +11,12 @@ interface PickupNode extends PickupObject {
|
|
|
11
11
|
class NodeInterpreter extends Interpreter {
|
|
12
12
|
static type = NodeDescriptor.type
|
|
13
13
|
|
|
14
|
-
protected createActor(descriptor: Descriptor
|
|
14
|
+
protected createActor(descriptor: Descriptor) {
|
|
15
15
|
const actor = new NodeActor(new Object3D())
|
|
16
16
|
return actor
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
setProperty(actor: NodeActor, descriptor: NodeDescriptor
|
|
19
|
+
setProperty(actor: NodeActor, descriptor: NodeDescriptor) {
|
|
20
20
|
actor.object.layers.set(descriptor.layer)
|
|
21
21
|
actor.object.visible = descriptor.visible
|
|
22
22
|
actor.object.renderOrder = descriptor.renderOrder
|
|
@@ -24,7 +24,7 @@ class NodeInterpreter extends Interpreter {
|
|
|
24
24
|
actor.object.receiveShadow = descriptor.receiveShadow
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
setTransform(actor: NodeActor, descriptor: NodeDescriptor
|
|
27
|
+
setTransform(actor: NodeActor, descriptor: NodeDescriptor) {
|
|
28
28
|
const scale = descriptor.scale
|
|
29
29
|
const position = descriptor.position
|
|
30
30
|
const rotation = descriptor.rotation
|
|
@@ -33,30 +33,30 @@ class NodeInterpreter extends Interpreter {
|
|
|
33
33
|
actor.object.rotation.set(rotation.x, rotation.y, rotation.z)
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
update(descriptor: NodeDescriptor
|
|
37
|
-
super.update(descriptor
|
|
38
|
-
const actor = this.getActor<NodeActor>(descriptor
|
|
39
|
-
this.setProperty(actor, descriptor
|
|
40
|
-
this.setTransform(actor, descriptor
|
|
36
|
+
update(descriptor: NodeDescriptor) {
|
|
37
|
+
super.update(descriptor)
|
|
38
|
+
const actor = this.getActor<NodeActor>(descriptor)
|
|
39
|
+
this.setProperty(actor, descriptor)
|
|
40
|
+
this.setTransform(actor, descriptor)
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
mount(descriptor: NodeDescriptor,
|
|
44
|
-
super.mount(descriptor,
|
|
45
|
-
const parenActor = parentInterpreter.getActor<NodeActor>(parentDescriptor
|
|
46
|
-
const actor = this.getActor<NodeActor>(descriptor
|
|
43
|
+
mount(descriptor: NodeDescriptor, parentInterpreter: Interpreter, parentDescriptor: Descriptor) {
|
|
44
|
+
super.mount(descriptor, parentInterpreter, parentDescriptor)
|
|
45
|
+
const parenActor = parentInterpreter.getActor<NodeActor>(parentDescriptor)
|
|
46
|
+
const actor = this.getActor<NodeActor>(descriptor)
|
|
47
47
|
parenActor.add(actor)
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
unmount(descriptor: NodeDescriptor,
|
|
51
|
-
const parenActor = parentInterpreter.getActor<NodeActor>(parentDescriptor
|
|
52
|
-
const actor = this.getActor<NodeActor>(descriptor
|
|
50
|
+
unmount(descriptor: NodeDescriptor, parentInterpreter: Interpreter, parentDescriptor: Descriptor) {
|
|
51
|
+
const parenActor = parentInterpreter.getActor<NodeActor>(parentDescriptor)
|
|
52
|
+
const actor = this.getActor<NodeActor>(descriptor)
|
|
53
53
|
parenActor.remove(actor)
|
|
54
|
-
super.unmount(descriptor,
|
|
54
|
+
super.unmount(descriptor, parentInterpreter, parentDescriptor)
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
-
pickup(descriptor: NodeDescriptor,
|
|
57
|
+
pickup(descriptor: NodeDescriptor, result: PickupNode[]) {
|
|
58
58
|
if (descriptor.visible === false) return
|
|
59
|
-
const actor = this.getActor<NodeActor>(descriptor
|
|
59
|
+
const actor = this.getActor<NodeActor>(descriptor)
|
|
60
60
|
collectionPickupResult(actor.object, false, descriptor, result)
|
|
61
61
|
}
|
|
62
62
|
}
|
|
@@ -1,45 +1,45 @@
|
|
|
1
|
-
import { Descriptor, Interpreter, PickupObject
|
|
1
|
+
import { Descriptor, Interpreter, PickupObject } from "@vyr/engine";
|
|
2
2
|
import { OrbitControllerDescriptor } from "../descriptor";
|
|
3
3
|
import { NodeActor, OrbitControllerActor } from "../actor";
|
|
4
4
|
|
|
5
5
|
class OrbitControllerInterpreter extends Interpreter {
|
|
6
6
|
static type = OrbitControllerDescriptor.type
|
|
7
7
|
|
|
8
|
-
protected createActor(descriptor: OrbitControllerDescriptor
|
|
8
|
+
protected createActor(descriptor: OrbitControllerDescriptor) {
|
|
9
9
|
const actor = new OrbitControllerActor(descriptor.uuid, this.graphics)
|
|
10
10
|
return actor
|
|
11
11
|
}
|
|
12
12
|
|
|
13
|
-
update(descriptor: OrbitControllerDescriptor
|
|
14
|
-
const actor = this.getActor<OrbitControllerActor>(descriptor
|
|
15
|
-
actor.update(descriptor, this.graphics
|
|
16
|
-
super.update(descriptor
|
|
13
|
+
update(descriptor: OrbitControllerDescriptor) {
|
|
14
|
+
const actor = this.getActor<OrbitControllerActor>(descriptor)
|
|
15
|
+
actor.update(descriptor, this.graphics)
|
|
16
|
+
super.update(descriptor)
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
mount(descriptor: OrbitControllerDescriptor,
|
|
20
|
-
super.mount(descriptor,
|
|
21
|
-
const parenActor = parentInterpreter.getActor<NodeActor>(parentDescriptor
|
|
22
|
-
const actor = this.getActor<OrbitControllerActor>(descriptor
|
|
19
|
+
mount(descriptor: OrbitControllerDescriptor, parentInterpreter: Interpreter, parentDescriptor: Descriptor) {
|
|
20
|
+
super.mount(descriptor, parentInterpreter, parentDescriptor)
|
|
21
|
+
const parenActor = parentInterpreter.getActor<NodeActor>(parentDescriptor)
|
|
22
|
+
const actor = this.getActor<OrbitControllerActor>(descriptor)
|
|
23
23
|
parenActor.add(actor)
|
|
24
|
-
actor.listen(descriptor, this.graphics
|
|
24
|
+
actor.listen(descriptor, this.graphics)
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
unmount(descriptor: OrbitControllerDescriptor,
|
|
28
|
-
const parenActor = parentInterpreter.getActor<NodeActor>(parentDescriptor
|
|
29
|
-
const actor = this.getActor<OrbitControllerActor>(descriptor
|
|
27
|
+
unmount(descriptor: OrbitControllerDescriptor, parentInterpreter: Interpreter, parentDescriptor: Descriptor) {
|
|
28
|
+
const parenActor = parentInterpreter.getActor<NodeActor>(parentDescriptor)
|
|
29
|
+
const actor = this.getActor<OrbitControllerActor>(descriptor)
|
|
30
30
|
parenActor.remove(actor)
|
|
31
|
-
actor.unlisten(descriptor, this.graphics
|
|
31
|
+
actor.unlisten(descriptor, this.graphics)
|
|
32
32
|
|
|
33
|
-
super.unmount(descriptor,
|
|
33
|
+
super.unmount(descriptor, parentInterpreter, parentDescriptor)
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
free(descriptor: OrbitControllerDescriptor
|
|
37
|
-
const actor = this.getActor<OrbitControllerActor>(descriptor
|
|
36
|
+
free(descriptor: OrbitControllerDescriptor) {
|
|
37
|
+
const actor = this.getActor<OrbitControllerActor>(descriptor)
|
|
38
38
|
actor.dispose()
|
|
39
|
-
super.free(descriptor
|
|
39
|
+
super.free(descriptor)
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
pickup(descriptor: OrbitControllerDescriptor,
|
|
42
|
+
pickup(descriptor: OrbitControllerDescriptor, result: PickupObject[]) { }
|
|
43
43
|
}
|
|
44
44
|
Interpreter.register(OrbitControllerInterpreter)
|
|
45
45
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { PickupObject
|
|
1
|
+
import { PickupObject } from "@vyr/engine";
|
|
2
2
|
import { OrthographicCameraDescriptor } from "../descriptor";
|
|
3
3
|
import { NodeInterpreter } from "./NodeInterpreter";
|
|
4
4
|
|
|
5
5
|
class OrthographicCameraInterpreter extends NodeInterpreter {
|
|
6
6
|
static type = OrthographicCameraDescriptor.type
|
|
7
7
|
|
|
8
|
-
pickup(descriptor: OrthographicCameraDescriptor,
|
|
8
|
+
pickup(descriptor: OrthographicCameraDescriptor, result: PickupObject[]) { }
|
|
9
9
|
}
|
|
10
10
|
NodeInterpreter.register(OrthographicCameraInterpreter)
|
|
11
11
|
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
CatmullRomCurve3,
|
|
14
14
|
Vector3,
|
|
15
15
|
} from "three";
|
|
16
|
-
import { DatasetDescriptor,
|
|
16
|
+
import { DatasetDescriptor, TickArgs } from "@vyr/engine";
|
|
17
17
|
import { ParticleDescriptor } from "../descriptor";
|
|
18
18
|
import { NodeInterpreter } from "./NodeInterpreter";
|
|
19
19
|
import { NodeActor } from "../actor";
|
|
@@ -29,7 +29,7 @@ class ParticleInterpreter extends NodeInterpreter {
|
|
|
29
29
|
private _trackTexture = { value: new DataTexture() };
|
|
30
30
|
uptime = 0;
|
|
31
31
|
|
|
32
|
-
protected createActor(descriptor: ParticleDescriptor
|
|
32
|
+
protected createActor(descriptor: ParticleDescriptor) {
|
|
33
33
|
const actor = new NodeActor(new Points(this._geometry, this._material));
|
|
34
34
|
return actor;
|
|
35
35
|
}
|
|
@@ -112,7 +112,7 @@ class ParticleInterpreter extends NodeInterpreter {
|
|
|
112
112
|
'gl_PointSize = vSize * size;'
|
|
113
113
|
);
|
|
114
114
|
}
|
|
115
|
-
private _setTrackMap(descriptor: ParticleDescriptor
|
|
115
|
+
private _setTrackMap(descriptor: ParticleDescriptor) {
|
|
116
116
|
this.clear();
|
|
117
117
|
|
|
118
118
|
const trackData = DatasetDescriptor.getCollection<number[]>(descriptor.track);
|
|
@@ -133,10 +133,10 @@ class ParticleInterpreter extends NodeInterpreter {
|
|
|
133
133
|
};
|
|
134
134
|
this.graphics.engine.listen("beforeRender", this._updateRadio);
|
|
135
135
|
}
|
|
136
|
-
private _updateMaterial(descriptor: ParticleDescriptor
|
|
137
|
-
this._setTrackMap(descriptor
|
|
138
|
-
texture.setMap(this._material, "map", descriptor, this.graphics
|
|
139
|
-
texture.setMap(this._material, "alphaMap", descriptor, this.graphics
|
|
136
|
+
private _updateMaterial(descriptor: ParticleDescriptor) {
|
|
137
|
+
this._setTrackMap(descriptor);
|
|
138
|
+
texture.setMap(this._material, "map", descriptor, this.graphics);
|
|
139
|
+
texture.setMap(this._material, "alphaMap", descriptor, this.graphics);
|
|
140
140
|
this._material.alphaTest = descriptor.alphaTest;
|
|
141
141
|
this._material.transparent = descriptor.transparent;
|
|
142
142
|
this._material.colorWrite = descriptor.colorWrite;
|
|
@@ -193,17 +193,17 @@ class ParticleInterpreter extends NodeInterpreter {
|
|
|
193
193
|
|
|
194
194
|
this._geometry.copy(geometry)
|
|
195
195
|
}
|
|
196
|
-
private _updateRadio = (args:
|
|
196
|
+
private _updateRadio = (args: TickArgs) => {
|
|
197
197
|
this.uptime += args.delta;
|
|
198
198
|
const currentTime = this.uptime % this._duration;
|
|
199
199
|
this._tracRadio.value = currentTime / this._duration;
|
|
200
200
|
};
|
|
201
201
|
|
|
202
|
-
update(descriptor: ParticleDescriptor
|
|
203
|
-
super.update(descriptor
|
|
202
|
+
update(descriptor: ParticleDescriptor) {
|
|
203
|
+
super.update(descriptor);
|
|
204
204
|
this._duration = descriptor.duration;
|
|
205
205
|
this._updateGeometry(descriptor);
|
|
206
|
-
this._updateMaterial(descriptor
|
|
206
|
+
this._updateMaterial(descriptor);
|
|
207
207
|
}
|
|
208
208
|
|
|
209
209
|
clear() {
|
|
@@ -211,9 +211,9 @@ class ParticleInterpreter extends NodeInterpreter {
|
|
|
211
211
|
this._trackTexture.value.dispose();
|
|
212
212
|
}
|
|
213
213
|
|
|
214
|
-
free(descriptor: ParticleDescriptor
|
|
214
|
+
free(descriptor: ParticleDescriptor) {
|
|
215
215
|
this.clear();
|
|
216
|
-
super.free(descriptor
|
|
216
|
+
super.free(descriptor);
|
|
217
217
|
}
|
|
218
218
|
}
|
|
219
219
|
NodeInterpreter.register(ParticleInterpreter);
|
|
@@ -1,40 +1,40 @@
|
|
|
1
|
-
// import { Descriptor, Interpreter
|
|
1
|
+
// import { Descriptor, Interpreter } from "@vyr/engine";
|
|
2
2
|
// import { PassDescriptor } from '../descriptor/PassDescriptor'
|
|
3
3
|
// import { ComposerServiceActor, PassActor } from "../actor"
|
|
4
4
|
|
|
5
5
|
// class PassInterpreter extends Interpreter {
|
|
6
6
|
// static type = PassDescriptor.type
|
|
7
7
|
|
|
8
|
-
// protected createActor(descriptor: PassDescriptor
|
|
8
|
+
// protected createActor(descriptor: PassDescriptor) {
|
|
9
9
|
// const actor = new PassActor(descriptor)
|
|
10
10
|
// return actor
|
|
11
11
|
// }
|
|
12
12
|
|
|
13
|
-
// update(descriptor: PassDescriptor
|
|
14
|
-
// super.update(descriptor
|
|
15
|
-
// const actor = this.getActor<PassActor>(descriptor
|
|
13
|
+
// update(descriptor: PassDescriptor) {
|
|
14
|
+
// super.update(descriptor)
|
|
15
|
+
// const actor = this.getActor<PassActor>(descriptor)
|
|
16
16
|
// actor.update(descriptor)
|
|
17
17
|
// }
|
|
18
18
|
|
|
19
|
-
// mount(descriptor: PassDescriptor,
|
|
20
|
-
// super.mount(descriptor,
|
|
21
|
-
// const parenActor = parentInterpreter.getActor<ComposerServiceActor>(parentDescriptor
|
|
22
|
-
// const actor = this.getActor<PassActor>(descriptor
|
|
19
|
+
// mount(descriptor: PassDescriptor, parentInterpreter: Interpreter, parentDescriptor: Descriptor) {
|
|
20
|
+
// super.mount(descriptor, parentInterpreter, parentDescriptor)
|
|
21
|
+
// const parenActor = parentInterpreter.getActor<ComposerServiceActor>(parentDescriptor)
|
|
22
|
+
// const actor = this.getActor<PassActor>(descriptor)
|
|
23
23
|
// parenActor.add(actor)
|
|
24
24
|
// }
|
|
25
25
|
|
|
26
|
-
// unmount(descriptor: PassDescriptor,
|
|
27
|
-
// const parenActor = parentInterpreter.getActor<ComposerServiceActor>(parentDescriptor
|
|
28
|
-
// const actor = this.getActor<PassActor>(descriptor
|
|
26
|
+
// unmount(descriptor: PassDescriptor, parentInterpreter: Interpreter, parentDescriptor: Descriptor) {
|
|
27
|
+
// const parenActor = parentInterpreter.getActor<ComposerServiceActor>(parentDescriptor)
|
|
28
|
+
// const actor = this.getActor<PassActor>(descriptor)
|
|
29
29
|
// parenActor.remove(actor)
|
|
30
30
|
|
|
31
|
-
// super.unmount(descriptor,
|
|
31
|
+
// super.unmount(descriptor, parentInterpreter, parentDescriptor)
|
|
32
32
|
// }
|
|
33
33
|
|
|
34
|
-
// free(descriptor: PassDescriptor
|
|
35
|
-
// const actor = this.getActor<PassActor>(descriptor
|
|
34
|
+
// free(descriptor: PassDescriptor) {
|
|
35
|
+
// const actor = this.getActor<PassActor>(descriptor)
|
|
36
36
|
// actor.dispose()
|
|
37
|
-
// super.free(descriptor
|
|
37
|
+
// super.free(descriptor)
|
|
38
38
|
// }
|
|
39
39
|
// }
|
|
40
40
|
// Interpreter.register(PassInterpreter)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PerspectiveCamera } from "three";
|
|
2
|
-
import { PickupObject
|
|
2
|
+
import { PickupObject } from "@vyr/engine";
|
|
3
3
|
import { PerspectiveCameraDescriptor } from "../descriptor";
|
|
4
4
|
import { NodeInterpreter } from "./NodeInterpreter";
|
|
5
5
|
import { NodeActor } from "../actor";
|
|
@@ -7,25 +7,25 @@ import { NodeActor } from "../actor";
|
|
|
7
7
|
class PerspectiveCameraInterpreter extends NodeInterpreter {
|
|
8
8
|
static type = PerspectiveCameraDescriptor.type
|
|
9
9
|
|
|
10
|
-
protected createActor(descriptor: PerspectiveCameraDescriptor
|
|
10
|
+
protected createActor(descriptor: PerspectiveCameraDescriptor) {
|
|
11
11
|
const actor = new NodeActor(new PerspectiveCamera())
|
|
12
12
|
return actor
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
setCamera(actor: NodeActor<PerspectiveCamera>, descriptor: PerspectiveCameraDescriptor
|
|
15
|
+
setCamera(actor: NodeActor<PerspectiveCamera>, descriptor: PerspectiveCameraDescriptor) {
|
|
16
16
|
actor.object.fov = descriptor.fov
|
|
17
17
|
actor.object.updateMatrix()
|
|
18
18
|
actor.object.updateMatrixWorld()
|
|
19
19
|
actor.object.updateProjectionMatrix()
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
update(descriptor: PerspectiveCameraDescriptor
|
|
23
|
-
super.update(descriptor
|
|
24
|
-
const actor = this.getActor<NodeActor<PerspectiveCamera>>(descriptor
|
|
25
|
-
this.setCamera(actor, descriptor
|
|
22
|
+
update(descriptor: PerspectiveCameraDescriptor) {
|
|
23
|
+
super.update(descriptor)
|
|
24
|
+
const actor = this.getActor<NodeActor<PerspectiveCamera>>(descriptor)
|
|
25
|
+
this.setCamera(actor, descriptor)
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
pickup(descriptor: PerspectiveCameraDescriptor,
|
|
28
|
+
pickup(descriptor: PerspectiveCameraDescriptor, result: PickupObject[]) { }
|
|
29
29
|
}
|
|
30
30
|
NodeInterpreter.register(PerspectiveCameraInterpreter)
|
|
31
31
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BufferGeometry, Points, Material, PointsMaterial } from "three";
|
|
2
|
-
import { Asset
|
|
2
|
+
import { Asset } from "@vyr/engine";
|
|
3
3
|
import { PointsDescriptor } from "../descriptor";
|
|
4
4
|
import { NodeInterpreter } from "./NodeInterpreter";
|
|
5
5
|
import { GeometryActor, MaterialActor, NodeActor } from "../actor";
|
|
@@ -22,38 +22,38 @@ class PointsInterpreter extends NodeInterpreter {
|
|
|
22
22
|
|
|
23
23
|
static type = PointsDescriptor.type
|
|
24
24
|
|
|
25
|
-
protected createActor(descriptor: PointsDescriptor
|
|
25
|
+
protected createActor(descriptor: PointsDescriptor) {
|
|
26
26
|
const actor = new NodeActor(new Points())
|
|
27
27
|
return actor
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
getGeometry(descriptor: PointsDescriptor
|
|
30
|
+
getGeometry(descriptor: PointsDescriptor) {
|
|
31
31
|
const geometryDescriptor = Asset.get(descriptor.geometry)
|
|
32
32
|
if (geometryDescriptor === null) return PointsInterpreter.geometry
|
|
33
33
|
|
|
34
34
|
const interpreter = this.graphics.getInterpreter(geometryDescriptor)
|
|
35
|
-
const actor = interpreter.getActor<GeometryActor<BufferGeometry>>(geometryDescriptor
|
|
35
|
+
const actor = interpreter.getActor<GeometryActor<BufferGeometry>>(geometryDescriptor)
|
|
36
36
|
return actor.object instanceof BufferGeometry ? actor.object : PointsInterpreter.geometry
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
useMaterial(material: string
|
|
39
|
+
useMaterial(material: string) {
|
|
40
40
|
const materialDescriptor = Asset.get(material)
|
|
41
41
|
if (materialDescriptor === null) return PointsInterpreter.material
|
|
42
42
|
|
|
43
43
|
const interpreter = this.graphics.getInterpreter(materialDescriptor)
|
|
44
|
-
const actor = interpreter.getActor<MaterialActor<Material>>(materialDescriptor
|
|
44
|
+
const actor = interpreter.getActor<MaterialActor<Material>>(materialDescriptor)
|
|
45
45
|
return actor.object instanceof Material ? actor.object : PointsInterpreter.material
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
getMaterial(descriptor: PointsDescriptor
|
|
49
|
-
return this.useMaterial(descriptor.material
|
|
48
|
+
getMaterial(descriptor: PointsDescriptor) {
|
|
49
|
+
return this.useMaterial(descriptor.material)
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
-
update(descriptor: PointsDescriptor
|
|
53
|
-
super.update(descriptor
|
|
54
|
-
const actor = this.getActor<NodeActor<Points>>(descriptor
|
|
55
|
-
actor.object.geometry = this.getGeometry(descriptor
|
|
56
|
-
actor.object.material = this.getMaterial(descriptor
|
|
52
|
+
update(descriptor: PointsDescriptor) {
|
|
53
|
+
super.update(descriptor)
|
|
54
|
+
const actor = this.getActor<NodeActor<Points>>(descriptor)
|
|
55
|
+
actor.object.geometry = this.getGeometry(descriptor)
|
|
56
|
+
actor.object.material = this.getMaterial(descriptor)
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
NodeInterpreter.register(PointsInterpreter)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Camera, PerspectiveCamera, Raycaster, Vector2, } from 'three'
|
|
2
|
-
import { CameraDescriptor, Descriptor, HTMLActor, Interpreter, ServiceDescriptor, ServiceInterpreter
|
|
2
|
+
import { CameraDescriptor, Descriptor, HTMLActor, Interpreter, ServiceDescriptor, ServiceInterpreter } from '@vyr/engine'
|
|
3
3
|
import { SceneServiceDescriptor } from '../descriptor'
|
|
4
4
|
import { NodeActor, SceneServiceActor } from '../actor'
|
|
5
5
|
import { PickupNode } from './NodeInterpreter'
|
|
@@ -11,7 +11,7 @@ class SceneServiceInterpreter extends ServiceInterpreter {
|
|
|
11
11
|
static direcation = new Vector2()
|
|
12
12
|
|
|
13
13
|
private _unlisten = -1
|
|
14
|
-
protected createActor(descriptor: SceneServiceDescriptor
|
|
14
|
+
protected createActor(descriptor: SceneServiceDescriptor) {
|
|
15
15
|
const actor = new SceneServiceActor(descriptor.uuid)
|
|
16
16
|
return actor
|
|
17
17
|
}
|
|
@@ -24,15 +24,15 @@ class SceneServiceInterpreter extends ServiceInterpreter {
|
|
|
24
24
|
}
|
|
25
25
|
protected resize = () => {
|
|
26
26
|
const descriptor = Descriptor.get<Descriptor>(this.unit.uuid)
|
|
27
|
-
const actor = this.getActor<SceneServiceActor>(descriptor
|
|
27
|
+
const actor = this.getActor<SceneServiceActor>(descriptor)
|
|
28
28
|
this.setSize(actor)
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
update(descriptor: SceneServiceDescriptor
|
|
32
|
-
super.update(descriptor
|
|
31
|
+
update(descriptor: SceneServiceDescriptor) {
|
|
32
|
+
super.update(descriptor)
|
|
33
33
|
|
|
34
|
-
const actor = this.getActor<SceneServiceActor>(descriptor
|
|
35
|
-
actor.update(descriptor
|
|
34
|
+
const actor = this.getActor<SceneServiceActor>(descriptor)
|
|
35
|
+
actor.update(descriptor)
|
|
36
36
|
|
|
37
37
|
this.resize()
|
|
38
38
|
actor.pipeline.shadowMap.enabled = descriptor.shadowMap
|
|
@@ -42,53 +42,53 @@ class SceneServiceInterpreter extends ServiceInterpreter {
|
|
|
42
42
|
actor.pipeline.shadowMap.needsUpdate = true
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
mount(descriptor: SceneServiceDescriptor,
|
|
46
|
-
super.mount(descriptor,
|
|
45
|
+
mount(descriptor: SceneServiceDescriptor, parentInterpreter: Interpreter, parentDescriptor: Descriptor) {
|
|
46
|
+
super.mount(descriptor, parentInterpreter, parentDescriptor)
|
|
47
47
|
|
|
48
|
-
const actor = this.getActor<SceneServiceActor>(descriptor
|
|
48
|
+
const actor = this.getActor<SceneServiceActor>(descriptor)
|
|
49
49
|
actor.clearStyleClass(actor.pipeline.domElement)
|
|
50
50
|
|
|
51
|
-
const parenActor = parentInterpreter.getActor<HTMLActor>(parentDescriptor
|
|
51
|
+
const parenActor = parentInterpreter.getActor<HTMLActor>(parentDescriptor)
|
|
52
52
|
if (parenActor instanceof HTMLActor) parenActor.add(actor)
|
|
53
53
|
|
|
54
54
|
this._unlisten = this.graphics.engine.inputSystem.listen('resize', this.resize, { target: window })
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
-
unmount(descriptor: SceneServiceDescriptor,
|
|
58
|
-
const actor = this.getActor<SceneServiceActor>(descriptor
|
|
57
|
+
unmount(descriptor: SceneServiceDescriptor, parentInterpreter: Interpreter, parentDescriptor: Descriptor) {
|
|
58
|
+
const actor = this.getActor<SceneServiceActor>(descriptor)
|
|
59
59
|
|
|
60
|
-
const parenActor = parentInterpreter.getActor<HTMLActor>(parentDescriptor
|
|
60
|
+
const parenActor = parentInterpreter.getActor<HTMLActor>(parentDescriptor)
|
|
61
61
|
parenActor.remove(actor)
|
|
62
62
|
|
|
63
63
|
this.graphics.engine.inputSystem.unlisten(this._unlisten)
|
|
64
64
|
this.resize()
|
|
65
65
|
|
|
66
|
-
super.unmount(descriptor,
|
|
66
|
+
super.unmount(descriptor, parentInterpreter, parentDescriptor)
|
|
67
67
|
}
|
|
68
68
|
|
|
69
|
-
free(descriptor: SceneServiceDescriptor
|
|
70
|
-
const actor = this.getActor<SceneServiceActor>(descriptor
|
|
69
|
+
free(descriptor: SceneServiceDescriptor) {
|
|
70
|
+
const actor = this.getActor<SceneServiceActor>(descriptor)
|
|
71
71
|
actor.dispose()
|
|
72
|
-
super.free(descriptor
|
|
72
|
+
super.free(descriptor)
|
|
73
73
|
}
|
|
74
74
|
|
|
75
|
-
clear(service: ServiceDescriptor
|
|
76
|
-
const actor = this.getActor<SceneServiceActor>(service
|
|
75
|
+
clear(service: ServiceDescriptor): void {
|
|
76
|
+
const actor = this.getActor<SceneServiceActor>(service)
|
|
77
77
|
actor.pipeline.clear()
|
|
78
78
|
}
|
|
79
79
|
|
|
80
|
-
beforeRender(service: SceneServiceDescriptor
|
|
81
|
-
const actor = this.getActor<SceneServiceActor>(service
|
|
80
|
+
beforeRender(service: SceneServiceDescriptor) {
|
|
81
|
+
const actor = this.getActor<SceneServiceActor>(service)
|
|
82
82
|
actor.scene.updateMatrixWorld()
|
|
83
83
|
}
|
|
84
84
|
|
|
85
|
-
render(service: SceneServiceDescriptor
|
|
85
|
+
render(service: SceneServiceDescriptor) {
|
|
86
86
|
const cameraDescriptor = CameraDescriptor.get<CameraDescriptor>(this.graphics.scheduler.camera)
|
|
87
87
|
if (cameraDescriptor === null) return
|
|
88
|
-
const actor = this.getActor<SceneServiceActor>(service
|
|
88
|
+
const actor = this.getActor<SceneServiceActor>(service)
|
|
89
89
|
|
|
90
90
|
const cameraInterpreter = this.graphics.getInterpreter(cameraDescriptor)
|
|
91
|
-
const camera = cameraInterpreter.getActor<NodeActor<Camera>>(cameraDescriptor
|
|
91
|
+
const camera = cameraInterpreter.getActor<NodeActor<Camera>>(cameraDescriptor)
|
|
92
92
|
if (camera.object instanceof PerspectiveCamera) {
|
|
93
93
|
const aspect = actor.pipeline.domElement.clientWidth / actor.pipeline.domElement.clientHeight
|
|
94
94
|
if (aspect !== camera.object.aspect) {
|
|
@@ -97,12 +97,12 @@ class SceneServiceInterpreter extends ServiceInterpreter {
|
|
|
97
97
|
}
|
|
98
98
|
}
|
|
99
99
|
|
|
100
|
-
actor.render(service, camera
|
|
100
|
+
actor.render(service, camera)
|
|
101
101
|
}
|
|
102
102
|
|
|
103
|
-
beforePickup(mouse: { x: number; y: number }, rect: DOMRect
|
|
103
|
+
beforePickup(mouse: { x: number; y: number }, rect: DOMRect) {
|
|
104
104
|
const currentCamera = SceneServiceDescriptor.get<CameraDescriptor>(this.graphics.scheduler.camera)
|
|
105
|
-
const camera = this.graphics.getInterpreter(currentCamera).getActor<NodeActor<Camera>>(currentCamera
|
|
105
|
+
const camera = this.graphics.getInterpreter(currentCamera).getActor<NodeActor<Camera>>(currentCamera)
|
|
106
106
|
|
|
107
107
|
SceneServiceInterpreter.direcation.x = (mouse.x / rect.width) * 2 - 1
|
|
108
108
|
SceneServiceInterpreter.direcation.y = -(mouse.y / rect.height) * 2 + 1
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import { AnimationMixer, Object3D } from 'three'
|
|
2
|
-
import { ServiceSchedulerInterpreter as SchedulerInterpreter, ServiceSchedulerDescriptor,
|
|
2
|
+
import { ServiceSchedulerInterpreter as SchedulerInterpreter, ServiceSchedulerDescriptor, TickArgs } from '@vyr/engine'
|
|
3
3
|
|
|
4
4
|
class ServiceSchedulerInterpreter extends SchedulerInterpreter {
|
|
5
5
|
readonly mixer = new AnimationMixer(new Object3D())
|
|
6
6
|
|
|
7
|
-
updateMixer = (args:
|
|
7
|
+
updateMixer = (args: TickArgs) => {
|
|
8
8
|
this.mixer.update(args.delta)
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
install(descriptor: ServiceSchedulerDescriptor
|
|
12
|
-
super.install(descriptor
|
|
11
|
+
install(descriptor: ServiceSchedulerDescriptor) {
|
|
12
|
+
super.install(descriptor)
|
|
13
13
|
this.graphics.engine.listen('beforeRender', this.updateMixer)
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
uninstall(descriptor: ServiceSchedulerDescriptor
|
|
16
|
+
uninstall(descriptor: ServiceSchedulerDescriptor) {
|
|
17
17
|
this.graphics.engine.unlisten('beforeRender', this.updateMixer)
|
|
18
|
-
super.uninstall(descriptor
|
|
18
|
+
super.uninstall(descriptor)
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
SchedulerInterpreter.register(ServiceSchedulerInterpreter)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Sprite, SpriteMaterial } from "three";
|
|
2
|
-
import { Asset
|
|
2
|
+
import { Asset } from "@vyr/engine";
|
|
3
3
|
import { SpriteDescriptor } from "../descriptor";
|
|
4
4
|
import { NodeInterpreter } from "./NodeInterpreter";
|
|
5
5
|
import { MaterialActor, NodeActor } from "../actor";
|
|
@@ -16,28 +16,28 @@ class SpriteInterpreter extends NodeInterpreter {
|
|
|
16
16
|
|
|
17
17
|
static type = SpriteDescriptor.type
|
|
18
18
|
|
|
19
|
-
protected createActor(descriptor: SpriteDescriptor
|
|
19
|
+
protected createActor(descriptor: SpriteDescriptor) {
|
|
20
20
|
const actor = new NodeActor(new Sprite())
|
|
21
21
|
return actor
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
useMaterial(material: string
|
|
24
|
+
useMaterial(material: string) {
|
|
25
25
|
const materialDescriptor = Asset.get(material)
|
|
26
26
|
if (materialDescriptor === null) return SpriteInterpreter.material
|
|
27
27
|
|
|
28
28
|
const interpreter = this.graphics.getInterpreter(materialDescriptor)
|
|
29
|
-
const actor = interpreter.getActor<MaterialActor>(materialDescriptor
|
|
29
|
+
const actor = interpreter.getActor<MaterialActor>(materialDescriptor)
|
|
30
30
|
return actor.object instanceof SpriteMaterial ? actor.object : SpriteInterpreter.material
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
getMaterial(descriptor: SpriteDescriptor
|
|
34
|
-
return this.useMaterial(descriptor.material
|
|
33
|
+
getMaterial(descriptor: SpriteDescriptor) {
|
|
34
|
+
return this.useMaterial(descriptor.material)
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
update(descriptor: SpriteDescriptor
|
|
38
|
-
super.update(descriptor
|
|
39
|
-
const actor = this.getActor<NodeActor<Sprite>>(descriptor
|
|
40
|
-
actor.object.material = this.getMaterial(descriptor
|
|
37
|
+
update(descriptor: SpriteDescriptor) {
|
|
38
|
+
super.update(descriptor)
|
|
39
|
+
const actor = this.getActor<NodeActor<Sprite>>(descriptor)
|
|
40
|
+
actor.object.material = this.getMaterial(descriptor)
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
43
|
NodeInterpreter.register(SpriteInterpreter)
|