bruce-cesium 7.7.7 → 7.7.8

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.
Files changed (49) hide show
  1. package/dist/bruce-cesium.es5.js +2292 -69
  2. package/dist/bruce-cesium.es5.js.map +1 -1
  3. package/dist/bruce-cesium.umd.js +2271 -66
  4. package/dist/bruce-cesium.umd.js.map +1 -1
  5. package/dist/lib/bruce-cesium.js +6 -1
  6. package/dist/lib/bruce-cesium.js.map +1 -1
  7. package/dist/lib/rendering/entity-render-engine-model3d.js +2 -2
  8. package/dist/lib/rendering/entity-render-engine-model3d.js.map +1 -1
  9. package/dist/lib/rendering/entity-render-engine-polygon.js +5 -4
  10. package/dist/lib/rendering/entity-render-engine-polygon.js.map +1 -1
  11. package/dist/lib/rendering/entity-render-engine-polyline.js +2 -1
  12. package/dist/lib/rendering/entity-render-engine-polyline.js.map +1 -1
  13. package/dist/lib/rendering/render-managers/common/entity-simulation.js +1 -1
  14. package/dist/lib/rendering/render-managers/common/entity-simulation.js.map +1 -1
  15. package/dist/lib/rendering/tileset-render-engine.js +47 -14
  16. package/dist/lib/rendering/tileset-render-engine.js.map +1 -1
  17. package/dist/lib/rendering/view-render-engine.js +30 -24
  18. package/dist/lib/rendering/view-render-engine.js.map +1 -1
  19. package/dist/lib/rendering/visuals-register.js +93 -8
  20. package/dist/lib/rendering/visuals-register.js.map +1 -1
  21. package/dist/lib/rendering/xgrids-render-engine.js +20 -3
  22. package/dist/lib/rendering/xgrids-render-engine.js.map +1 -1
  23. package/dist/lib/utils/cesium-map-grid.js +807 -0
  24. package/dist/lib/utils/cesium-map-grid.js.map +1 -0
  25. package/dist/lib/utils/device-profile.js +302 -0
  26. package/dist/lib/utils/device-profile.js.map +1 -0
  27. package/dist/lib/utils/gltf-generator.js +307 -0
  28. package/dist/lib/utils/gltf-generator.js.map +1 -0
  29. package/dist/lib/utils/gltf-gizmo.js +136 -0
  30. package/dist/lib/utils/gltf-gizmo.js.map +1 -0
  31. package/dist/lib/utils/view-utils.js +9 -0
  32. package/dist/lib/utils/view-utils.js.map +1 -1
  33. package/dist/lib/viewer/camera-controls.js +544 -0
  34. package/dist/lib/viewer/camera-controls.js.map +1 -0
  35. package/dist/lib/viewer/viewer-utils.js +9 -1
  36. package/dist/lib/viewer/viewer-utils.js.map +1 -1
  37. package/dist/types/bruce-cesium.d.ts +6 -1
  38. package/dist/types/rendering/tileset-render-engine.d.ts +10 -2
  39. package/dist/types/rendering/view-render-engine.d.ts +4 -0
  40. package/dist/types/rendering/visuals-register.d.ts +4 -0
  41. package/dist/types/rendering/xgrids-render-engine.d.ts +2 -0
  42. package/dist/types/utils/cesium-map-grid.d.ts +23 -0
  43. package/dist/types/utils/device-profile.d.ts +84 -0
  44. package/dist/types/utils/gltf-generator.d.ts +104 -0
  45. package/dist/types/utils/gltf-gizmo.d.ts +18 -0
  46. package/dist/types/utils/view-utils.d.ts +4 -0
  47. package/dist/types/viewer/camera-controls.d.ts +19 -0
  48. package/dist/types/viewer/viewer-utils.d.ts +1 -0
  49. package/package.json +3 -2
@@ -0,0 +1,307 @@
1
+ "use strict";
2
+ // Builds simple meshes into binary glTF in code. Nothing here imports Cesium, so it can move to bruce-models as is.
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.GltfGenerator = void 0;
5
+ const GLB_MAGIC = 0x46546C67;
6
+ const GLB_CHUNK_JSON = 0x4E4F534A;
7
+ const GLB_CHUNK_BIN = 0x004E4942;
8
+ const GL_ARRAY_BUFFER = 34962;
9
+ const GL_ELEMENT_ARRAY_BUFFER = 34963;
10
+ const GL_UNSIGNED_SHORT = 5123;
11
+ const GL_UNSIGNED_INT = 5125;
12
+ const GL_FLOAT = 5126;
13
+ const GL_TRIANGLES = 4;
14
+ /**
15
+ * Writes meshes as binary glTF (GLB), for models simple enough to describe in code rather than ship as files.
16
+ */
17
+ var GltfGenerator;
18
+ (function (GltfGenerator) {
19
+ /**
20
+ * Vertices and triangles collected by the shape functions, one material's worth.
21
+ */
22
+ class Mesh {
23
+ constructor() {
24
+ this.positions = [];
25
+ this.normals = [];
26
+ this.indices = [];
27
+ }
28
+ AddVertex(position, normal) {
29
+ this.positions.push(position[0], position[1], position[2]);
30
+ this.normals.push(normal[0], normal[1], normal[2]);
31
+ return this.positions.length / 3 - 1;
32
+ }
33
+ /**
34
+ * Adds a triangle wound so its front faces along normal, whichever order the corners come in.
35
+ * Per corner normals smooth it; without them every corner takes the face normal.
36
+ */
37
+ AddTriangle(a, b, c, normal, corners) {
38
+ var _a, _b, _c;
39
+ const ia = this.AddVertex(a, (_a = corners === null || corners === void 0 ? void 0 : corners[0]) !== null && _a !== void 0 ? _a : normal);
40
+ const ib = this.AddVertex(b, (_b = corners === null || corners === void 0 ? void 0 : corners[1]) !== null && _b !== void 0 ? _b : normal);
41
+ const ic = this.AddVertex(c, (_c = corners === null || corners === void 0 ? void 0 : corners[2]) !== null && _c !== void 0 ? _c : normal);
42
+ if (Dot(Cross(Sub(b, a), Sub(c, a)), normal) >= 0) {
43
+ this.indices.push(ia, ib, ic);
44
+ }
45
+ else {
46
+ this.indices.push(ia, ic, ib);
47
+ }
48
+ }
49
+ /**
50
+ * Joins three added vertices into a triangle facing along normal, so shapes can share corners.
51
+ */
52
+ AddIndexedTriangle(ia, ib, ic, normal) {
53
+ const at = (i) => [this.positions[i * 3], this.positions[i * 3 + 1], this.positions[i * 3 + 2]];
54
+ const a = at(ia);
55
+ if (Dot(Cross(Sub(at(ib), a), Sub(at(ic), a)), normal) >= 0) {
56
+ this.indices.push(ia, ib, ic);
57
+ }
58
+ else {
59
+ this.indices.push(ia, ic, ib);
60
+ }
61
+ }
62
+ get VertexCount() {
63
+ return this.positions.length / 3;
64
+ }
65
+ }
66
+ GltfGenerator.Mesh = Mesh;
67
+ function Add(a, b) {
68
+ return [a[0] + b[0], a[1] + b[1], a[2] + b[2]];
69
+ }
70
+ GltfGenerator.Add = Add;
71
+ function Sub(a, b) {
72
+ return [a[0] - b[0], a[1] - b[1], a[2] - b[2]];
73
+ }
74
+ GltfGenerator.Sub = Sub;
75
+ function Scale(a, s) {
76
+ return [a[0] * s, a[1] * s, a[2] * s];
77
+ }
78
+ GltfGenerator.Scale = Scale;
79
+ function Dot(a, b) {
80
+ return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];
81
+ }
82
+ GltfGenerator.Dot = Dot;
83
+ function Cross(a, b) {
84
+ return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];
85
+ }
86
+ GltfGenerator.Cross = Cross;
87
+ function Normalize(a) {
88
+ const length = Math.hypot(a[0], a[1], a[2]);
89
+ return length ? Scale(a, 1 / length) : [0, 0, 0];
90
+ }
91
+ GltfGenerator.Normalize = Normalize;
92
+ /*
93
+ * Two unit vectors at right angles to an axis and each other, the first along start where one is given.
94
+ */
95
+ function perpendiculars(axis, start) {
96
+ const n = Normalize(axis);
97
+ let u = start ? Sub(start, Scale(n, Dot(start, n))) : null;
98
+ if (!u || Math.hypot(u[0], u[1], u[2]) < 1e-9) {
99
+ u = Math.abs(n[0]) < 0.9 ? Cross(n, [1, 0, 0]) : Cross(n, [0, 1, 0]);
100
+ }
101
+ u = Normalize(u);
102
+ return [u, Cross(n, u)];
103
+ }
104
+ /*
105
+ * The point on a circle around centre at a given turn, in the plane the two perpendiculars span.
106
+ */
107
+ function onCircle(centre, u, v, radius, angle) {
108
+ return Add(centre, Add(Scale(u, Math.cos(angle) * radius), Scale(v, Math.sin(angle) * radius)));
109
+ }
110
+ /**
111
+ * Adds a flat disc facing along normal.
112
+ */
113
+ function AddDisc(mesh, params) {
114
+ const { centre, radius, sides } = params;
115
+ const normal = Normalize(params.normal);
116
+ const [u, v] = perpendiculars(normal, params.start);
117
+ for (let i = 0; i < sides; i++) {
118
+ const a = onCircle(centre, u, v, radius, i / sides * Math.PI * 2);
119
+ const b = onCircle(centre, u, v, radius, (i + 1) / sides * Math.PI * 2);
120
+ mesh.AddTriangle(centre, a, b, normal);
121
+ }
122
+ }
123
+ GltfGenerator.AddDisc = AddDisc;
124
+ /**
125
+ * Adds a smooth sided cylinder between two points, closed at the start by default.
126
+ */
127
+ function AddCylinder(mesh, params) {
128
+ const { start, end, radius, sides } = params;
129
+ const axis = Normalize(Sub(end, start));
130
+ const [u, v] = perpendiculars(axis);
131
+ for (let i = 0; i < sides; i++) {
132
+ const angleA = i / sides * Math.PI * 2;
133
+ const angleB = (i + 1) / sides * Math.PI * 2;
134
+ const outA = onCircle([0, 0, 0], u, v, 1, angleA);
135
+ const outB = onCircle([0, 0, 0], u, v, 1, angleB);
136
+ const a0 = onCircle(start, u, v, radius, angleA);
137
+ const b0 = onCircle(start, u, v, radius, angleB);
138
+ const a1 = onCircle(end, u, v, radius, angleA);
139
+ const b1 = onCircle(end, u, v, radius, angleB);
140
+ const face = Normalize(Add(outA, outB));
141
+ mesh.AddTriangle(a0, b0, b1, face, [outA, outB, outB]);
142
+ mesh.AddTriangle(a0, b1, a1, face, [outA, outB, outA]);
143
+ }
144
+ if (params.capStart != false) {
145
+ AddDisc(mesh, { centre: start, normal: Scale(axis, -1), radius, sides });
146
+ }
147
+ if (params.capEnd) {
148
+ AddDisc(mesh, { centre: end, normal: axis, radius, sides });
149
+ }
150
+ }
151
+ GltfGenerator.AddCylinder = AddCylinder;
152
+ /**
153
+ * Adds a cone from a base circle to a tip, closed at the base by default.
154
+ */
155
+ function AddCone(mesh, params) {
156
+ const { base, tip, radius, sides } = params;
157
+ const toTip = Sub(tip, base);
158
+ const height = Math.hypot(toTip[0], toTip[1], toTip[2]);
159
+ const axis = Normalize(toTip);
160
+ const [u, v] = perpendiculars(axis, params.start);
161
+ // A side normal leans toward the tip by the slope of the side.
162
+ const sideNormal = (angle) => Normalize(Add(Scale(onCircle([0, 0, 0], u, v, 1, angle), height), Scale(axis, radius)));
163
+ for (let i = 0; i < sides; i++) {
164
+ const angleA = i / sides * Math.PI * 2;
165
+ const angleB = (i + 1) / sides * Math.PI * 2;
166
+ const a = onCircle(base, u, v, radius, angleA);
167
+ const b = onCircle(base, u, v, radius, angleB);
168
+ const face = sideNormal((angleA + angleB) / 2);
169
+ mesh.AddTriangle(a, b, tip, face, params.faceted ? undefined : [sideNormal(angleA), sideNormal(angleB), face]);
170
+ }
171
+ if (params.cap != false) {
172
+ AddDisc(mesh, { centre: base, normal: Scale(axis, -1), radius, sides, start: params.start });
173
+ }
174
+ }
175
+ GltfGenerator.AddCone = AddCone;
176
+ /**
177
+ * Adds a smooth ring of tube around an axis through centre.
178
+ */
179
+ function AddTorus(mesh, params) {
180
+ const { centre, radius, tube, segments, sides } = params;
181
+ const axis = Normalize(params.axis);
182
+ const [u, v] = perpendiculars(axis);
183
+ // A grid of shared corners, wrapping round both ways.
184
+ const first = mesh.VertexCount;
185
+ for (let i = 0; i < segments; i++) {
186
+ const out = onCircle([0, 0, 0], u, v, 1, i / segments * Math.PI * 2);
187
+ for (let j = 0; j < sides; j++) {
188
+ const turn = j / sides * Math.PI * 2;
189
+ const normal = Add(Scale(out, Math.cos(turn)), Scale(axis, Math.sin(turn)));
190
+ mesh.AddVertex(Add(Add(centre, Scale(out, radius)), Scale(normal, tube)), normal);
191
+ }
192
+ }
193
+ const at = (i, j) => first + (i % segments) * sides + (j % sides);
194
+ const normalAt = (i) => [mesh.normals[i * 3], mesh.normals[i * 3 + 1], mesh.normals[i * 3 + 2]];
195
+ for (let i = 0; i < segments; i++) {
196
+ for (let j = 0; j < sides; j++) {
197
+ const quad = [at(i, j), at(i + 1, j), at(i + 1, j + 1), at(i, j + 1)];
198
+ const normal = Normalize(Add(normalAt(quad[0]), normalAt(quad[2])));
199
+ mesh.AddIndexedTriangle(quad[0], quad[1], quad[2], normal);
200
+ mesh.AddIndexedTriangle(quad[0], quad[2], quad[3], normal);
201
+ }
202
+ }
203
+ }
204
+ GltfGenerator.AddTorus = AddTorus;
205
+ /**
206
+ * Adds a flat convex outline, given in a plane's own across and up coordinates, facing along normal.
207
+ */
208
+ function AddConvexOutline(mesh, params) {
209
+ const { points, origin, across, up } = params;
210
+ const normal = Normalize(params.normal);
211
+ const at = ([x, y]) => Add(origin, Add(Scale(across, x), Scale(up, y)));
212
+ for (let i = 1; i < points.length - 1; i++) {
213
+ mesh.AddTriangle(at(points[0]), at(points[i]), at(points[i + 1]), normal);
214
+ }
215
+ }
216
+ GltfGenerator.AddConvexOutline = AddConvexOutline;
217
+ function align4(length) {
218
+ return Math.ceil(length / 4) * 4;
219
+ }
220
+ function bounds(positions) {
221
+ const min = [Infinity, Infinity, Infinity];
222
+ const max = [-Infinity, -Infinity, -Infinity];
223
+ for (let i = 0; i < positions.length; i++) {
224
+ const k = i % 3;
225
+ min[k] = Math.min(min[k], positions[i]);
226
+ max[k] = Math.max(max[k], positions[i]);
227
+ }
228
+ return { min, max };
229
+ }
230
+ /**
231
+ * Packs a mesh into GLB bytes, under a chain of node matrices (outermost first) when given.
232
+ */
233
+ function ToGlb(params) {
234
+ var _a, _b, _c;
235
+ const { mesh, material } = params;
236
+ const count = mesh.VertexCount;
237
+ const wide = count > 0xFFFF;
238
+ const IndexArray = wide ? Uint32Array : Uint16Array;
239
+ const indexLength = mesh.indices.length * IndexArray.BYTES_PER_ELEMENT;
240
+ const indexBytes = align4(indexLength);
241
+ const vertexBytes = count * 12;
242
+ const bin = new ArrayBuffer(indexBytes + vertexBytes * 2);
243
+ new IndexArray(bin, 0, mesh.indices.length).set(mesh.indices);
244
+ new Float32Array(bin, indexBytes, count * 3).set(mesh.positions);
245
+ new Float32Array(bin, indexBytes + vertexBytes, count * 3).set(mesh.normals);
246
+ // The mesh node is last, each matrix node holding the next.
247
+ const matrices = (_a = params.matrices) !== null && _a !== void 0 ? _a : [];
248
+ const nodes = matrices.map((matrix, i) => ({ matrix, children: [i + 1] }));
249
+ nodes.push({ mesh: 0 });
250
+ const json = {
251
+ asset: { version: "2.0", generator: "bruce-cesium GltfGenerator" },
252
+ scene: 0,
253
+ scenes: [{ nodes: [0] }],
254
+ nodes,
255
+ meshes: [{ primitives: [{ attributes: { POSITION: 1, NORMAL: 2 }, indices: 0, material: 0, mode: GL_TRIANGLES }] }],
256
+ materials: [{
257
+ pbrMetallicRoughness: {
258
+ baseColorFactor: material.color,
259
+ metallicFactor: (_b = material.metallic) !== null && _b !== void 0 ? _b : 0,
260
+ roughnessFactor: (_c = material.roughness) !== null && _c !== void 0 ? _c : 1
261
+ },
262
+ doubleSided: Boolean(material.doubleSided)
263
+ }],
264
+ buffers: [{ byteLength: bin.byteLength }],
265
+ bufferViews: [
266
+ { buffer: 0, byteOffset: 0, byteLength: indexLength, target: GL_ELEMENT_ARRAY_BUFFER },
267
+ { buffer: 0, byteOffset: indexBytes, byteLength: vertexBytes, target: GL_ARRAY_BUFFER },
268
+ { buffer: 0, byteOffset: indexBytes + vertexBytes, byteLength: vertexBytes, target: GL_ARRAY_BUFFER }
269
+ ],
270
+ accessors: [
271
+ { bufferView: 0, componentType: wide ? GL_UNSIGNED_INT : GL_UNSIGNED_SHORT, count: mesh.indices.length, type: "SCALAR" },
272
+ { bufferView: 1, componentType: GL_FLOAT, count, type: "VEC3", ...bounds(mesh.positions) },
273
+ { bufferView: 2, componentType: GL_FLOAT, count, type: "VEC3" }
274
+ ]
275
+ };
276
+ let text = JSON.stringify(json);
277
+ text += " ".repeat(align4(text.length) - text.length);
278
+ const jsonBytes = new TextEncoder().encode(text);
279
+ const glb = new Uint8Array(20 + jsonBytes.length + 8 + bin.byteLength);
280
+ const view = new DataView(glb.buffer);
281
+ view.setUint32(0, GLB_MAGIC, true);
282
+ view.setUint32(4, 2, true);
283
+ view.setUint32(8, glb.length, true);
284
+ view.setUint32(12, jsonBytes.length, true);
285
+ view.setUint32(16, GLB_CHUNK_JSON, true);
286
+ glb.set(jsonBytes, 20);
287
+ const binStart = 20 + jsonBytes.length;
288
+ view.setUint32(binStart, bin.byteLength, true);
289
+ view.setUint32(binStart + 4, GLB_CHUNK_BIN, true);
290
+ glb.set(new Uint8Array(bin), binStart + 8);
291
+ return glb;
292
+ }
293
+ GltfGenerator.ToGlb = ToGlb;
294
+ /**
295
+ * Packs a mesh into a GLB data URI, which loads as a model url with nothing to fetch.
296
+ */
297
+ function ToDataUri(params) {
298
+ const glb = ToGlb(params);
299
+ let binary = "";
300
+ for (let i = 0; i < glb.length; i += 0x8000) {
301
+ binary += String.fromCharCode.apply(null, glb.subarray(i, i + 0x8000));
302
+ }
303
+ return "data:model/gltf-binary;base64," + btoa(binary);
304
+ }
305
+ GltfGenerator.ToDataUri = ToDataUri;
306
+ })(GltfGenerator = exports.GltfGenerator || (exports.GltfGenerator = {}));
307
+ //# sourceMappingURL=gltf-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gltf-generator.js","sourceRoot":"","sources":["../../../src/utils/gltf-generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GltfGizmo = void 0;
4
+ const gltf_generator_1 = require("./gltf-generator");
5
+ // Sides on an arrow's shaft and cone.
6
+ const ARROW_SIDES = 16;
7
+ const SHAFT_RADIUS = 2.4;
8
+ const SHAFT_LENGTH = 265;
9
+ const CONE_RADIUS = 10;
10
+ const CONE_BASE = 264.6;
11
+ const CONE_TIP = 306.3;
12
+ const RING_RADIUS = 210;
13
+ const RING_TUBE = 1;
14
+ const RING_SEGMENTS = 60;
15
+ const RING_SIDES = 10;
16
+ // The ring's two arrowheads sit either side of its 45 degree mark, each pointing back toward it.
17
+ const RING_MARK_ANGLES = [137.64, -47.64];
18
+ const RING_MARK_LENGTH = 5.82;
19
+ const RING_MARK_CENTRE = 209.8;
20
+ const RING_MARK_RADIUS = 8.5;
21
+ const RING_MARK_SIDES = 8;
22
+ // Turns the original models' Y up node into the Z up frame the pieces were drawn in.
23
+ const ROOT_MATRIX = [1, 0, 0, 0, 0, 0, -1, 0, 0, 1, 0, 0, 0, 0, 0, 1];
24
+ // Points a piece drawn along +Z down another axis, as the original models' mesh nodes did.
25
+ const TO_X_MATRIX = [0, 0, -1, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1];
26
+ const TO_Y_ARROW_MATRIX = [0, 0, -1, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1];
27
+ const TO_Y_RING_MATRIX = [1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1];
28
+ const RED = { color: [1, 0, 0, 1] };
29
+ const GREEN = { color: [0.2196, 0.5216, 0.1647, 1] };
30
+ const BLUE = { color: [0.1608, 0.3843, 0.698, 1] };
31
+ const LETTER_X = {
32
+ across: [0, 1, 0],
33
+ facing: [-1, 0, 0],
34
+ strokes: [
35
+ [[16.4, 318.6], [16.4, 324.2], [-19.4, 349.8], [-19.4, 343.9]],
36
+ [[-19.4, 316.9], [-19.4, 322.6], [16.4, 348.8], [16.4, 343.6]]
37
+ ]
38
+ };
39
+ const LETTER_Y = {
40
+ across: [0, 1, 0],
41
+ facing: [-1, 0, 0],
42
+ strokes: [
43
+ [[-1.9, 320.1], [2.8, 320.1], [2.8, 337.7], [-1.9, 337.7]],
44
+ [[-1.9, 335.3], [2.8, 335.3], [-10.7, 355.9], [-16.2, 355.9]],
45
+ [[-1.9, 335.3], [2.8, 335.3], [16.6, 355.9], [10.9, 355.9]]
46
+ ]
47
+ };
48
+ const LETTER_Z = {
49
+ across: [1, 0, 0],
50
+ facing: [0, -1, 0],
51
+ strokes: [
52
+ [[-14.6, 319], [13.7, 319], [13.7, 323.3], [-14.6, 323.3]],
53
+ [[-14.6, 323.3], [-9.1, 323.3], [13.1, 350.6], [7.5, 350.6]],
54
+ [[-12.5, 350.6], [13.1, 350.6], [13.1, 354.8], [-12.5, 354.8]]
55
+ ]
56
+ };
57
+ /*
58
+ * An axis arrow along +Z: shaft, cone and the axis letter past the tip.
59
+ */
60
+ function arrowMesh(letter) {
61
+ const mesh = new gltf_generator_1.GltfGenerator.Mesh();
62
+ gltf_generator_1.GltfGenerator.AddCylinder(mesh, { start: [0, 0, 0], end: [0, 0, SHAFT_LENGTH], radius: SHAFT_RADIUS, sides: ARROW_SIDES });
63
+ gltf_generator_1.GltfGenerator.AddCone(mesh, { base: [0, 0, CONE_BASE], tip: [0, 0, CONE_TIP], radius: CONE_RADIUS, sides: ARROW_SIDES });
64
+ for (const stroke of letter.strokes) {
65
+ gltf_generator_1.GltfGenerator.AddConvexOutline(mesh, { points: stroke, origin: [0, 0, 0], across: letter.across, up: [0, 0, 1], normal: letter.facing });
66
+ }
67
+ return mesh;
68
+ }
69
+ function onRing(degrees, radius) {
70
+ const angle = degrees * Math.PI / 180;
71
+ return [Math.cos(angle) * radius, Math.sin(angle) * radius, 0];
72
+ }
73
+ /*
74
+ * A rotation ring about +Z with its two arrowheads.
75
+ */
76
+ function ringMesh() {
77
+ const mesh = new gltf_generator_1.GltfGenerator.Mesh();
78
+ gltf_generator_1.GltfGenerator.AddTorus(mesh, {
79
+ centre: [0, 0, 0],
80
+ axis: [0, 0, 1],
81
+ radius: RING_RADIUS,
82
+ tube: RING_TUBE,
83
+ segments: RING_SEGMENTS,
84
+ sides: RING_SIDES
85
+ });
86
+ for (const degrees of RING_MARK_ANGLES) {
87
+ const toward = degrees > 45 ? -RING_MARK_LENGTH : RING_MARK_LENGTH;
88
+ gltf_generator_1.GltfGenerator.AddCone(mesh, {
89
+ base: onRing(degrees, RING_MARK_CENTRE),
90
+ tip: onRing(degrees + toward, RING_MARK_CENTRE),
91
+ radius: RING_MARK_RADIUS,
92
+ sides: RING_MARK_SIDES,
93
+ faceted: true,
94
+ // A rim corner points at the ring's centre, as the original arrowheads' did.
95
+ start: onRing(degrees, 1)
96
+ });
97
+ }
98
+ return mesh;
99
+ }
100
+ /**
101
+ * The transform gizmo's pieces as GLB data URIs, built on first use so there are no model files to host.
102
+ * Sizes, colours and frames match the models they replaced (Navigator's public/res/gizmo), scales included.
103
+ */
104
+ var GltfGizmo;
105
+ (function (GltfGizmo) {
106
+ let EPiece;
107
+ (function (EPiece) {
108
+ EPiece["X"] = "x";
109
+ EPiece["Y"] = "y";
110
+ EPiece["Z"] = "z";
111
+ EPiece["XRotation"] = "x-rot";
112
+ EPiece["YRotation"] = "y-rot";
113
+ EPiece["ZRotation"] = "z-rot";
114
+ })(EPiece = GltfGizmo.EPiece || (GltfGizmo.EPiece = {}));
115
+ const BUILDERS = {
116
+ [EPiece.X]: () => gltf_generator_1.GltfGenerator.ToDataUri({ mesh: arrowMesh(LETTER_X), material: RED, matrices: [ROOT_MATRIX, TO_X_MATRIX] }),
117
+ [EPiece.Y]: () => gltf_generator_1.GltfGenerator.ToDataUri({ mesh: arrowMesh(LETTER_Y), material: GREEN, matrices: [ROOT_MATRIX, TO_Y_ARROW_MATRIX] }),
118
+ [EPiece.Z]: () => gltf_generator_1.GltfGenerator.ToDataUri({ mesh: arrowMesh(LETTER_Z), material: BLUE, matrices: [ROOT_MATRIX] }),
119
+ [EPiece.XRotation]: () => gltf_generator_1.GltfGenerator.ToDataUri({ mesh: ringMesh(), material: RED, matrices: [ROOT_MATRIX, TO_X_MATRIX] }),
120
+ [EPiece.YRotation]: () => gltf_generator_1.GltfGenerator.ToDataUri({ mesh: ringMesh(), material: GREEN, matrices: [ROOT_MATRIX, TO_Y_RING_MATRIX] }),
121
+ [EPiece.ZRotation]: () => gltf_generator_1.GltfGenerator.ToDataUri({ mesh: ringMesh(), material: BLUE, matrices: [ROOT_MATRIX] })
122
+ };
123
+ // Built pieces, so every gizmo shares one string per piece and CesiumJS's model cache sees the same url.
124
+ const built = {};
125
+ /**
126
+ * Returns a piece's model as a data URI, to pass wherever a model url is taken.
127
+ */
128
+ function GetUri(piece) {
129
+ if (!built[piece]) {
130
+ built[piece] = BUILDERS[piece]();
131
+ }
132
+ return built[piece];
133
+ }
134
+ GltfGizmo.GetUri = GetUri;
135
+ })(GltfGizmo = exports.GltfGizmo || (exports.GltfGizmo = {}));
136
+ //# sourceMappingURL=gltf-gizmo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gltf-gizmo.js","sourceRoot":"","sources":["../../../src/utils/gltf-gizmo.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ exports.ViewUtils = exports.MAX_COMPENSATED_LIGHT_INTENSITY = exports.LIGHT_INTE
4
4
  const bruce_models_1 = require("bruce-models");
5
5
  const Cesium = require("cesium");
6
6
  const cesium_utils_1 = require("../internal/cesium-utils");
7
+ const camera_controls_1 = require("../viewer/camera-controls");
7
8
  exports.CESIUM_INSPECTOR_KEY = "_nextspace_inspector";
8
9
  exports.CESIUM_TIMELINE_KEY = "_nextspace_timeline";
9
10
  exports.CESIUM_TIMELINE_LIVE_KEY = "_nextspace_timeline_live";
@@ -481,6 +482,13 @@ var ViewUtils;
481
482
  return overriddenImageBasedLighting || null;
482
483
  }
483
484
  ViewUtils.GetDefaultImageBasedLighting = GetDefaultImageBasedLighting;
485
+ /**
486
+ * Shadow mode for the Entity graphics this library draws, following the scene's shadow switch.
487
+ */
488
+ function GetEntityShadowMode(viewer) {
489
+ return (viewer === null || viewer === void 0 ? void 0 : viewer.shadows) ? Cesium.ShadowMode.ENABLED : Cesium.ShadowMode.DISABLED;
490
+ }
491
+ ViewUtils.GetEntityShadowMode = GetEntityShadowMode;
484
492
  function EngineShadesModelsDarker() {
485
493
  return typeof Cesium.DynamicEnvironmentMapManager !== "undefined";
486
494
  }
@@ -552,6 +560,7 @@ var ViewUtils;
552
560
  viewer[exports.CESIUM_MODEL_SPACE_KEY] = modelSpace;
553
561
  // Reload globe since we display it differently between the two modes.
554
562
  SetGlobeDetails({ viewer });
563
+ camera_controls_1.CameraControls.SetModelSpace(viewer, modelSpace ? () => GetModelSpaceFrame(viewer) : null);
555
564
  }
556
565
  ViewUtils.SetModelSpace = SetModelSpace;
557
566
  function GetModelSpace(viewer) {
@@ -1 +1 @@
1
- {"version":3,"file":"view-utils.js","sourceRoot":"","sources":["../../../src/utils/view-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"view-utils.js","sourceRoot":"","sources":["../../../src/utils/view-utils.ts"],"names":[],"mappings":"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"}