u-space 0.0.0-alpha.1
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/README.md +21 -0
- package/dist/index.cjs +1 -0
- package/dist/index.js +1374 -0
- package/dist/plugins/atmosphere/Atmosphere.d.ts +9 -0
- package/dist/plugins/atmosphere/index.cjs +1 -0
- package/dist/plugins/atmosphere/index.d.ts +1 -0
- package/dist/plugins/atmosphere/index.js +15 -0
- package/dist/plugins/curve-movement/CurveMovement.d.ts +78 -0
- package/dist/plugins/curve-movement/CurveMovementCamera.d.ts +8 -0
- package/dist/plugins/curve-movement/CurveMovementObject.d.ts +14 -0
- package/dist/plugins/curve-movement/index.cjs +1 -0
- package/dist/plugins/curve-movement/index.d.ts +3 -0
- package/dist/plugins/curve-movement/index.js +153 -0
- package/dist/plugins/keyboard-controls/KeyboardControls.d.ts +31 -0
- package/dist/plugins/keyboard-controls/index.cjs +1 -0
- package/dist/plugins/keyboard-controls/index.d.ts +1 -0
- package/dist/plugins/keyboard-controls/index.js +67 -0
- package/dist/plugins/minimap/Minimap.d.ts +22 -0
- package/dist/plugins/minimap/index.cjs +1 -0
- package/dist/plugins/minimap/index.d.ts +1 -0
- package/dist/plugins/minimap/index.js +67 -0
- package/dist/plugins/tiles/ArcgisTilesRenderer.d.ts +14 -0
- package/dist/plugins/tiles/Globe.d.ts +22 -0
- package/dist/plugins/tiles/index.cjs +1 -0
- package/dist/plugins/tiles/index.d.ts +2 -0
- package/dist/plugins/tiles/index.js +179 -0
- package/dist/plugins/tiles/plugins/TileMaterialReplacementPlugin.d.ts +11 -0
- package/dist/plugins/tiles/plugins/fade/FadeMaterialManager.d.ts +17 -0
- package/dist/plugins/tiles/plugins/fade/TilesFadePlugin.d.ts +5 -0
- package/dist/plugins/tiles/plugins/fade/wrapFadeNodeMaterial.d.ts +3 -0
- package/dist/plugins/tracking-controls/TrackingControls.d.ts +13 -0
- package/dist/plugins/tracking-controls/index.cjs +1 -0
- package/dist/plugins/tracking-controls/index.d.ts +1 -0
- package/dist/plugins/tracking-controls/index.js +23 -0
- package/dist/plugins/u-manager/Watermarker.d.ts +12 -0
- package/dist/plugins/u-manager/constants.d.ts +5 -0
- package/dist/plugins/u-manager/index.cjs +86 -0
- package/dist/plugins/u-manager/index.d.ts +6 -0
- package/dist/plugins/u-manager/index.js +20877 -0
- package/dist/plugins/u-manager/license/decryptUtils.d.ts +5 -0
- package/dist/plugins/u-manager/loaders/AnimationsLoader.d.ts +59 -0
- package/dist/plugins/u-manager/loaders/BaseFileLoader.d.ts +5 -0
- package/dist/plugins/u-manager/loaders/PropertiesLoader.d.ts +12 -0
- package/dist/plugins/u-manager/loaders/SceneLoader.d.ts +15 -0
- package/dist/plugins/u-manager/loaders/TopologiesLoader.d.ts +10 -0
- package/dist/plugins/u-manager/loaders/VisionsLoader.d.ts +26 -0
- package/dist/plugins/u-manager/types.d.ts +84 -0
- package/dist/src/animations/Tween.d.ts +20 -0
- package/dist/src/animations/index.d.ts +1 -0
- package/dist/src/effects/MaterialEffects.d.ts +10 -0
- package/dist/src/effects/TSLEffects.d.ts +24 -0
- package/dist/src/effects/index.d.ts +2 -0
- package/dist/src/index.d.ts +9 -0
- package/dist/src/interactions/InteractionEvent.d.ts +39 -0
- package/dist/src/interactions/InteractionManager.d.ts +55 -0
- package/dist/src/interactions/index.d.ts +2 -0
- package/dist/src/interfaces/base.d.ts +11 -0
- package/dist/src/interfaces/index.d.ts +1 -0
- package/dist/src/loaders/ModelLoaderManager.d.ts +40 -0
- package/dist/src/loaders/SBMLoader.d.ts +6 -0
- package/dist/src/loaders/SBMUtils.d.ts +5 -0
- package/dist/src/loaders/SBMXLoader.d.ts +6 -0
- package/dist/src/loaders/TextureLoaderManager.d.ts +11 -0
- package/dist/src/loaders/index.d.ts +4 -0
- package/dist/src/managers/ObjectManager.d.ts +60 -0
- package/dist/src/managers/index.d.ts +1 -0
- package/dist/src/objects/BaseGroup.d.ts +8 -0
- package/dist/src/objects/BaseMesh.d.ts +8 -0
- package/dist/src/objects/BaseSprite.d.ts +8 -0
- package/dist/src/objects/CircleMesh.d.ts +17 -0
- package/dist/src/objects/ExtrudeMesh.d.ts +17 -0
- package/dist/src/objects/Model.d.ts +17 -0
- package/dist/src/objects/ObjectUtils.d.ts +4 -0
- package/dist/src/objects/PlaneMesh.d.ts +17 -0
- package/dist/src/objects/Poi.d.ts +38 -0
- package/dist/src/objects/ShapeMesh.d.ts +17 -0
- package/dist/src/objects/SphereMesh.d.ts +20 -0
- package/dist/src/objects/Topology.d.ts +64 -0
- package/dist/src/objects/TubeMesh.d.ts +18 -0
- package/dist/src/objects/index.d.ts +13 -0
- package/dist/src/types.d.ts +1 -0
- package/dist/src/viewers/CameraControls.d.ts +19 -0
- package/dist/src/viewers/Info.d.ts +18 -0
- package/dist/src/viewers/RenderPipeline.d.ts +17 -0
- package/dist/src/viewers/RoomEnvironment.d.ts +11 -0
- package/dist/src/viewers/Viewer.d.ts +59 -0
- package/dist/src/viewers/ViewerHelper.d.ts +12 -0
- package/dist/src/viewers/index.d.ts +3 -0
- package/docs/api-interactions.md +64 -0
- package/docs/api-managers.md +54 -0
- package/docs/api-objects.md +65 -0
- package/docs/api-plugins.md +103 -0
- package/docs/api-viewer.md +84 -0
- package/docs/examples-guide.md +48 -0
- package/docs/getting-started.md +126 -0
- package/package.json +60 -0
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import { NodeMaterial as M, MeshBasicNodeMaterial as m, Mesh as a, MathUtils as o } from "three/webgpu";
|
|
2
|
+
import { TilesRenderer as T } from "3d-tiles-renderer";
|
|
3
|
+
import { TilesFadePlugin as R, TileCompressionPlugin as E, UpdateOnChangePlugin as w, ReorientationPlugin as y, XYZTilesPlugin as F } from "3d-tiles-renderer/plugins";
|
|
4
|
+
import { FadeMaterialManager as _ } from "3d-tiles-renderer/src/three/plugins/fade/FadeMaterialManager.js";
|
|
5
|
+
import { wrapFadeMaterial as b } from "3d-tiles-renderer/src/three/plugins/fade/wrapFadeMaterial.js";
|
|
6
|
+
import { uniform as c, Fn as L, screenCoordinate as x, If as d, Discard as u, output as A } from "three/tsl";
|
|
7
|
+
import { reinterpretType as s } from "@takram/three-geospatial";
|
|
8
|
+
import { FnLayout as f } from "@takram/three-geospatial/webgpu";
|
|
9
|
+
const h = /* @__PURE__ */ Symbol("FADE_PARAMS"), p = f({
|
|
10
|
+
name: "bayerDither2x2",
|
|
11
|
+
type: "float",
|
|
12
|
+
inputs: [{ name: "v", type: "vec2" }]
|
|
13
|
+
})(([t]) => (s(t), t.y.mul(3).add(t.x.mul(2)).mod(4))), C = f({
|
|
14
|
+
name: "bayerDither4x4",
|
|
15
|
+
type: "float",
|
|
16
|
+
inputs: [{ name: "v", type: "vec2" }]
|
|
17
|
+
})(([t]) => {
|
|
18
|
+
s(t);
|
|
19
|
+
const e = t.mod(2), i = t.mod(4).mul(0.5).floor();
|
|
20
|
+
return p(e).mul(4).add(p(i));
|
|
21
|
+
}), D = c(0).onObjectUpdate(
|
|
22
|
+
({ material: t }) => t != null ? t?.params?.fadeIn.value ?? 0 : 0
|
|
23
|
+
), O = c(0).onObjectUpdate(
|
|
24
|
+
({ material: t }) => t != null ? t?.params?.fadeOut.value ?? 0 : 0
|
|
25
|
+
), S = L(() => {
|
|
26
|
+
const i = C(x.xy.mod(4).floor()).add(0.5).div(16);
|
|
27
|
+
return d(i.greaterThanEqual(D), () => {
|
|
28
|
+
u();
|
|
29
|
+
}), d(i.lessThan(O), () => {
|
|
30
|
+
u();
|
|
31
|
+
}), A;
|
|
32
|
+
})();
|
|
33
|
+
function U(t) {
|
|
34
|
+
if (s(t), t[h] != null)
|
|
35
|
+
return t[h];
|
|
36
|
+
const e = {
|
|
37
|
+
fadeIn: { value: 0 },
|
|
38
|
+
fadeOut: { value: 0 },
|
|
39
|
+
fadeTexture: { value: null }
|
|
40
|
+
};
|
|
41
|
+
let i = 0;
|
|
42
|
+
return t.params = e, t.defines = {
|
|
43
|
+
get FEATURE_FADE() {
|
|
44
|
+
return i;
|
|
45
|
+
},
|
|
46
|
+
set FEATURE_FADE(n) {
|
|
47
|
+
n !== i && (i = n, t.outputNode = n === 1 ? S : null);
|
|
48
|
+
}
|
|
49
|
+
}, e;
|
|
50
|
+
}
|
|
51
|
+
class H extends _ {
|
|
52
|
+
// HACK: Override "wrapFadeMaterial" to support NodeMaterial:
|
|
53
|
+
prepareMaterial(e) {
|
|
54
|
+
const i = this._fadeParams;
|
|
55
|
+
if (i.has(e))
|
|
56
|
+
return;
|
|
57
|
+
let n;
|
|
58
|
+
e instanceof M ? n = U(e) : n = b(e, e.onBeforeCompile), i.set(e, n);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
class I extends R {
|
|
62
|
+
constructor(...e) {
|
|
63
|
+
super(...e), this._fadeMaterialManager = new H();
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
function g(t, e) {
|
|
67
|
+
const i = t.material;
|
|
68
|
+
if (Array.isArray(i))
|
|
69
|
+
throw new Error("Multiple materials are not supported yet.");
|
|
70
|
+
const n = new e();
|
|
71
|
+
"map" in i && i.map != null && "map" in n && (s(i.map), s(n.map), i.map.flipY = !1, n.map = i.map.clone()), t.material = n, i.dispose();
|
|
72
|
+
}
|
|
73
|
+
class N {
|
|
74
|
+
tiles;
|
|
75
|
+
overrideMaterial;
|
|
76
|
+
constructor(e = m) {
|
|
77
|
+
this.overrideMaterial = e;
|
|
78
|
+
}
|
|
79
|
+
// Plugin method
|
|
80
|
+
init(e) {
|
|
81
|
+
this.tiles = e, e.group.traverse((i) => {
|
|
82
|
+
i instanceof a && g(i, this.overrideMaterial);
|
|
83
|
+
}), e.addEventListener("load-model", this.handleLoadModel), e.addEventListener("dispose-model", this.handleDisposeModel);
|
|
84
|
+
}
|
|
85
|
+
handleLoadModel = ({ scene: e }) => {
|
|
86
|
+
e.traverse((i) => {
|
|
87
|
+
i instanceof a && g(i, this.overrideMaterial);
|
|
88
|
+
});
|
|
89
|
+
};
|
|
90
|
+
// eslint-disable-next-line @typescript-eslint/class-methods-use-this
|
|
91
|
+
handleDisposeModel = ({ scene: e }) => {
|
|
92
|
+
e.traverse((i) => {
|
|
93
|
+
i instanceof a && i.material.dispose();
|
|
94
|
+
});
|
|
95
|
+
};
|
|
96
|
+
// Plugin method
|
|
97
|
+
dispose() {
|
|
98
|
+
this.tiles?.removeEventListener("load-model", this.handleLoadModel), this.tiles?.removeEventListener("dispose-model", this.handleDisposeModel);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
class z {
|
|
102
|
+
tiles;
|
|
103
|
+
tileCompressionPlugin;
|
|
104
|
+
updateOnChangePlugin;
|
|
105
|
+
reorientationPlugin;
|
|
106
|
+
xyzTilesPlugin;
|
|
107
|
+
tilesFadePlugin;
|
|
108
|
+
tileMaterialReplacementPlugin;
|
|
109
|
+
constructor() {
|
|
110
|
+
this.tiles = this._initTilesRenderer(), this.tileCompressionPlugin = this._initTileCompressionPlugin(), this.updateOnChangePlugin = this._initUpdateOnChangePlugin(), this.reorientationPlugin = this._initReorientationPlugin(), this.xyzTilesPlugin = this._initXYZTilesPlugin(), this.tilesFadePlugin = this._initTilesFadePlugin(), this.tileMaterialReplacementPlugin = this._initTileMaterialReplacementPlugin();
|
|
111
|
+
}
|
|
112
|
+
_initTilesRenderer() {
|
|
113
|
+
const e = new T();
|
|
114
|
+
return e.maxDepth = 20, e.errorTarget = 1, e;
|
|
115
|
+
}
|
|
116
|
+
_initTileCompressionPlugin() {
|
|
117
|
+
const e = new E();
|
|
118
|
+
return this.tiles.registerPlugin(e), e;
|
|
119
|
+
}
|
|
120
|
+
_initUpdateOnChangePlugin() {
|
|
121
|
+
const e = new w();
|
|
122
|
+
return this.tiles.registerPlugin(e), e;
|
|
123
|
+
}
|
|
124
|
+
_initReorientationPlugin() {
|
|
125
|
+
const e = new y();
|
|
126
|
+
return this.tiles.registerPlugin(e), e;
|
|
127
|
+
}
|
|
128
|
+
_initXYZTilesPlugin() {
|
|
129
|
+
const e = new F({
|
|
130
|
+
center: !0,
|
|
131
|
+
shape: "ellipsoid",
|
|
132
|
+
url: "https://server.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}"
|
|
133
|
+
});
|
|
134
|
+
return this.tiles.registerPlugin(e), e;
|
|
135
|
+
}
|
|
136
|
+
_initTilesFadePlugin() {
|
|
137
|
+
const e = new I();
|
|
138
|
+
return this.tiles.registerPlugin(e), e;
|
|
139
|
+
}
|
|
140
|
+
_initTileMaterialReplacementPlugin() {
|
|
141
|
+
const e = new N(m);
|
|
142
|
+
return this.tiles.registerPlugin(e), e;
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
class G extends z {
|
|
146
|
+
viewer;
|
|
147
|
+
loedTilesSets = /* @__PURE__ */ new Set();
|
|
148
|
+
constructor(e) {
|
|
149
|
+
super(), this.viewer = e, this.tiles.addEventListener("needs-render", this.render), this.tiles.addEventListener("needs-update", this.render);
|
|
150
|
+
}
|
|
151
|
+
render = () => {
|
|
152
|
+
this.viewer.render();
|
|
153
|
+
};
|
|
154
|
+
beforeRenderHandler = () => {
|
|
155
|
+
this.viewer.camera.updateMatrixWorld(), this.tiles.setCamera(this.viewer.camera), this.tiles.setResolutionFromRenderer(this.viewer.camera, this.viewer.renderer), this.tiles.update();
|
|
156
|
+
};
|
|
157
|
+
enable() {
|
|
158
|
+
return this.viewer.scene.add(this.tiles.group), this.viewer.addEventListener("beforeRender", this.beforeRenderHandler), this;
|
|
159
|
+
}
|
|
160
|
+
disable() {
|
|
161
|
+
return this.viewer.scene.remove(this.tiles.group), this.viewer.removeEventListener("beforeRender", this.beforeRenderHandler), this;
|
|
162
|
+
}
|
|
163
|
+
invalidate(e, i, n) {
|
|
164
|
+
const r = () => {
|
|
165
|
+
const P = o.degToRad(i), v = o.degToRad(e);
|
|
166
|
+
this.reorientationPlugin.transformLatLonHeightToOrigin(P, v, n), this.render(), l();
|
|
167
|
+
}, l = () => {
|
|
168
|
+
this.tiles.removeEventListener("load-root-tileset", r), this.loedTilesSets.delete(r);
|
|
169
|
+
};
|
|
170
|
+
return this.tiles.addEventListener("load-root-tileset", r), this.loedTilesSets.add(r), this.tiles.root && r(), l;
|
|
171
|
+
}
|
|
172
|
+
dispose() {
|
|
173
|
+
this.disable(), this.loedTilesSets.forEach((e) => this.tiles.removeEventListener("load-root-tileset", e)), this.loedTilesSets.clear(), this.tiles.removeEventListener("needs-render", this.render), this.tiles.removeEventListener("needs-update", this.render), this.tiles.dispose();
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
export {
|
|
177
|
+
G as ArcgisTilesRenderer,
|
|
178
|
+
z as Globe
|
|
179
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type NodeMaterial } from 'three/webgpu';
|
|
2
|
+
import type { TilesRenderer } from '3d-tiles-renderer';
|
|
3
|
+
export declare class TileMaterialReplacementPlugin {
|
|
4
|
+
tiles?: TilesRenderer;
|
|
5
|
+
private readonly overrideMaterial;
|
|
6
|
+
constructor(Material?: typeof NodeMaterial);
|
|
7
|
+
init(tiles: TilesRenderer): void;
|
|
8
|
+
private readonly handleLoadModel;
|
|
9
|
+
private readonly handleDisposeModel;
|
|
10
|
+
dispose(): void;
|
|
11
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type Material } from 'three/webgpu';
|
|
2
|
+
import { FadeMaterialManager as FadeMaterialManagerBase } from '3d-tiles-renderer/src/three/plugins/fade/FadeMaterialManager.js';
|
|
3
|
+
export interface FadeParams {
|
|
4
|
+
fadeIn: {
|
|
5
|
+
value: number;
|
|
6
|
+
};
|
|
7
|
+
fadeOut: {
|
|
8
|
+
value: number;
|
|
9
|
+
};
|
|
10
|
+
fadeTexture: {
|
|
11
|
+
value: unknown;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export declare class FadeMaterialManager extends FadeMaterialManagerBase {
|
|
15
|
+
protected _fadeParams: WeakMap<Material, FadeParams>;
|
|
16
|
+
prepareMaterial(material: Material): void;
|
|
17
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { TilesFadePlugin as TilesFadePluginBase } from '3d-tiles-renderer/plugins';
|
|
2
|
+
export declare class TilesFadePlugin extends TilesFadePluginBase {
|
|
3
|
+
protected _fadeMaterialManager: unknown;
|
|
4
|
+
constructor(...args: ConstructorParameters<typeof TilesFadePluginBase>);
|
|
5
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Vector3, type Object3D } from 'three/webgpu';
|
|
2
|
+
import type { Viewer } from 'u-space';
|
|
3
|
+
declare class TrackingControls {
|
|
4
|
+
viewer: Viewer;
|
|
5
|
+
target: Object3D | null;
|
|
6
|
+
offset: Vector3;
|
|
7
|
+
type: 'position' | 'box3';
|
|
8
|
+
constructor(viewer: Viewer);
|
|
9
|
+
_update: () => void;
|
|
10
|
+
enable(): this;
|
|
11
|
+
disable(): this;
|
|
12
|
+
}
|
|
13
|
+
export { TrackingControls };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("three/webgpu"),r=new t.Box3,e=new t.Vector3;class o{viewer;target=null;offset=new t.Vector3;type="position";constructor(i){this.viewer=i}_update=()=>{this.target&&(this.type==="position"?(e.setFromMatrixPosition(this.target.matrixWorld),e.add(this.offset)):this.type==="box3"&&(r.setFromObject(this.target),r.getCenter(e),e.add(this.offset)),this.viewer.controls.moveTo(e.x,e.y,e.z))};enable(){return this.viewer.addEventListener("beforeRender",this._update),this}disable(){return this.viewer.removeEventListener("beforeRender",this._update),this}}exports.TrackingControls=o;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './TrackingControls';
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Box3 as s, Vector3 as r } from "three/webgpu";
|
|
2
|
+
const t = new s(), e = new r();
|
|
3
|
+
class a {
|
|
4
|
+
viewer;
|
|
5
|
+
target = null;
|
|
6
|
+
offset = new r();
|
|
7
|
+
type = "position";
|
|
8
|
+
constructor(i) {
|
|
9
|
+
this.viewer = i;
|
|
10
|
+
}
|
|
11
|
+
_update = () => {
|
|
12
|
+
this.target && (this.type === "position" ? (e.setFromMatrixPosition(this.target.matrixWorld), e.add(this.offset)) : this.type === "box3" && (t.setFromObject(this.target), t.getCenter(e), e.add(this.offset)), this.viewer.controls.moveTo(e.x, e.y, e.z));
|
|
13
|
+
};
|
|
14
|
+
enable() {
|
|
15
|
+
return this.viewer.addEventListener("beforeRender", this._update), this;
|
|
16
|
+
}
|
|
17
|
+
disable() {
|
|
18
|
+
return this.viewer.removeEventListener("beforeRender", this._update), this;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export {
|
|
22
|
+
a as TrackingControls
|
|
23
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type PassNode, Mesh, MeshBasicNodeMaterial, OrthographicCamera, PlaneGeometry, Scene } from 'three/webgpu';
|
|
2
|
+
import type { Viewer } from 'u-space';
|
|
3
|
+
export declare class Watermarker extends Scene {
|
|
4
|
+
viewer: Viewer;
|
|
5
|
+
camera: OrthographicCamera;
|
|
6
|
+
mesh: Mesh<PlaneGeometry, MeshBasicNodeMaterial>;
|
|
7
|
+
overlayPass: PassNode;
|
|
8
|
+
constructor(viewer: Viewer);
|
|
9
|
+
enable(): void;
|
|
10
|
+
disable(): void;
|
|
11
|
+
dispose(): void;
|
|
12
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export declare const META_DATA_FILE_PATH = "/SceneMetadata.json";
|
|
2
|
+
export declare const TOPOLOGY_DATA_FILE_PATH = "/db/topology_paths.json";
|
|
3
|
+
export declare const ANIMATIONS_DATA_FILE_PATH = "/db/animations.json";
|
|
4
|
+
export declare const VISIONS_DATA_FILE_PATH = "/db/model_visions.json";
|
|
5
|
+
export declare const PROPERTIES_DATA_FILE_PATH = "/db/properties.json";
|