bruce-cesium 3.0.3 → 3.0.4

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.
@@ -5,8 +5,88 @@ var bruce_models_1 = require("bruce-models");
5
5
  var Cesium = require("cesium");
6
6
  var entity_utils_1 = require("../utils/entity-utils");
7
7
  var view_utils_1 = require("../utils/view-utils");
8
- // Area in m^2 for 3D model visibility check.
9
- var MODEL_SIZE_TOLERANCE = 1000;
8
+ var DEBUG_MODE = false;
9
+ var MODEL_MIN_RADIUS = 1;
10
+ var POINT_MIN_RADIUS = 15;
11
+ // If a shape has more than this amount of points, we'll avoid checking it because it will take too long.
12
+ // We will put responsibility on the bookmark creator to view shapes they can see.
13
+ var DO_NOT_CULL_AT_LEN_POINTS = 5000;
14
+ // Returns terrain height at a given position.
15
+ // This will cache the results based on the terrain provider and position.
16
+ var _terrainCache = new bruce_models_1.LRUCache(1000);
17
+ // Positions within this tolerance from each-other will be re-used.
18
+ var TERRAIN_HEIGHT_TOLERANCE = 500;
19
+ var getTerrainOffset = function (viewer, pos3d) {
20
+ var terrain = view_utils_1.ViewUtils.GatherTerrainTile({
21
+ viewer: viewer
22
+ }).terrain;
23
+ if (!terrain || terrain.tilesetId == bruce_models_1.ProjectViewTile.EDefaultTerrain.FlatTerrain) {
24
+ return 0;
25
+ }
26
+ var terrainId = terrain.tilesetId;
27
+ // Check for existing values within TOLERANCE distance.
28
+ var keys = Array.from(_terrainCache.Entries());
29
+ for (var i = 0; i < keys.length; i++) {
30
+ var _a = keys[i], key_1 = _a[0], offset_1 = _a[1];
31
+ var _b = key_1.split("_"), terrainId2 = _b[0], x = _b[1], y = _b[2], z = _b[3];
32
+ if (terrainId2 != terrainId) {
33
+ continue;
34
+ }
35
+ var pos3d2 = new Cesium.Cartesian3(parseFloat(x), parseFloat(y), parseFloat(z));
36
+ var distance = Cesium.Cartesian3.distance(pos3d, pos3d2);
37
+ if (distance < TERRAIN_HEIGHT_TOLERANCE) {
38
+ return offset_1;
39
+ }
40
+ }
41
+ var key = terrainId + "_" + pos3d.x + "_" + pos3d.y + "_" + pos3d.z;
42
+ var offset = _terrainCache.Get(key);
43
+ if (offset == null) {
44
+ var carto = Cesium.Cartographic.fromCartesian(pos3d);
45
+ var height = 0;
46
+ try {
47
+ height = viewer.scene.globe.getHeight(carto);
48
+ }
49
+ catch (e) {
50
+ if (DEBUG_MODE) {
51
+ console.warn("Failed to get terrain height.", e);
52
+ }
53
+ // Likely out of rendered area.
54
+ // This means it's not our problem since the user isn't looking there :)
55
+ }
56
+ offset = height;
57
+ _terrainCache.Set(key, offset);
58
+ }
59
+ return offset;
60
+ };
61
+ /**
62
+ * Converts given pos3d into a an absolute position.
63
+ * This means either setting it to terrain height or adding the height offset.
64
+ * @param viewer
65
+ * @param heightRef
66
+ * @param pos3d
67
+ * @returns
68
+ */
69
+ var adjustPos3d = function (viewer, heightRef, pos3d) {
70
+ if (heightRef == Cesium.HeightReference.NONE) {
71
+ return pos3d;
72
+ }
73
+ var offset = getTerrainOffset(viewer, pos3d);
74
+ if (!offset) {
75
+ return pos3d;
76
+ }
77
+ var carto = Cesium.Cartographic.fromCartesian(pos3d);
78
+ if (heightRef == Cesium.HeightReference.CLAMP_TO_GROUND) {
79
+ carto.height = offset;
80
+ }
81
+ else {
82
+ carto.height += offset;
83
+ }
84
+ var newPos3d = Cesium.Cartographic.toCartesian(carto);
85
+ if (!(newPos3d === null || newPos3d === void 0 ? void 0 : newPos3d.x)) {
86
+ return pos3d;
87
+ }
88
+ return newPos3d;
89
+ };
10
90
  function getValue(viewer, obj) {
11
91
  if (obj === null || obj === void 0 ? void 0 : obj.getValue) {
12
92
  return obj.getValue(viewer.scene.lastRenderTime);
@@ -22,7 +102,7 @@ function isFlatTerrain(viewer) {
22
102
  viewer: viewer
23
103
  }).terrain) === null || _a === void 0 ? void 0 : _a.tilesetId) == bruce_models_1.ProjectViewTile.EDefaultTerrain.FlatTerrain;
24
104
  }
25
- var boundingSphereCache = {};
105
+ var boundingSphereCache = new bruce_models_1.LRUCache(100000);
26
106
  function getPositionsFromEntity(viewer, entity) {
27
107
  var positions = [];
28
108
  var heightRef;
@@ -31,59 +111,94 @@ function getPositionsFromEntity(viewer, entity) {
31
111
  if (!(pos3d === null || pos3d === void 0 ? void 0 : pos3d.x)) {
32
112
  return null;
33
113
  }
34
- positions.push(pos3d);
35
114
  heightRef = getValue(viewer, entity.billboard.heightReference);
115
+ pos3d = adjustPos3d(viewer, heightRef, pos3d);
116
+ positions.push(pos3d);
36
117
  }
37
118
  else if (entity.polyline) {
38
- positions = getValue(viewer, entity.polyline.positions);
119
+ var posses = getValue(viewer, entity.polyline.positions);
120
+ if (!(posses === null || posses === void 0 ? void 0 : posses.length) || posses.length >= DO_NOT_CULL_AT_LEN_POINTS) {
121
+ return null;
122
+ }
123
+ // Get the first, last, and every forth point.
124
+ // This is to reduce the amount of points we need to check.
125
+ if (posses.length > 10) {
126
+ var first = posses[0];
127
+ var last = posses[posses.length - 1];
128
+ var everyForth = posses.filter(function (_, index) { return index % 4 == 0; });
129
+ posses = [first, last].concat(everyForth);
130
+ }
39
131
  heightRef = getValue(viewer, entity.polyline.clampToGround) == false ? Cesium.HeightReference.NONE : Cesium.HeightReference.CLAMP_TO_GROUND;
132
+ for (var i = 0; i < posses.length; i++) {
133
+ var pos3d = adjustPos3d(viewer, heightRef, posses[i]);
134
+ positions.push(pos3d);
135
+ }
40
136
  }
41
137
  else if (entity.polygon) {
42
138
  var hierarchy = getValue(viewer, entity.polygon.hierarchy);
43
- positions = hierarchy.positions;
139
+ var posses = hierarchy.positions;
140
+ if (!(posses === null || posses === void 0 ? void 0 : posses.length) || posses.length >= DO_NOT_CULL_AT_LEN_POINTS) {
141
+ return null;
142
+ }
143
+ // Get the first, last, and every forth point.
144
+ // This is to reduce the amount of points we need to check.
145
+ if (posses.length > 10) {
146
+ var first = posses[0];
147
+ var last = posses[posses.length - 1];
148
+ var everyForth = posses.filter(function (_, index) { return index % 4 == 0; });
149
+ posses = [first, last].concat(everyForth);
150
+ }
44
151
  heightRef = getValue(viewer, entity.polygon.heightReference);
152
+ for (var i = 0; i < posses.length; i++) {
153
+ var pos3d = adjustPos3d(viewer, heightRef, posses[i]);
154
+ positions.push(pos3d);
155
+ }
45
156
  }
46
157
  else if (entity.corridor) {
47
- positions = getValue(viewer, entity.corridor.positions);
158
+ var posses = getValue(viewer, entity.corridor.positions);
159
+ if (!(posses === null || posses === void 0 ? void 0 : posses.length) || posses.length >= DO_NOT_CULL_AT_LEN_POINTS) {
160
+ return null;
161
+ }
162
+ // Get the first, last, and every forth point.
163
+ // This is to reduce the amount of points we need to check.
164
+ if (posses.length > 10) {
165
+ var first = posses[0];
166
+ var last = posses[posses.length - 1];
167
+ var everyForth = posses.filter(function (_, index) { return index % 4 == 0; });
168
+ posses = [first, last].concat(everyForth);
169
+ }
170
+ heightRef = getValue(viewer, entity.corridor.heightReference);
171
+ for (var i = 0; i < posses.length; i++) {
172
+ var pos3d = adjustPos3d(viewer, heightRef, posses[i]);
173
+ positions.push(pos3d);
174
+ }
48
175
  }
49
176
  else if (entity.ellipse) {
50
- var position = getValue(viewer, entity.position);
51
- if (!(position === null || position === void 0 ? void 0 : position.x)) {
177
+ var pos3d = getValue(viewer, entity.position);
178
+ if (!(pos3d === null || pos3d === void 0 ? void 0 : pos3d.x)) {
52
179
  return null;
53
180
  }
54
181
  heightRef = getValue(viewer, entity.ellipse.heightReference);
55
- var semiMajorAxis = getValue(viewer, entity.ellipse.semiMajorAxis);
56
- var semiMinorAxis = getValue(viewer, entity.ellipse.semiMinorAxis);
57
- var rotation = getValue(viewer, entity.ellipse.rotation);
58
- // More subdivisions means a more accurate ellipse but worse performance.
59
- var numberOfSubdivisions = 5;
60
- for (var i = 0; i < numberOfSubdivisions; i++) {
61
- var theta = i * (2 * Math.PI / numberOfSubdivisions);
62
- var x = semiMajorAxis * Math.cos(theta);
63
- var y = semiMinorAxis * Math.sin(theta);
64
- // Apply rotation.
65
- var rotatedX = x * Math.cos(rotation) - y * Math.sin(rotation);
66
- var rotatedY = x * Math.sin(rotation) + y * Math.cos(rotation);
67
- // Translate by the ellipse's position.
68
- var point = new Cesium.Cartesian3(position.x + rotatedX, position.y + rotatedY, position.z);
69
- positions.push(point);
70
- }
182
+ pos3d = adjustPos3d(viewer, heightRef, pos3d);
183
+ positions.push(pos3d);
71
184
  }
72
185
  else if (entity.model) {
73
186
  var pos3d = getValue(viewer, entity.position);
74
187
  if (!(pos3d === null || pos3d === void 0 ? void 0 : pos3d.x)) {
75
188
  return null;
76
189
  }
77
- positions.push(pos3d);
78
190
  heightRef = getValue(viewer, entity.model.heightReference);
191
+ pos3d = adjustPos3d(viewer, heightRef, pos3d);
192
+ positions.push(pos3d);
79
193
  }
80
194
  else if (entity.point) {
81
195
  var pos3d = getValue(viewer, entity.position);
82
196
  if (!(pos3d === null || pos3d === void 0 ? void 0 : pos3d.x)) {
83
197
  return null;
84
198
  }
85
- positions.push(pos3d);
86
199
  heightRef = getValue(viewer, entity.point.heightReference);
200
+ pos3d = adjustPos3d(viewer, heightRef, pos3d);
201
+ positions.push(pos3d);
87
202
  }
88
203
  if (!(positions === null || positions === void 0 ? void 0 : positions.length)) {
89
204
  return;
@@ -103,27 +218,97 @@ function computeBoundingSphereFromPositions(positions) {
103
218
  return Cesium.BoundingSphere.fromPoints(positions);
104
219
  }
105
220
  function shouldCullEntity(viewer, cEntity) {
221
+ var _a, _b;
106
222
  var camera = viewer.scene.camera;
107
223
  var boundingSphere;
108
- if (boundingSphereCache[cEntity.id]) {
109
- boundingSphere = boundingSphereCache[cEntity.id];
224
+ var terrainId = (_b = (_a = view_utils_1.ViewUtils.GatherTerrainTile({
225
+ viewer: viewer
226
+ }).terrain) === null || _a === void 0 ? void 0 : _a.tilesetId) !== null && _b !== void 0 ? _b : bruce_models_1.ProjectViewTile.EDefaultTerrain.FlatTerrain;
227
+ var cullSphere;
228
+ var cacheKey = terrainId + cEntity.id;
229
+ var cacheData = boundingSphereCache.Get(cacheKey);
230
+ if (cacheData) {
231
+ boundingSphere = cacheData;
110
232
  }
111
233
  else {
112
234
  var positions = getPositionsFromEntity(viewer, cEntity);
113
235
  if (positions) {
114
236
  boundingSphere = computeBoundingSphereFromPositions(positions);
115
237
  if (cEntity.model) {
116
- // We don't know how large models are so we'll just add a tolerance.
117
- boundingSphere.radius += Math.sqrt(MODEL_SIZE_TOLERANCE);
238
+ var model = cEntity.model;
239
+ if (model._radius && !isNaN(model._radius)) {
240
+ boundingSphere.radius = Math.max(model._radius, MODEL_MIN_RADIUS);
241
+ }
242
+ else {
243
+ // Unknown size. Ignoring.
244
+ boundingSphere = -1;
245
+ }
118
246
  }
119
- boundingSphereCache[cEntity.id] = boundingSphere;
247
+ // Check for radius and extrusion.
248
+ else if (cEntity.ellipse) {
249
+ var radius = getValue(viewer, cEntity.ellipse.semiMajorAxis);
250
+ var extrusion = getValue(viewer, cEntity.ellipse.extrudedHeight);
251
+ if (extrusion && !isNaN(extrusion)) {
252
+ if (!radius) {
253
+ radius = extrusion;
254
+ }
255
+ else if (extrusion > radius / 2) {
256
+ radius = extrusion;
257
+ }
258
+ }
259
+ if (radius && !isNaN(radius)) {
260
+ boundingSphere.radius = radius;
261
+ }
262
+ }
263
+ // Check for extrusion.
264
+ else if (cEntity.polygon) {
265
+ var extrusion = getValue(viewer, cEntity.polygon.extrudedHeight);
266
+ if (extrusion && !isNaN(extrusion)) {
267
+ if (!boundingSphere.radius) {
268
+ boundingSphere.radius = extrusion;
269
+ }
270
+ else if (extrusion > boundingSphere.radius / 2) {
271
+ boundingSphere.radius = extrusion;
272
+ }
273
+ }
274
+ }
275
+ else if (cEntity.point || cEntity.billboard) {
276
+ boundingSphere.radius = Math.max(boundingSphere.radius, POINT_MIN_RADIUS);
277
+ }
278
+ if (boundingSphere && boundingSphere != -1) {
279
+ if (DEBUG_MODE) {
280
+ // Render sphere to visualize.
281
+ cullSphere = viewer.entities.getById(cEntity.id + "_cull");
282
+ if (!cullSphere) {
283
+ cullSphere = viewer.entities.add({
284
+ id: cEntity.id + "_cull",
285
+ position: boundingSphere.center,
286
+ ellipsoid: {
287
+ radii: new Cesium.Cartesian3(boundingSphere.radius, boundingSphere.radius, boundingSphere.radius),
288
+ material: Cesium.Color.RED.withAlpha(0.1)
289
+ }
290
+ });
291
+ }
292
+ }
293
+ }
294
+ boundingSphereCache.Set(cacheKey, boundingSphere);
295
+ }
296
+ else {
297
+ boundingSphereCache.Set(cacheKey, -1);
120
298
  }
121
299
  }
122
- if (!boundingSphere) {
300
+ if (!boundingSphere || boundingSphere == -1) {
123
301
  return false;
124
302
  }
125
303
  var cullingVolume = camera.frustum.computeCullingVolume(camera.position, camera.direction, camera.up);
126
304
  var visibility = cullingVolume.computeVisibility(boundingSphere);
305
+ if (cullSphere) {
306
+ cullSphere.ellipsoid.material =
307
+ (visibility == Cesium.Intersect.INSIDE ||
308
+ visibility == Cesium.Intersect.INTERSECTING) ? Cesium.Color.GREEN.withAlpha(0.1) :
309
+ Cesium.Color.RED.withAlpha(0.1);
310
+ viewer.scene.requestRender();
311
+ }
127
312
  return visibility !== Cesium.Intersect.INSIDE && visibility !== Cesium.Intersect.INTERSECTING;
128
313
  }
129
314
  // Amount of entities to check per interval.
@@ -188,7 +373,7 @@ function runCullChecker(register) {
188
373
  var rego = register.GetRego({
189
374
  entityId: entityId
190
375
  });
191
- if (!rego || !rego.visual || !(rego.visual instanceof Cesium.Entity)) {
376
+ if (!rego || !rego.visual || !(rego.visual instanceof Cesium.Entity) || rego.relation != null) {
192
377
  continue;
193
378
  }
194
379
  var parts = entity_utils_1.EntityUtils.GatherEntity({
@@ -1 +1 @@
1
- {"version":3,"file":"visual-register-culler.js","sourceRoot":"","sources":["../../../src/rendering/visual-register-culler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"visual-register-culler.js","sourceRoot":"","sources":["../../../src/rendering/visual-register-culler.ts"],"names":[],"mappings":"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"}
@@ -29,4 +29,4 @@ export * from "./utils/measure-utils";
29
29
  export * from "./utils/entity-utils";
30
30
  export * from "./widgets/common/draw-3d-polygon";
31
31
  export * from "./widgets/common/draw-3d-polyline";
32
- export declare const VERSION = "3.0.3";
32
+ export declare const VERSION = "3.0.4";
@@ -11,6 +11,7 @@ export declare namespace EntityRenderEngine {
11
11
  _billboardSize?: number;
12
12
  }
13
13
  interface ICesiumModelExt extends Cesium.ModelGraphics {
14
+ _radius?: number;
14
15
  _clientFileId?: string;
15
16
  _entityScale?: {
16
17
  record?: number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bruce-cesium",
3
- "version": "3.0.3",
3
+ "version": "3.0.4",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "main": "dist/bruce-cesium.umd.js",