bruce-cesium 2.2.3 → 2.2.5
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/dist/bruce-cesium.es5.js +183 -53
- package/dist/bruce-cesium.es5.js.map +1 -1
- package/dist/bruce-cesium.umd.js +182 -52
- package/dist/bruce-cesium.umd.js.map +1 -1
- package/dist/lib/bruce-cesium.js +1 -1
- package/dist/lib/rendering/render-managers/render-manager.js +3 -3
- package/dist/lib/rendering/render-managers/render-manager.js.map +1 -1
- package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js +3 -1
- package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js.map +1 -1
- package/dist/lib/rendering/view-render-engine.js +42 -47
- package/dist/lib/rendering/view-render-engine.js.map +1 -1
- package/dist/lib/rendering/visuals-register.js.map +1 -1
- package/dist/lib/utils/drawing-utils.js +78 -0
- package/dist/lib/utils/drawing-utils.js.map +1 -1
- package/dist/lib/utils/view-utils.js +55 -0
- package/dist/lib/utils/view-utils.js.map +1 -1
- package/dist/types/bruce-cesium.d.ts +1 -1
- package/dist/types/rendering/render-managers/tilesets/tileset-cad-render-manager.d.ts +1 -0
- package/dist/types/rendering/visuals-register.d.ts +1 -0
- package/dist/types/utils/drawing-utils.d.ts +7 -0
- package/dist/types/utils/view-utils.d.ts +13 -0
- package/package.json +1 -1
|
@@ -180,5 +180,83 @@ var DrawingUtils;
|
|
|
180
180
|
return pos3d;
|
|
181
181
|
}
|
|
182
182
|
DrawingUtils.EnsurePosHeight = EnsurePosHeight;
|
|
183
|
+
/**
|
|
184
|
+
* Returns an accurate 3d position from a given screen position.
|
|
185
|
+
* @param viewer
|
|
186
|
+
* @param cursor
|
|
187
|
+
* @returns
|
|
188
|
+
*/
|
|
189
|
+
DrawingUtils.GetAccuratePosition = (function () {
|
|
190
|
+
var cachedPick = null;
|
|
191
|
+
var cacheTimestamp = null;
|
|
192
|
+
var cachedCameraState = null;
|
|
193
|
+
return function (viewer, cursor, pickOnly) {
|
|
194
|
+
if (pickOnly === void 0) { pickOnly = false; }
|
|
195
|
+
var scene = viewer.scene;
|
|
196
|
+
var camera = scene.camera;
|
|
197
|
+
// Check if we can use cached position.
|
|
198
|
+
if (cachedPick && cacheTimestamp) {
|
|
199
|
+
var timeElapsed = Date.now() - cacheTimestamp;
|
|
200
|
+
var isWithinCacheDuration = timeElapsed < 3000; // 3 seconds
|
|
201
|
+
var isNearPreviousPick = Cesium.Cartesian2.distanceSquared(cursor, cachedPick.cursor) < 9; // 3 pixels
|
|
202
|
+
var directionDot = Cesium.Cartesian3.dot(camera.directionWC, cachedCameraState.direction);
|
|
203
|
+
var directionLengths = Cesium.Cartesian3.magnitude(camera.directionWC) * Cesium.Cartesian3.magnitude(cachedCameraState.direction);
|
|
204
|
+
var angle = Math.acos(directionDot / directionLengths);
|
|
205
|
+
var hasCameraMoved = Math.abs(camera.positionWC.x - cachedCameraState.position.x) > 2 || // 2 meters
|
|
206
|
+
Math.abs(camera.positionWC.y - cachedCameraState.position.y) > 2 ||
|
|
207
|
+
angle > Cesium.Math.toRadians(5); // 5 degrees
|
|
208
|
+
if (isWithinCacheDuration && isNearPreviousPick && !hasCameraMoved) {
|
|
209
|
+
return cachedPick.position;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
// Actual picking logic
|
|
213
|
+
// https://community.cesium.com/t/scene-pick-returning-point-inside-the-globe/18940/9
|
|
214
|
+
var pos3d = null;
|
|
215
|
+
// Means we can accurately pick right now.
|
|
216
|
+
if (!pickOnly && scene.globe.depthTestAgainstTerrain) {
|
|
217
|
+
pos3d = scene.pickPosition(cursor);
|
|
218
|
+
}
|
|
219
|
+
// Means we cannot guarantee an accurate pick.
|
|
220
|
+
// We want to prioritize pick-position when we can, so we'll try use it and if the result is sus then we'll use some fallbacks.
|
|
221
|
+
else {
|
|
222
|
+
if (!pickOnly) {
|
|
223
|
+
pos3d = scene.pickPosition(cursor);
|
|
224
|
+
}
|
|
225
|
+
if (Cesium.defined(pos3d)) {
|
|
226
|
+
var carto = Cesium.Cartographic.fromCartesian(pos3d);
|
|
227
|
+
if (!Cesium.defined(carto) || carto.height < 0) {
|
|
228
|
+
pos3d = null;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
if (!Cesium.defined(pos3d)) {
|
|
232
|
+
pos3d = null;
|
|
233
|
+
var ray = scene.camera.getPickRay(cursor);
|
|
234
|
+
if (scene.pickPositionSupported) {
|
|
235
|
+
var pickedObject = scene.pick(cursor, 1, 1);
|
|
236
|
+
if (Cesium.defined(pickedObject) &&
|
|
237
|
+
(pickedObject instanceof Cesium.Cesium3DTileFeature ||
|
|
238
|
+
pickedObject.primitive instanceof Cesium.Cesium3DTileset ||
|
|
239
|
+
pickedObject.primitive instanceof Cesium.Model)) {
|
|
240
|
+
pos3d = scene.pickPosition(cursor);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
if (!pickOnly && !Cesium.defined(pos3d)) {
|
|
244
|
+
pos3d = scene.globe.pick(ray, scene);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
// Update cache.
|
|
249
|
+
cachedPick = {
|
|
250
|
+
position: pos3d,
|
|
251
|
+
cursor: cursor.clone()
|
|
252
|
+
};
|
|
253
|
+
cacheTimestamp = Date.now();
|
|
254
|
+
cachedCameraState = {
|
|
255
|
+
position: camera.positionWC.clone(),
|
|
256
|
+
direction: camera.directionWC.clone()
|
|
257
|
+
};
|
|
258
|
+
return pos3d;
|
|
259
|
+
};
|
|
260
|
+
})();
|
|
183
261
|
})(DrawingUtils = exports.DrawingUtils || (exports.DrawingUtils = {}));
|
|
184
262
|
//# sourceMappingURL=drawing-utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drawing-utils.js","sourceRoot":"","sources":["../../../src/utils/drawing-utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6CAAsC;AACtC,+BAAiC;AACjC,iDAAoD;AACpD,iDAA+C;AAE/C,IAAiB,YAAY,
|
|
1
|
+
{"version":3,"file":"drawing-utils.js","sourceRoot":"","sources":["../../../src/utils/drawing-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -107,5 +107,60 @@ var ViewUtils;
|
|
|
107
107
|
return (_b = (_a = params.viewer[exports.CESIUM_INSPECTOR_KEY]) === null || _a === void 0 ? void 0 : _a.viewModel) === null || _b === void 0 ? void 0 : _b.wireframe;
|
|
108
108
|
}
|
|
109
109
|
ViewUtils.GetTerrainWireframeStatus = GetTerrainWireframeStatus;
|
|
110
|
+
/**
|
|
111
|
+
* Changes between perspective and orthographic view.
|
|
112
|
+
* When Cesium stops being bad at picking positions in 2d mode we'll use the flat earth mode instead.
|
|
113
|
+
* @param params
|
|
114
|
+
*/
|
|
115
|
+
function Set2dStatus(params) {
|
|
116
|
+
var viewer = params.viewer, is2d = params.status, moveCamera = params.moveCamera;
|
|
117
|
+
var curLens2d = viewer.camera.frustum instanceof Cesium.OrthographicFrustum;
|
|
118
|
+
if (curLens2d && !is2d) {
|
|
119
|
+
viewer.camera.switchToPerspectiveFrustum();
|
|
120
|
+
viewer.scene.screenSpaceCameraController.enableTilt = true;
|
|
121
|
+
}
|
|
122
|
+
else if (!curLens2d && is2d) {
|
|
123
|
+
viewer.camera.switchToOrthographicFrustum();
|
|
124
|
+
viewer.scene.screenSpaceCameraController.enableTilt = false;
|
|
125
|
+
if (moveCamera != false) {
|
|
126
|
+
try {
|
|
127
|
+
// Face camera downwards to make it look 2d.
|
|
128
|
+
// We want to try make it look at the center-point of the current view.
|
|
129
|
+
// If center cannot be calculated then we'll simply raise the camera and face it downwards.
|
|
130
|
+
var scene = viewer.scene;
|
|
131
|
+
var windowPosition = new Cesium.Cartesian2(scene.canvas.clientWidth / 2, scene.canvas.clientHeight / 2);
|
|
132
|
+
var ray = viewer.camera.getPickRay(windowPosition);
|
|
133
|
+
var intersection = scene.globe.pick(ray, scene);
|
|
134
|
+
var center = void 0;
|
|
135
|
+
if (Cesium.defined(intersection)) {
|
|
136
|
+
center = Cesium.Cartographic.fromCartesian(intersection);
|
|
137
|
+
}
|
|
138
|
+
// Use current camera position if we can't calculate the center.
|
|
139
|
+
else {
|
|
140
|
+
center = Cesium.Cartographic.fromCartesian(viewer.camera.position);
|
|
141
|
+
center.height = 0;
|
|
142
|
+
}
|
|
143
|
+
center.height = viewer.camera.positionCartographic.height + 100;
|
|
144
|
+
viewer.camera.setView({
|
|
145
|
+
destination: Cesium.Cartographic.toCartesian(center),
|
|
146
|
+
orientation: {
|
|
147
|
+
heading: 0.0,
|
|
148
|
+
pitch: Cesium.Math.toRadians(-90.0),
|
|
149
|
+
roll: 0.0
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
catch (e) {
|
|
154
|
+
console.error(e);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
ViewUtils.Set2dStatus = Set2dStatus;
|
|
160
|
+
function Get2dStatus(params) {
|
|
161
|
+
var viewer = params.viewer;
|
|
162
|
+
return viewer.camera.frustum instanceof Cesium.OrthographicFrustum;
|
|
163
|
+
}
|
|
164
|
+
ViewUtils.Get2dStatus = Get2dStatus;
|
|
110
165
|
})(ViewUtils = exports.ViewUtils || (exports.ViewUtils = {}));
|
|
111
166
|
//# sourceMappingURL=view-utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view-utils.js","sourceRoot":"","sources":["../../../src/utils/view-utils.ts"],"names":[],"mappings":";;;AACA,+BAAiC;AAGpB,QAAA,oBAAoB,GAAG,sBAAsB,CAAC;AAE3D,IAAiB,SAAS,
|
|
1
|
+
{"version":3,"file":"view-utils.js","sourceRoot":"","sources":["../../../src/utils/view-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,4 +36,11 @@ export declare namespace DrawingUtils {
|
|
|
36
36
|
desiredHeightRef: Cesium.HeightReference;
|
|
37
37
|
heightRef: Cesium.HeightReference;
|
|
38
38
|
}): Cesium.Cartesian3;
|
|
39
|
+
/**
|
|
40
|
+
* Returns an accurate 3d position from a given screen position.
|
|
41
|
+
* @param viewer
|
|
42
|
+
* @param cursor
|
|
43
|
+
* @returns
|
|
44
|
+
*/
|
|
45
|
+
const GetAccuratePosition: (viewer: Cesium.Viewer, cursor: Cesium.Cartesian2, pickOnly?: boolean) => any;
|
|
39
46
|
}
|
|
@@ -29,4 +29,17 @@ export declare namespace ViewUtils {
|
|
|
29
29
|
function GetTerrainWireframeStatus(params: {
|
|
30
30
|
viewer: Cesium.Viewer;
|
|
31
31
|
}): any;
|
|
32
|
+
/**
|
|
33
|
+
* Changes between perspective and orthographic view.
|
|
34
|
+
* When Cesium stops being bad at picking positions in 2d mode we'll use the flat earth mode instead.
|
|
35
|
+
* @param params
|
|
36
|
+
*/
|
|
37
|
+
function Set2dStatus(params: {
|
|
38
|
+
viewer: Cesium.Viewer;
|
|
39
|
+
status: boolean;
|
|
40
|
+
moveCamera?: boolean;
|
|
41
|
+
}): void;
|
|
42
|
+
function Get2dStatus(params: {
|
|
43
|
+
viewer: Cesium.Viewer;
|
|
44
|
+
}): boolean;
|
|
32
45
|
}
|