@kerros/viewer 0.0.0-stage → 0.1.0-rc.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/LICENSE +21 -0
- package/README.md +31 -2
- package/dist/adapters/basemap.js +11 -0
- package/dist/adapters/basemap.js.map +1 -0
- package/dist/adapters/persistence.js +121 -0
- package/dist/adapters/persistence.js.map +1 -0
- package/dist/adapters/status.js +18 -0
- package/dist/adapters/status.js.map +1 -0
- package/dist/components/ElevatorPanel.js +120 -0
- package/dist/components/ElevatorPanel.js.map +1 -0
- package/dist/components/Icons.js +57 -0
- package/dist/components/Icons.js.map +1 -0
- package/dist/components/Inspector.js +1184 -0
- package/dist/components/Inspector.js.map +1 -0
- package/dist/components/NavigatePanel.js +301 -0
- package/dist/components/NavigatePanel.js.map +1 -0
- package/dist/components/NavigationGraph.js +234 -0
- package/dist/components/NavigationGraph.js.map +1 -0
- package/dist/components/StructureExplorer.js +510 -0
- package/dist/components/StructureExplorer.js.map +1 -0
- package/dist/components/StructureView.js +286 -0
- package/dist/components/StructureView.js.map +1 -0
- package/dist/components/controls.js +170 -0
- package/dist/components/controls.js.map +1 -0
- package/dist/components/graphLayout.js +27 -0
- package/dist/components/graphLayout.js.map +1 -0
- package/dist/host.js +169 -0
- package/dist/host.js.map +1 -0
- package/dist/i18n.js +88 -0
- package/dist/i18n.js.map +1 -0
- package/dist/index.js +171 -0
- package/dist/index.js.map +1 -0
- package/dist/map/CabinMaterials.js +81 -0
- package/dist/map/CabinMaterials.js.map +1 -0
- package/dist/map/CabinMirror.js +43 -0
- package/dist/map/CabinMirror.js.map +1 -0
- package/dist/map/Doors.js +80 -0
- package/dist/map/Doors.js.map +1 -0
- package/dist/map/ElevatorCabin.js +93 -0
- package/dist/map/ElevatorCabin.js.map +1 -0
- package/dist/map/FixtureLights.js +117 -0
- package/dist/map/FixtureLights.js.map +1 -0
- package/dist/map/MapCanvas.js +2161 -0
- package/dist/map/MapCanvas.js.map +1 -0
- package/dist/map/Passenger.js +69 -0
- package/dist/map/Passenger.js.map +1 -0
- package/dist/map/SceneLayer.js +1534 -0
- package/dist/map/SceneLayer.js.map +1 -0
- package/dist/map/UndergroundContext.js +153 -0
- package/dist/map/UndergroundContext.js.map +1 -0
- package/dist/map/ambience.js +194 -0
- package/dist/map/ambience.js.map +1 -0
- package/dist/map/architecture.js +305 -0
- package/dist/map/architecture.js.map +1 -0
- package/dist/map/bathMusic.js +92 -0
- package/dist/map/bathMusic.js.map +1 -0
- package/dist/map/cameraAim.js +33 -0
- package/dist/map/cameraAim.js.map +1 -0
- package/dist/map/elevators.js +56 -0
- package/dist/map/elevators.js.map +1 -0
- package/dist/map/excavation.js +52 -0
- package/dist/map/excavation.js.map +1 -0
- package/dist/map/exteriors.js +25 -0
- package/dist/map/exteriors.js.map +1 -0
- package/dist/map/features.js +218 -0
- package/dist/map/features.js.map +1 -0
- package/dist/map/fences.js +29 -0
- package/dist/map/fences.js.map +1 -0
- package/dist/map/journey.js +112 -0
- package/dist/map/journey.js.map +1 -0
- package/dist/map/levels.js +6 -0
- package/dist/map/levels.js.map +1 -0
- package/dist/map/lighting.js +142 -0
- package/dist/map/lighting.js.map +1 -0
- package/dist/map/loadBasemap.js +26 -0
- package/dist/map/loadBasemap.js.map +1 -0
- package/dist/map/materials.js +183 -0
- package/dist/map/materials.js.map +1 -0
- package/dist/map/poolLighting.js +39 -0
- package/dist/map/poolLighting.js.map +1 -0
- package/dist/map/projection.js +24 -0
- package/dist/map/projection.js.map +1 -0
- package/dist/map/rampGeometry.js +38 -0
- package/dist/map/rampGeometry.js.map +1 -0
- package/dist/map/route.js +107 -0
- package/dist/map/route.js.map +1 -0
- package/dist/map/stairSurfaces.js +115 -0
- package/dist/map/stairSurfaces.js.map +1 -0
- package/dist/map/surfaces.js +136 -0
- package/dist/map/surfaces.js.map +1 -0
- package/dist/map/textures.js +95 -0
- package/dist/map/textures.js.map +1 -0
- package/dist/map/underground.js +34 -0
- package/dist/map/underground.js.map +1 -0
- package/dist/map/walk.js +433 -0
- package/dist/map/walk.js.map +1 -0
- package/dist/map/walkContext.js +46 -0
- package/dist/map/walkContext.js.map +1 -0
- package/dist/map/walkDimensions.js +7 -0
- package/dist/map/walkDimensions.js.map +1 -0
- package/dist/map/walkJourney.js +85 -0
- package/dist/map/walkJourney.js.map +1 -0
- package/dist/map/walkSurfaces.js +106 -0
- package/dist/map/walkSurfaces.js.map +1 -0
- package/dist/map/wallJoins.js +70 -0
- package/dist/map/wallJoins.js.map +1 -0
- package/dist/map/water.js +274 -0
- package/dist/map/water.js.map +1 -0
- package/dist/model/authoring.js +80 -0
- package/dist/model/authoring.js.map +1 -0
- package/dist/model/boundaries.js +548 -0
- package/dist/model/boundaries.js.map +1 -0
- package/dist/model/coverage.js +30 -0
- package/dist/model/coverage.js.map +1 -0
- package/dist/model/document.js +52 -0
- package/dist/model/document.js.map +1 -0
- package/dist/model/doors.js +47 -0
- package/dist/model/doors.js.map +1 -0
- package/dist/model/factory.js +56 -0
- package/dist/model/factory.js.map +1 -0
- package/dist/model/geometry.js +394 -0
- package/dist/model/geometry.js.map +1 -0
- package/dist/model/inference.js +182 -0
- package/dist/model/inference.js.map +1 -0
- package/dist/model/materials.js +11 -0
- package/dist/model/materials.js.map +1 -0
- package/dist/model/mutations.js +157 -0
- package/dist/model/mutations.js.map +1 -0
- package/dist/model/navigation.js +275 -0
- package/dist/model/navigation.js.map +1 -0
- package/dist/model/ontology.js +109 -0
- package/dist/model/ontology.js.map +1 -0
- package/dist/model/passages.js +5 -0
- package/dist/model/passages.js.map +1 -0
- package/dist/model/portals.js +42 -0
- package/dist/model/portals.js.map +1 -0
- package/dist/model/precision.js +11 -0
- package/dist/model/precision.js.map +1 -0
- package/dist/model/project.js +17 -0
- package/dist/model/project.js.map +1 -0
- package/dist/model/ramps.js +10 -0
- package/dist/model/ramps.js.map +1 -0
- package/dist/model/roomNavigation.js +87 -0
- package/dist/model/roomNavigation.js.map +1 -0
- package/dist/model/routeClearance.js +72 -0
- package/dist/model/routeClearance.js.map +1 -0
- package/dist/model/spaces.js +104 -0
- package/dist/model/spaces.js.map +1 -0
- package/dist/model/stairGeometry.js +40 -0
- package/dist/model/stairGeometry.js.map +1 -0
- package/dist/model/stairTraversal.js +48 -0
- package/dist/model/stairTraversal.js.map +1 -0
- package/dist/model/topology.js +63 -0
- package/dist/model/topology.js.map +1 -0
- package/dist/model/types.js +35 -0
- package/dist/model/types.js.map +1 -0
- package/dist/model/validate.js +240 -0
- package/dist/model/validate.js.map +1 -0
- package/dist/model/vertical.js +129 -0
- package/dist/model/vertical.js.map +1 -0
- package/dist/model/walls.js +71 -0
- package/dist/model/walls.js.map +1 -0
- package/dist/styles.css +4931 -0
- package/dist/theme/index.js +34 -0
- package/dist/theme/index.js.map +1 -0
- package/dist/types/adapters/basemap.d.ts +2 -0
- package/dist/types/adapters/persistence.d.ts +29 -0
- package/dist/types/adapters/status.d.ts +4 -0
- package/dist/types/components/ElevatorPanel.d.ts +18 -0
- package/dist/types/components/Icons.d.ts +8 -0
- package/dist/types/components/Inspector.d.ts +38 -0
- package/dist/types/components/NavigatePanel.d.ts +27 -0
- package/dist/types/components/NavigationGraph.d.ts +10 -0
- package/dist/types/components/StructureExplorer.d.ts +8 -0
- package/dist/types/components/StructureView.d.ts +22 -0
- package/dist/types/components/controls.d.ts +52 -0
- package/dist/types/components/graphLayout.d.ts +9 -0
- package/dist/types/i18n.d.ts +85 -0
- package/dist/types/import/analysisPreview.d.ts +27 -0
- package/dist/types/import/brief.d.ts +22 -0
- package/dist/types/import/checkpoint.d.ts +49 -0
- package/dist/types/import/instructions.d.ts +7 -0
- package/dist/types/import/usage.d.ts +10 -0
- package/dist/types/map/CabinMaterials.d.ts +18 -0
- package/dist/types/map/CabinMirror.d.ts +13 -0
- package/dist/types/map/Doors.d.ts +11 -0
- package/dist/types/map/ElevatorCabin.d.ts +20 -0
- package/dist/types/map/FixtureLights.d.ts +35 -0
- package/dist/types/map/MapCanvas.d.ts +87 -0
- package/dist/types/map/Passenger.d.ts +18 -0
- package/dist/types/map/SceneLayer.d.ts +306 -0
- package/dist/types/map/UndergroundContext.d.ts +18 -0
- package/dist/types/map/ambience.d.ts +29 -0
- package/dist/types/map/architecture.d.ts +8 -0
- package/dist/types/map/bathMusic.d.ts +14 -0
- package/dist/types/map/cameraAim.d.ts +20 -0
- package/dist/types/map/elevators.d.ts +16 -0
- package/dist/types/map/excavation.d.ts +9 -0
- package/dist/types/map/exteriors.d.ts +3 -0
- package/dist/types/map/features.d.ts +33 -0
- package/dist/types/map/fences.d.ts +4 -0
- package/dist/types/map/journey.d.ts +36 -0
- package/dist/types/map/levels.d.ts +4 -0
- package/dist/types/map/lighting.d.ts +103 -0
- package/dist/types/map/loadBasemap.d.ts +4 -0
- package/dist/types/map/materials.d.ts +38 -0
- package/dist/types/map/poolLighting.d.ts +11 -0
- package/dist/types/map/projection.d.ts +9 -0
- package/dist/types/map/rampGeometry.d.ts +8 -0
- package/dist/types/map/route.d.ts +59 -0
- package/dist/types/map/stairSurfaces.d.ts +29 -0
- package/dist/types/map/surfaces.d.ts +36 -0
- package/dist/types/map/textures.d.ts +8 -0
- package/dist/types/map/underground.d.ts +30 -0
- package/dist/types/map/walk.d.ts +232 -0
- package/dist/types/map/walkContext.d.ts +11 -0
- package/dist/types/map/walkDimensions.d.ts +5 -0
- package/dist/types/map/walkJourney.d.ts +33 -0
- package/dist/types/map/walkSurfaces.d.ts +27 -0
- package/dist/types/map/wallJoins.d.ts +6 -0
- package/dist/types/map/water.d.ts +12 -0
- package/dist/types/model/authoring.d.ts +38 -0
- package/dist/types/model/boundaries.d.ts +41 -0
- package/dist/types/model/coverage.d.ts +8 -0
- package/dist/types/model/document.d.ts +9 -0
- package/dist/types/model/doors.d.ts +19 -0
- package/dist/types/model/factory.d.ts +5 -0
- package/dist/types/model/geometry.d.ts +99 -0
- package/dist/types/model/host.d.ts +154 -0
- package/dist/types/model/inference.d.ts +46 -0
- package/dist/types/model/live.d.ts +60 -0
- package/dist/types/model/materials.d.ts +28 -0
- package/dist/types/model/mutations.d.ts +178 -0
- package/dist/types/model/navigation.d.ts +70 -0
- package/dist/types/model/ontology.d.ts +43 -0
- package/dist/types/model/passages.d.ts +2 -0
- package/dist/types/model/portals.d.ts +9 -0
- package/dist/types/model/precision.d.ts +11 -0
- package/dist/types/model/project.d.ts +8 -0
- package/dist/types/model/ramps.d.ts +7 -0
- package/dist/types/model/roomNavigation.d.ts +15 -0
- package/dist/types/model/routeClearance.d.ts +11 -0
- package/dist/types/model/spaces.d.ts +46 -0
- package/dist/types/model/stairGeometry.d.ts +27 -0
- package/dist/types/model/stairTraversal.d.ts +8 -0
- package/dist/types/model/topology.d.ts +14 -0
- package/dist/types/model/types.d.ts +369 -0
- package/dist/types/model/validate.d.ts +38 -0
- package/dist/types/model/vertical.d.ts +145 -0
- package/dist/types/model/walls.d.ts +71 -0
- package/dist/types/schema/index.d.ts +25 -0
- package/dist/types/theme/index.d.ts +55 -0
- package/dist/types/viewer/FloorViewer.d.ts +76 -0
- package/dist/types/viewer/ViewerWorkspace.d.ts +2 -0
- package/dist/types/viewer/host.d.ts +11 -0
- package/dist/types/viewer/index.d.ts +2 -0
- package/dist/types/viewer/panels.d.ts +12 -0
- package/dist/viewer/FloorViewer.js +104 -0
- package/dist/viewer/FloorViewer.js.map +1 -0
- package/dist/viewer/ViewerWorkspace.js +370 -0
- package/dist/viewer/ViewerWorkspace.js.map +1 -0
- package/dist/viewer/panels.js +35 -0
- package/dist/viewer/panels.js.map +1 -0
- package/package.json +58 -4
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
var k = Object.defineProperty;
|
|
2
|
+
var z = (l, w, n) => w in l ? k(l, w, { enumerable: !0, configurable: !0, writable: !0, value: n }) : l[w] = n;
|
|
3
|
+
var d = (l, w, n) => z(l, typeof w != "symbol" ? w + "" : w, n);
|
|
4
|
+
import * as h from "three";
|
|
5
|
+
import { REFLECTION_BODY as b } from "./CabinMirror.js";
|
|
6
|
+
class C extends h.Group {
|
|
7
|
+
constructor(n) {
|
|
8
|
+
super();
|
|
9
|
+
d(this, "head", new h.Group());
|
|
10
|
+
d(this, "arms", []);
|
|
11
|
+
d(this, "elbows", []);
|
|
12
|
+
d(this, "legs", []);
|
|
13
|
+
d(this, "knees", []);
|
|
14
|
+
d(this, "previous");
|
|
15
|
+
d(this, "phase", 0);
|
|
16
|
+
d(this, "yaw");
|
|
17
|
+
d(this, "waveUntil", 0);
|
|
18
|
+
this.name = "POV passenger", this.userData.passenger = !0;
|
|
19
|
+
const r = (e, i = 0.8) => new h.MeshStandardMaterial({ color: e, roughness: i, envMap: n, envMapIntensity: 1.2 }), m = r("#425563"), M = r("#ddd7c7"), u = r("#29303b"), v = r("#242323", 0.48), c = r("#bc8f73"), g = r("#302823"), x = r("#292b2b"), s = (e, i, o, a, p) => {
|
|
20
|
+
const y = new h.Mesh(i, o);
|
|
21
|
+
return y.position.set(a[0], a[1], a[2]), p && y.scale.set(p[0], p[1], p[2]), y.castShadow = y.receiveShadow = !0, e.add(y), y;
|
|
22
|
+
}, t = (e, i, o, a) => s(e, new h.SphereGeometry(1, 16, 12), i, o, a), G = (e, i, o, a) => s(e, new h.CapsuleGeometry(a, o - 2 * a, 4, 10).rotateX(Math.PI / 2), i, [
|
|
23
|
+
0,
|
|
24
|
+
0,
|
|
25
|
+
-o / 2
|
|
26
|
+
]);
|
|
27
|
+
s(
|
|
28
|
+
this,
|
|
29
|
+
new h.CylinderGeometry(0.21, 0.17, 0.5, 12).rotateX(Math.PI / 2),
|
|
30
|
+
m,
|
|
31
|
+
[0, -0.06, 1.18],
|
|
32
|
+
[1, 0.56, 1]
|
|
33
|
+
).layers.set(b), s(this, new h.BoxGeometry(0.11, 0.015, 0.3), M, [0, 0.065, 1.29]).layers.set(b), s(this, new h.BoxGeometry(0.012, 0.016, 0.43), u, [0, 0.072, 1.18]).layers.set(b), t(this, c, [0, -0.06, 1.48], [0.058, 0.055, 0.115]).layers.set(b), t(this, u, [0, -0.055, 0.88], [0.175, 0.125, 0.13]), this.head.position.set(0, -0.06, 1.51), this.add(this.head), t(this.head, c, [0, 0, 0.16], [0.125, 0.11, 0.16]), t(this.head, g, [0, -0.027, 0.24], [0.128, 0.106, 0.095]), t(this.head, c, [0, 0.11, 0.145], [0.029, 0.034, 0.035]);
|
|
34
|
+
for (const e of [-1, 1]) {
|
|
35
|
+
t(this.head, M, [e * 0.047, 0.099, 0.194], [0.025, 0.014, 0.012]), t(this.head, x, [e * 0.047, 0.112, 0.194], [9e-3, 5e-3, 9e-3]), t(this.head, c, [e * 0.126, -3e-3, 0.16], [0.019, 0.023, 0.037]);
|
|
36
|
+
const i = new h.Group();
|
|
37
|
+
i.position.set(e * 0.225, -0.04, 1.41), this.add(i), t(i, m, [0, 0, -0.04], [0.073, 0.071, 0.077]), G(i, m, 0.29, 0.071);
|
|
38
|
+
const o = new h.Group();
|
|
39
|
+
o.position.z = -0.29, i.add(o), t(o, m, [0, 0, 0], [0.06, 0.06, 0.06]), G(o, m, 0.27, 0.06), t(o, c, [0, 0, -0.3], [0.045, 0.034, 0.07]), this.arms.push(i), this.elbows.push(o);
|
|
40
|
+
const a = new h.Group();
|
|
41
|
+
a.position.set(e * 0.105, -0.055, 0.87), this.add(a), G(a, u, 0.4, 0.085);
|
|
42
|
+
const p = new h.Group();
|
|
43
|
+
p.position.z = -0.4, a.add(p), t(p, u, [0, 0, 0], [0.066, 0.066, 0.066]), G(p, u, 0.39, 0.065), t(p, v, [0, 0.06, -0.415], [0.085, 0.155, 0.055]), this.legs.push(a), this.knees.push(p);
|
|
44
|
+
}
|
|
45
|
+
this.head.traverse((e) => e.layers.set(b));
|
|
46
|
+
}
|
|
47
|
+
wave(n) {
|
|
48
|
+
this.waveUntil = n + 2.8;
|
|
49
|
+
}
|
|
50
|
+
update(n, r, m, M) {
|
|
51
|
+
const u = this.previous ? Math.min(0.15, n.distanceTo(this.previous)) : 0;
|
|
52
|
+
this.previous = n.clone(), this.phase += u * 9;
|
|
53
|
+
const v = Math.atan2(-r.x, r.y);
|
|
54
|
+
this.yaw ?? (this.yaw = v);
|
|
55
|
+
const c = Math.atan2(Math.sin(v - this.yaw), Math.cos(v - this.yaw));
|
|
56
|
+
this.yaw += Math.max(-M * 3.5, Math.min(M * 3.5, c)), this.position.copy(n), this.position.z -= 1.7, this.rotation.z = this.yaw, this.head.rotation.z = Math.max(-0.9, Math.min(0.9, c)), this.head.rotation.x = Math.max(-0.55, Math.min(0.55, Math.asin(r.z)));
|
|
57
|
+
const g = u > 5e-4 ? Math.sin(this.phase) * 0.36 : 0;
|
|
58
|
+
for (let s = 0; s < 2; s++) {
|
|
59
|
+
const t = g * (s ? 1 : -1);
|
|
60
|
+
this.legs[s].rotation.x = t, this.knees[s].rotation.x = Math.max(0, -t) * 1.1, this.arms[s].rotation.x = -t * 0.7, this.arms[s].rotation.y = (s ? -1 : 1) * 0.06, this.elbows[s].rotation.x = -0.13, this.elbows[s].rotation.y = 0;
|
|
61
|
+
}
|
|
62
|
+
const x = m < this.waveUntil;
|
|
63
|
+
return x && (this.arms[1].rotation.x = 0.2, this.arms[1].rotation.y = -2.4, this.elbows[1].rotation.y = Math.sin(m * 12) * 0.25), this.userData.waving = x, x || Math.abs(c) > 0.01;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
export {
|
|
67
|
+
C as Passenger
|
|
68
|
+
};
|
|
69
|
+
//# sourceMappingURL=Passenger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Passenger.js","sources":["../../../../src/map/Passenger.ts"],"sourcesContent":["import * as THREE from 'three';\nimport { REFLECTION_BODY } from './CabinMirror';\n\n/** A small articulated passenger: tailored jacket, trousers, shoes and a recognisable face.\n * The view uses the lower body; reflections include the head and shoulders. All motion follows\n * the actual walker, so a mirror shows a passenger at the correct location, not a painted figure. */\nexport class Passenger extends THREE.Group {\n private head = new THREE.Group();\n private arms: THREE.Group[] = [];\n private elbows: THREE.Group[] = [];\n private legs: THREE.Group[] = [];\n private knees: THREE.Group[] = [];\n private previous?: THREE.Vector3;\n private phase = 0;\n private yaw?: number;\n private waveUntil = 0;\n constructor(environment: THREE.Texture) {\n super();\n this.name = 'POV passenger';\n this.userData.passenger = true;\n const material = (color: string, roughness = 0.8) =>\n new THREE.MeshStandardMaterial({ color, roughness, envMap: environment, envMapIntensity: 1.2 });\n const jacket = material('#425563'),\n shirt = material('#ddd7c7'),\n trousers = material('#29303b'),\n shoes = material('#242323', 0.48),\n skin = material('#bc8f73'),\n hair = material('#302823'),\n eye = material('#292b2b');\n const add = (\n parent: THREE.Object3D,\n geo: THREE.BufferGeometry,\n mat: THREE.Material,\n at: number[],\n scale?: number[],\n ) => {\n const mesh = new THREE.Mesh(geo, mat);\n mesh.position.set(at[0], at[1], at[2]);\n if (scale) mesh.scale.set(scale[0], scale[1], scale[2]);\n mesh.castShadow = mesh.receiveShadow = true;\n parent.add(mesh);\n return mesh;\n };\n const sphere = (parent: THREE.Object3D, mat: THREE.Material, at: number[], scale: number[]) =>\n add(parent, new THREE.SphereGeometry(1, 16, 12), mat, at, scale);\n const limb = (parent: THREE.Object3D, mat: THREE.Material, length: number, radius: number) =>\n add(parent, new THREE.CapsuleGeometry(radius, length - 2 * radius, 4, 10).rotateX(Math.PI / 2), mat, [\n 0,\n 0,\n -length / 2,\n ]);\n const torso = add(\n this,\n new THREE.CylinderGeometry(0.21, 0.17, 0.5, 12).rotateX(Math.PI / 2),\n jacket,\n [0, -0.06, 1.18],\n [1, 0.56, 1],\n );\n torso.layers.set(REFLECTION_BODY);\n const chest = add(this, new THREE.BoxGeometry(0.11, 0.015, 0.3), shirt, [0, 0.065, 1.29]);\n chest.layers.set(REFLECTION_BODY);\n const zipper = add(this, new THREE.BoxGeometry(0.012, 0.016, 0.43), trousers, [0, 0.072, 1.18]);\n zipper.layers.set(REFLECTION_BODY);\n const neck = sphere(this, skin, [0, -0.06, 1.48], [0.058, 0.055, 0.115]);\n neck.layers.set(REFLECTION_BODY);\n sphere(this, trousers, [0, -0.055, 0.88], [0.175, 0.125, 0.13]);\n this.head.position.set(0, -0.06, 1.51);\n this.add(this.head);\n sphere(this.head, skin, [0, 0, 0.16], [0.125, 0.11, 0.16]);\n sphere(this.head, hair, [0, -0.027, 0.24], [0.128, 0.106, 0.095]);\n sphere(this.head, skin, [0, 0.11, 0.145], [0.029, 0.034, 0.035]);\n for (const side of [-1, 1]) {\n sphere(this.head, shirt, [side * 0.047, 0.099, 0.194], [0.025, 0.014, 0.012]);\n sphere(this.head, eye, [side * 0.047, 0.112, 0.194], [0.009, 0.005, 0.009]);\n sphere(this.head, skin, [side * 0.126, -0.003, 0.16], [0.019, 0.023, 0.037]);\n const shoulder = new THREE.Group();\n shoulder.position.set(side * 0.225, -0.04, 1.41);\n this.add(shoulder);\n sphere(shoulder, jacket, [0, 0, -0.04], [0.073, 0.071, 0.077]);\n limb(shoulder, jacket, 0.29, 0.071);\n const elbow = new THREE.Group();\n elbow.position.z = -0.29;\n shoulder.add(elbow);\n sphere(elbow, jacket, [0, 0, 0], [0.06, 0.06, 0.06]);\n limb(elbow, jacket, 0.27, 0.06);\n sphere(elbow, skin, [0, 0, -0.3], [0.045, 0.034, 0.07]);\n this.arms.push(shoulder);\n this.elbows.push(elbow);\n const hip = new THREE.Group();\n hip.position.set(side * 0.105, -0.055, 0.87);\n this.add(hip);\n limb(hip, trousers, 0.4, 0.085);\n const knee = new THREE.Group();\n knee.position.z = -0.4;\n hip.add(knee);\n sphere(knee, trousers, [0, 0, 0], [0.066, 0.066, 0.066]);\n limb(knee, trousers, 0.39, 0.065);\n sphere(knee, shoes, [0, 0.06, -0.415], [0.085, 0.155, 0.055]);\n this.legs.push(hip);\n this.knees.push(knee);\n }\n this.head.traverse(o => o.layers.set(REFLECTION_BODY));\n }\n wave(now: number) {\n this.waveUntil = now + 2.8;\n }\n update(eye: THREE.Vector3, forward: THREE.Vector3, seconds: number, dt: number) {\n const moved = this.previous ? Math.min(0.15, eye.distanceTo(this.previous)) : 0;\n this.previous = eye.clone();\n this.phase += moved * 9;\n const target = Math.atan2(-forward.x, forward.y);\n this.yaw ??= target;\n const delta = Math.atan2(Math.sin(target - this.yaw), Math.cos(target - this.yaw));\n this.yaw += Math.max(-dt * 3.5, Math.min(dt * 3.5, delta));\n this.position.copy(eye);\n this.position.z -= 1.7;\n this.rotation.z = this.yaw;\n this.head.rotation.z = Math.max(-0.9, Math.min(0.9, delta));\n this.head.rotation.x = Math.max(-0.55, Math.min(0.55, Math.asin(forward.z)));\n const stride = moved > 0.0005 ? Math.sin(this.phase) * 0.36 : 0;\n for (let i = 0; i < 2; i++) {\n const step = stride * (i ? 1 : -1);\n this.legs[i].rotation.x = step;\n this.knees[i].rotation.x = Math.max(0, -step) * 1.1;\n this.arms[i].rotation.x = -step * 0.7;\n this.arms[i].rotation.y = (i ? -1 : 1) * 0.06;\n this.elbows[i].rotation.x = -0.13;\n this.elbows[i].rotation.y = 0;\n }\n const waving = seconds < this.waveUntil;\n if (waving) {\n this.arms[1].rotation.x = 0.2;\n this.arms[1].rotation.y = -2.4;\n this.elbows[1].rotation.y = Math.sin(seconds * 12) * 0.25;\n }\n this.userData.waving = waving;\n return waving || Math.abs(delta) > 0.01;\n }\n}\n"],"names":["Passenger","THREE","environment","__publicField","material","color","roughness","jacket","shirt","trousers","shoes","skin","hair","eye","add","parent","geo","mat","at","scale","mesh","sphere","limb","length","radius","REFLECTION_BODY","side","shoulder","elbow","hip","knee","o","now","forward","seconds","dt","moved","target","delta","stride","i","step","waving"],"mappings":"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"}
|