bruce-cesium 3.2.3 → 3.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 +771 -297
- package/dist/bruce-cesium.es5.js.map +1 -1
- package/dist/bruce-cesium.umd.js +770 -296
- package/dist/bruce-cesium.umd.js.map +1 -1
- package/dist/lib/bruce-cesium.js +1 -1
- package/dist/lib/rendering/visual-register-culler.js +10 -1
- package/dist/lib/rendering/visual-register-culler.js.map +1 -1
- package/dist/lib/rendering/visuals-register.js +109 -147
- package/dist/lib/rendering/visuals-register.js.map +1 -1
- package/dist/lib/utils/cesium-entity-styler.js +606 -0
- package/dist/lib/utils/cesium-entity-styler.js.map +1 -0
- package/dist/lib/utils/entity-utils.js +46 -188
- package/dist/lib/utils/entity-utils.js.map +1 -1
- package/dist/lib/widgets/widget-bookmarks.js +15 -0
- package/dist/lib/widgets/widget-bookmarks.js.map +1 -1
- package/dist/lib/widgets/widget-cursorbar.js +30 -2
- package/dist/lib/widgets/widget-cursorbar.js.map +1 -1
- package/dist/types/bruce-cesium.d.ts +1 -1
- package/dist/types/rendering/visuals-register.d.ts +14 -1
- package/dist/types/utils/cesium-entity-styler.d.ts +77 -0
- package/dist/types/utils/entity-utils.d.ts +3 -3
- package/package.json +1 -1
|
@@ -0,0 +1,606 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CesiumEntityStyler = void 0;
|
|
4
|
+
var Cesium = require("cesium");
|
|
5
|
+
var entity_utils_1 = require("./entity-utils");
|
|
6
|
+
/**
|
|
7
|
+
* Returns if a given visual can be styled by this utility.
|
|
8
|
+
* @param viewer
|
|
9
|
+
* @param visual
|
|
10
|
+
* @returns
|
|
11
|
+
*/
|
|
12
|
+
function isAlive(viewer, visual) {
|
|
13
|
+
if (!(viewer === null || viewer === void 0 ? void 0 : viewer.scene) || viewer.isDestroyed()) {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
if (visual instanceof Cesium.Entity) {
|
|
17
|
+
return true;
|
|
18
|
+
}
|
|
19
|
+
else if (visual instanceof Cesium.Primitive) {
|
|
20
|
+
return true;
|
|
21
|
+
}
|
|
22
|
+
else if (visual instanceof Cesium.Cesium3DTileFeature) {
|
|
23
|
+
var cTileset = visual === null || visual === void 0 ? void 0 : visual.tileset;
|
|
24
|
+
if (!cTileset) {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
if (cTileset.isDestroyed() || !viewer.scene.primitives.contains(cTileset)) {
|
|
28
|
+
return false;
|
|
29
|
+
}
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
var _selectColor = Cesium.Color.fromAlpha(Cesium.Color.YELLOW, 0.5);
|
|
35
|
+
var _highlightColor = Cesium.Color.fromCssColorString("#33b1ff").withAlpha(0.5);
|
|
36
|
+
var STORE_COLOR_PREFIX = "_storeColor_";
|
|
37
|
+
function getStoreKey(key) {
|
|
38
|
+
return STORE_COLOR_PREFIX + key;
|
|
39
|
+
}
|
|
40
|
+
;
|
|
41
|
+
var STORE_KEY_STATE_PREFIX = "_storeKeyState_";
|
|
42
|
+
function getStoreStateKey(key) {
|
|
43
|
+
return STORE_KEY_STATE_PREFIX + key;
|
|
44
|
+
}
|
|
45
|
+
var LAST_APPLIED_OPACITY_KEY = "_lastAppliedOpacityKey";
|
|
46
|
+
/**
|
|
47
|
+
* Returns a color property from a graphic.
|
|
48
|
+
* This will turn materials properties into colors before returning them.
|
|
49
|
+
* @param viewer
|
|
50
|
+
* @param prop
|
|
51
|
+
* @returns
|
|
52
|
+
*/
|
|
53
|
+
function getCesiumColorValue(viewer, prop) {
|
|
54
|
+
if (!prop) {
|
|
55
|
+
return Cesium.Color.WHITE;
|
|
56
|
+
}
|
|
57
|
+
if (prop.getValue) {
|
|
58
|
+
prop = prop.getValue(viewer.scene.lastRenderTime);
|
|
59
|
+
}
|
|
60
|
+
if (prop instanceof Cesium.Color) {
|
|
61
|
+
return prop;
|
|
62
|
+
}
|
|
63
|
+
var tmp = prop === null || prop === void 0 ? void 0 : prop.color;
|
|
64
|
+
if (tmp === null || tmp === void 0 ? void 0 : tmp.getValue) {
|
|
65
|
+
tmp = tmp.getValue(viewer.scene.lastRenderTime);
|
|
66
|
+
}
|
|
67
|
+
return tmp ? tmp : Cesium.Color.WHITE;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Returns the current color of a graphic.
|
|
71
|
+
* @param viewer
|
|
72
|
+
* @param graphic
|
|
73
|
+
* @returns
|
|
74
|
+
*/
|
|
75
|
+
function calculateCurColor(viewer, graphic) {
|
|
76
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
77
|
+
var color;
|
|
78
|
+
if (graphic instanceof Cesium.Cesium3DTileFeature) {
|
|
79
|
+
color = (_a = graphic.color) !== null && _a !== void 0 ? _a : new Cesium.Color();
|
|
80
|
+
}
|
|
81
|
+
else if (graphic instanceof Cesium.ModelGraphics) {
|
|
82
|
+
color = (_b = getCesiumColorValue(viewer, graphic.color)) !== null && _b !== void 0 ? _b : new Cesium.Color();
|
|
83
|
+
}
|
|
84
|
+
else if (graphic instanceof Cesium.PolygonGraphics) {
|
|
85
|
+
color = (_c = getCesiumColorValue(viewer, graphic.material)) !== null && _c !== void 0 ? _c : new Cesium.Color();
|
|
86
|
+
}
|
|
87
|
+
else if (graphic instanceof Cesium.PolylineGraphics) {
|
|
88
|
+
color = (_d = getCesiumColorValue(viewer, graphic.material)) !== null && _d !== void 0 ? _d : new Cesium.Color();
|
|
89
|
+
}
|
|
90
|
+
else if (graphic instanceof Cesium.CorridorGraphics) {
|
|
91
|
+
color = (_e = getCesiumColorValue(viewer, graphic.material)) !== null && _e !== void 0 ? _e : new Cesium.Color();
|
|
92
|
+
}
|
|
93
|
+
else if (graphic instanceof Cesium.PointGraphics) {
|
|
94
|
+
color = (_f = getCesiumColorValue(viewer, graphic.color)) !== null && _f !== void 0 ? _f : new Cesium.Color();
|
|
95
|
+
}
|
|
96
|
+
else if (graphic instanceof Cesium.BillboardGraphics) {
|
|
97
|
+
color = (_g = getCesiumColorValue(viewer, graphic.color)) !== null && _g !== void 0 ? _g : new Cesium.Color();
|
|
98
|
+
}
|
|
99
|
+
else if (graphic instanceof Cesium.EllipseGraphics) {
|
|
100
|
+
color = (_h = getCesiumColorValue(viewer, graphic.material)) !== null && _h !== void 0 ? _h : new Cesium.Color();
|
|
101
|
+
}
|
|
102
|
+
return color;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Stores a copy of the color against a key within the graphic.
|
|
106
|
+
* This lets us refer to it later if we need to change to it.
|
|
107
|
+
* @param viewer
|
|
108
|
+
* @param key
|
|
109
|
+
* @param color
|
|
110
|
+
* @param graphic
|
|
111
|
+
*/
|
|
112
|
+
function storeColor(viewer, key, color, graphic) {
|
|
113
|
+
graphic[getStoreKey(key)] = (color === null || color === void 0 ? void 0 : color.clone) ? color.clone() : color;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Returns a stored color for a graphic.
|
|
117
|
+
* If no color is stored, it will calculate and store the default color.
|
|
118
|
+
* @param viewer
|
|
119
|
+
* @param key
|
|
120
|
+
* @param graphic
|
|
121
|
+
* @returns
|
|
122
|
+
*/
|
|
123
|
+
function getColor(viewer, key, graphic) {
|
|
124
|
+
var color = graphic[getStoreKey(key)];
|
|
125
|
+
// If no color is stored for the default color, we'll calculate and store it.
|
|
126
|
+
if (!color) {
|
|
127
|
+
if (key == "default") {
|
|
128
|
+
color = calculateCurColor(viewer, graphic);
|
|
129
|
+
}
|
|
130
|
+
else if (key == "select") {
|
|
131
|
+
color = _selectColor;
|
|
132
|
+
}
|
|
133
|
+
else if (key == "highlight") {
|
|
134
|
+
color = _highlightColor;
|
|
135
|
+
}
|
|
136
|
+
if (color) {
|
|
137
|
+
storeColor(viewer, key, color, graphic);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
return color;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Applies opacity to current color.
|
|
144
|
+
* @param viewer
|
|
145
|
+
* @param opacity
|
|
146
|
+
* @param graphic
|
|
147
|
+
*/
|
|
148
|
+
function applyOpacity(viewer, opacity, graphic) {
|
|
149
|
+
refreshColor(viewer, graphic, opacity);
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* Applies a color to a graphic based on the current key states.
|
|
153
|
+
* Eg: if the graphic is selected, it will apply the selected color.
|
|
154
|
+
* @param viewer
|
|
155
|
+
* @param graphic
|
|
156
|
+
* @param opacity
|
|
157
|
+
*/
|
|
158
|
+
function refreshColor(viewer, graphic, opacity) {
|
|
159
|
+
var _a;
|
|
160
|
+
// Calculate what color key we should apply.
|
|
161
|
+
var key = "default";
|
|
162
|
+
if (getKeyState(graphic, "select")) {
|
|
163
|
+
key = "select";
|
|
164
|
+
}
|
|
165
|
+
else if (getKeyState(graphic, "highlight")) {
|
|
166
|
+
key = "highlight";
|
|
167
|
+
}
|
|
168
|
+
// This ensures that the default color is always stored prior to applying a new color.
|
|
169
|
+
if (key != "default") {
|
|
170
|
+
getColor(viewer, "default", graphic);
|
|
171
|
+
}
|
|
172
|
+
var color = (_a = getColor(viewer, key, graphic)) !== null && _a !== void 0 ? _a : Cesium.Color.WHITE;
|
|
173
|
+
// If we're highlighting and it's selected, don't change the color.
|
|
174
|
+
if (key != "highlight" || getKeyState(graphic, "select") == false) {
|
|
175
|
+
color = color.clone();
|
|
176
|
+
// Multiply opacity if one is set.
|
|
177
|
+
if (opacity != null) {
|
|
178
|
+
// Not sure if this will ever be needed.
|
|
179
|
+
// The original code had a null-check but I suspect it was because it may not been a Cesium color instance.
|
|
180
|
+
if (color.alpha == null) {
|
|
181
|
+
color.alpha = 1;
|
|
182
|
+
}
|
|
183
|
+
color.alpha *= opacity;
|
|
184
|
+
// Cesium ignores pure white so if we want opacity and it's white, we'll set a tiny blue value.
|
|
185
|
+
if (color.equals(Cesium.Color.WHITE)) {
|
|
186
|
+
color.blue = 0.0001;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
if (graphic instanceof Cesium.Cesium3DTileFeature) {
|
|
190
|
+
graphic.color = color;
|
|
191
|
+
}
|
|
192
|
+
else if (graphic instanceof Cesium.ModelGraphics) {
|
|
193
|
+
graphic.color = color;
|
|
194
|
+
}
|
|
195
|
+
else if (graphic instanceof Cesium.PolygonGraphics) {
|
|
196
|
+
graphic.material = new Cesium.ColorMaterialProperty(color);
|
|
197
|
+
}
|
|
198
|
+
else if (graphic instanceof Cesium.PolylineGraphics) {
|
|
199
|
+
graphic.material = new Cesium.ColorMaterialProperty(color);
|
|
200
|
+
}
|
|
201
|
+
else if (graphic instanceof Cesium.CorridorGraphics) {
|
|
202
|
+
graphic.material = new Cesium.ColorMaterialProperty(color);
|
|
203
|
+
}
|
|
204
|
+
else if (graphic instanceof Cesium.PointGraphics) {
|
|
205
|
+
graphic.color = color;
|
|
206
|
+
}
|
|
207
|
+
else if (graphic instanceof Cesium.BillboardGraphics) {
|
|
208
|
+
graphic.color = color;
|
|
209
|
+
}
|
|
210
|
+
else if (graphic instanceof Cesium.EllipseGraphics) {
|
|
211
|
+
graphic.material = new Cesium.ColorMaterialProperty(color);
|
|
212
|
+
}
|
|
213
|
+
graphic[LAST_APPLIED_OPACITY_KEY] = opacity;
|
|
214
|
+
}
|
|
215
|
+
// Record the state of the current key.
|
|
216
|
+
graphic[getStoreStateKey(key)] = true;
|
|
217
|
+
// This means other keys are false.
|
|
218
|
+
if (key == "default") {
|
|
219
|
+
graphic[getStoreStateKey("select")] = false;
|
|
220
|
+
graphic[getStoreStateKey("highlight")] = false;
|
|
221
|
+
}
|
|
222
|
+
// This means 'default' is false.
|
|
223
|
+
else {
|
|
224
|
+
graphic[getStoreStateKey("default")] = false;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Returns the last applied opacity for a graphic.
|
|
229
|
+
* This is used to ensure that we don't lose the opacity when we change color.
|
|
230
|
+
* @param graphic
|
|
231
|
+
* @returns
|
|
232
|
+
*/
|
|
233
|
+
function getAppliedOpacity(graphic) {
|
|
234
|
+
return isNaN(graphic[LAST_APPLIED_OPACITY_KEY]) ? null : graphic[LAST_APPLIED_OPACITY_KEY];
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Returns the state of a key for a graphic.
|
|
238
|
+
* Eg: if the graphic is selected, this will return true for the select key.
|
|
239
|
+
* A graphic may have multiple active states, but only one color can be applied at a time.
|
|
240
|
+
* @param graphic
|
|
241
|
+
* @param key
|
|
242
|
+
* @returns
|
|
243
|
+
*/
|
|
244
|
+
function getKeyState(graphic, key) {
|
|
245
|
+
var value = graphic[getStoreStateKey(key)];
|
|
246
|
+
return value == null ? false : value;
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Internal utility to help with managing Cesium Entity styling.
|
|
250
|
+
* Do not expose this to public as it will likely be killed and replaced with something that do animated changes.
|
|
251
|
+
*/
|
|
252
|
+
var CesiumEntityStyler;
|
|
253
|
+
(function (CesiumEntityStyler) {
|
|
254
|
+
function UpdateColorSetting(key, color) {
|
|
255
|
+
if (key == "select") {
|
|
256
|
+
_selectColor = color.clone();
|
|
257
|
+
}
|
|
258
|
+
else if (key == "highlight") {
|
|
259
|
+
_highlightColor = color.clone();
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
CesiumEntityStyler.UpdateColorSetting = UpdateColorSetting;
|
|
263
|
+
/**
|
|
264
|
+
* Updates the opacity of the graphic.
|
|
265
|
+
* This will multiply against the current colour's opacity before applying.
|
|
266
|
+
* @param params
|
|
267
|
+
* @returns
|
|
268
|
+
*/
|
|
269
|
+
function SetOpacity(params) {
|
|
270
|
+
var viewer = params.viewer, entity = params.entity, opacity = params.opacity, requestRender = params.requestRender;
|
|
271
|
+
if (!entity) {
|
|
272
|
+
return;
|
|
273
|
+
}
|
|
274
|
+
var parts = entity_utils_1.EntityUtils.GatherEntity({
|
|
275
|
+
entity: entity
|
|
276
|
+
});
|
|
277
|
+
for (var i = 0; i < parts.length; i++) {
|
|
278
|
+
var part = parts[i];
|
|
279
|
+
if (!isAlive(viewer, part)) {
|
|
280
|
+
continue;
|
|
281
|
+
}
|
|
282
|
+
if (part instanceof Cesium.Cesium3DTileFeature) {
|
|
283
|
+
applyOpacity(viewer, opacity, part);
|
|
284
|
+
}
|
|
285
|
+
else if (part instanceof Cesium.Entity) {
|
|
286
|
+
if (part.billboard) {
|
|
287
|
+
applyOpacity(viewer, opacity, part.billboard);
|
|
288
|
+
}
|
|
289
|
+
if (part.model) {
|
|
290
|
+
applyOpacity(viewer, opacity, part.model);
|
|
291
|
+
}
|
|
292
|
+
if (part.polyline) {
|
|
293
|
+
applyOpacity(viewer, opacity, part.polyline);
|
|
294
|
+
}
|
|
295
|
+
if (part.polygon) {
|
|
296
|
+
applyOpacity(viewer, opacity, part.polygon);
|
|
297
|
+
}
|
|
298
|
+
if (part.corridor) {
|
|
299
|
+
applyOpacity(viewer, opacity, part.corridor);
|
|
300
|
+
}
|
|
301
|
+
if (part.point) {
|
|
302
|
+
applyOpacity(viewer, opacity, part.point);
|
|
303
|
+
}
|
|
304
|
+
if (part.ellipse) {
|
|
305
|
+
applyOpacity(viewer, opacity, part.ellipse);
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
if (requestRender != false) {
|
|
310
|
+
viewer.scene.requestRender();
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
CesiumEntityStyler.SetOpacity = SetOpacity;
|
|
314
|
+
/**
|
|
315
|
+
* Returns the opacity of a graphic.
|
|
316
|
+
* This will return the last applied opacity. If no opacity has been applied, it will return null.
|
|
317
|
+
* @param params
|
|
318
|
+
*/
|
|
319
|
+
function GetOpacity(params) {
|
|
320
|
+
var entity = params.entity;
|
|
321
|
+
if (!entity) {
|
|
322
|
+
return null;
|
|
323
|
+
}
|
|
324
|
+
var parts = entity_utils_1.EntityUtils.GatherEntity({
|
|
325
|
+
entity: entity
|
|
326
|
+
});
|
|
327
|
+
for (var i = 0; i < parts.length; i++) {
|
|
328
|
+
var part = parts[i];
|
|
329
|
+
if (part instanceof Cesium.Cesium3DTileFeature) {
|
|
330
|
+
return getAppliedOpacity(part);
|
|
331
|
+
}
|
|
332
|
+
else if (part instanceof Cesium.Entity) {
|
|
333
|
+
if (part.billboard) {
|
|
334
|
+
return getAppliedOpacity(part.billboard);
|
|
335
|
+
}
|
|
336
|
+
if (part.model) {
|
|
337
|
+
return getAppliedOpacity(part.model);
|
|
338
|
+
}
|
|
339
|
+
if (part.polyline) {
|
|
340
|
+
return getAppliedOpacity(part.polyline);
|
|
341
|
+
}
|
|
342
|
+
if (part.polygon) {
|
|
343
|
+
return getAppliedOpacity(part.polygon);
|
|
344
|
+
}
|
|
345
|
+
if (part.corridor) {
|
|
346
|
+
return getAppliedOpacity(part.corridor);
|
|
347
|
+
}
|
|
348
|
+
if (part.point) {
|
|
349
|
+
return getAppliedOpacity(part.point);
|
|
350
|
+
}
|
|
351
|
+
if (part.ellipse) {
|
|
352
|
+
return getAppliedOpacity(part.ellipse);
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
return null;
|
|
357
|
+
}
|
|
358
|
+
CesiumEntityStyler.GetOpacity = GetOpacity;
|
|
359
|
+
/**
|
|
360
|
+
* Clears the opacity from a graphic and refreshes it.
|
|
361
|
+
* Eg: if it is selected it will change the color to the selected color with the original selection opacity.
|
|
362
|
+
* @param params
|
|
363
|
+
*/
|
|
364
|
+
function ClearOpacity(params) {
|
|
365
|
+
SetOpacity({
|
|
366
|
+
viewer: params.viewer,
|
|
367
|
+
entity: params.entity,
|
|
368
|
+
opacity: null,
|
|
369
|
+
requestRender: params.requestRender
|
|
370
|
+
});
|
|
371
|
+
}
|
|
372
|
+
CesiumEntityStyler.ClearOpacity = ClearOpacity;
|
|
373
|
+
/**
|
|
374
|
+
* Selects a graphic and refreshes it.
|
|
375
|
+
* @param params
|
|
376
|
+
*/
|
|
377
|
+
function Select(params) {
|
|
378
|
+
var viewer = params.viewer, entity = params.entity, requestRender = params.requestRender;
|
|
379
|
+
if (!entity) {
|
|
380
|
+
return;
|
|
381
|
+
}
|
|
382
|
+
var parts = entity_utils_1.EntityUtils.GatherEntity({
|
|
383
|
+
entity: entity
|
|
384
|
+
});
|
|
385
|
+
for (var i = 0; i < parts.length; i++) {
|
|
386
|
+
var part = parts[i];
|
|
387
|
+
if (!isAlive(viewer, part)) {
|
|
388
|
+
continue;
|
|
389
|
+
}
|
|
390
|
+
if (part instanceof Cesium.Cesium3DTileFeature) {
|
|
391
|
+
var opacity = getAppliedOpacity(part);
|
|
392
|
+
part[getStoreStateKey("select")] = true;
|
|
393
|
+
refreshColor(viewer, part, opacity);
|
|
394
|
+
}
|
|
395
|
+
else if (part instanceof Cesium.Entity) {
|
|
396
|
+
if (part.billboard) {
|
|
397
|
+
part.billboard[getStoreStateKey("select")] = true;
|
|
398
|
+
refreshColor(viewer, part.billboard, getAppliedOpacity(part.billboard));
|
|
399
|
+
}
|
|
400
|
+
if (part.model) {
|
|
401
|
+
part.model[getStoreStateKey("select")] = true;
|
|
402
|
+
refreshColor(viewer, part.model, getAppliedOpacity(part.model));
|
|
403
|
+
}
|
|
404
|
+
if (part.polyline) {
|
|
405
|
+
part.polyline[getStoreStateKey("select")] = true;
|
|
406
|
+
refreshColor(viewer, part.polyline, getAppliedOpacity(part.polyline));
|
|
407
|
+
}
|
|
408
|
+
if (part.polygon) {
|
|
409
|
+
part.polygon[getStoreStateKey("select")] = true;
|
|
410
|
+
refreshColor(viewer, part.polygon, getAppliedOpacity(part.polygon));
|
|
411
|
+
}
|
|
412
|
+
if (part.corridor) {
|
|
413
|
+
part.corridor[getStoreStateKey("select")] = true;
|
|
414
|
+
refreshColor(viewer, part.corridor, getAppliedOpacity(part.corridor));
|
|
415
|
+
}
|
|
416
|
+
if (part.point) {
|
|
417
|
+
part.point[getStoreStateKey("select")] = true;
|
|
418
|
+
refreshColor(viewer, part.point, getAppliedOpacity(part.point));
|
|
419
|
+
}
|
|
420
|
+
if (part.ellipse) {
|
|
421
|
+
part.ellipse[getStoreStateKey("select")] = true;
|
|
422
|
+
refreshColor(viewer, part.ellipse, getAppliedOpacity(part.ellipse));
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
if (requestRender != false) {
|
|
427
|
+
viewer.scene.requestRender();
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
CesiumEntityStyler.Select = Select;
|
|
431
|
+
/**
|
|
432
|
+
* Deselects a graphic and refreshes it.
|
|
433
|
+
* If the graphic is highlighted, it will change the color to the highlighted color.
|
|
434
|
+
* @param params
|
|
435
|
+
*/
|
|
436
|
+
function Deselect(params) {
|
|
437
|
+
var viewer = params.viewer, entity = params.entity, requestRender = params.requestRender;
|
|
438
|
+
if (!entity) {
|
|
439
|
+
return;
|
|
440
|
+
}
|
|
441
|
+
var parts = entity_utils_1.EntityUtils.GatherEntity({
|
|
442
|
+
entity: entity
|
|
443
|
+
});
|
|
444
|
+
for (var i = 0; i < parts.length; i++) {
|
|
445
|
+
var part = parts[i];
|
|
446
|
+
if (!isAlive(viewer, part)) {
|
|
447
|
+
continue;
|
|
448
|
+
}
|
|
449
|
+
if (part instanceof Cesium.Cesium3DTileFeature) {
|
|
450
|
+
var opacity = getAppliedOpacity(part);
|
|
451
|
+
part[getStoreStateKey("select")] = false;
|
|
452
|
+
refreshColor(viewer, part, opacity);
|
|
453
|
+
}
|
|
454
|
+
else if (part instanceof Cesium.Entity) {
|
|
455
|
+
if (part.billboard) {
|
|
456
|
+
part.billboard[getStoreStateKey("select")] = false;
|
|
457
|
+
refreshColor(viewer, part.billboard, getAppliedOpacity(part.billboard));
|
|
458
|
+
}
|
|
459
|
+
if (part.model) {
|
|
460
|
+
part.model[getStoreStateKey("select")] = false;
|
|
461
|
+
refreshColor(viewer, part.model, getAppliedOpacity(part.model));
|
|
462
|
+
}
|
|
463
|
+
if (part.polyline) {
|
|
464
|
+
part.polyline[getStoreStateKey("select")] = false;
|
|
465
|
+
refreshColor(viewer, part.polyline, getAppliedOpacity(part.polyline));
|
|
466
|
+
}
|
|
467
|
+
if (part.polygon) {
|
|
468
|
+
part.polygon[getStoreStateKey("select")] = false;
|
|
469
|
+
refreshColor(viewer, part.polygon, getAppliedOpacity(part.polygon));
|
|
470
|
+
}
|
|
471
|
+
if (part.corridor) {
|
|
472
|
+
part.corridor[getStoreStateKey("select")] = false;
|
|
473
|
+
refreshColor(viewer, part.corridor, getAppliedOpacity(part.corridor));
|
|
474
|
+
}
|
|
475
|
+
if (part.point) {
|
|
476
|
+
part.point[getStoreStateKey("select")] = false;
|
|
477
|
+
refreshColor(viewer, part.point, getAppliedOpacity(part.point));
|
|
478
|
+
}
|
|
479
|
+
if (part.ellipse) {
|
|
480
|
+
part.ellipse[getStoreStateKey("select")] = false;
|
|
481
|
+
refreshColor(viewer, part.ellipse, getAppliedOpacity(part.ellipse));
|
|
482
|
+
}
|
|
483
|
+
}
|
|
484
|
+
}
|
|
485
|
+
if (requestRender != false) {
|
|
486
|
+
viewer.scene.requestRender();
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
CesiumEntityStyler.Deselect = Deselect;
|
|
490
|
+
/**
|
|
491
|
+
* Highlights a graphic and refreshes it.
|
|
492
|
+
* If the graphic is selected, it will not change the color.
|
|
493
|
+
* @param params
|
|
494
|
+
*/
|
|
495
|
+
function Highlight(params) {
|
|
496
|
+
var viewer = params.viewer, entity = params.entity, requestRender = params.requestRender;
|
|
497
|
+
if (!entity) {
|
|
498
|
+
return;
|
|
499
|
+
}
|
|
500
|
+
var parts = entity_utils_1.EntityUtils.GatherEntity({
|
|
501
|
+
entity: entity
|
|
502
|
+
});
|
|
503
|
+
for (var i = 0; i < parts.length; i++) {
|
|
504
|
+
var part = parts[i];
|
|
505
|
+
if (!isAlive(viewer, part)) {
|
|
506
|
+
continue;
|
|
507
|
+
}
|
|
508
|
+
if (part instanceof Cesium.Cesium3DTileFeature) {
|
|
509
|
+
part[getStoreStateKey("highlight")] = true;
|
|
510
|
+
refreshColor(viewer, part, getAppliedOpacity(part));
|
|
511
|
+
}
|
|
512
|
+
else if (part instanceof Cesium.Entity) {
|
|
513
|
+
if (part.billboard) {
|
|
514
|
+
part.billboard[getStoreStateKey("highlight")] = true;
|
|
515
|
+
refreshColor(viewer, part.billboard, getAppliedOpacity(part.billboard));
|
|
516
|
+
}
|
|
517
|
+
if (part.model) {
|
|
518
|
+
part.model[getStoreStateKey("highlight")] = true;
|
|
519
|
+
refreshColor(viewer, part.model, getAppliedOpacity(part.model));
|
|
520
|
+
}
|
|
521
|
+
if (part.polyline) {
|
|
522
|
+
part.polyline[getStoreStateKey("highlight")] = true;
|
|
523
|
+
refreshColor(viewer, part.polyline, getAppliedOpacity(part.polyline));
|
|
524
|
+
}
|
|
525
|
+
if (part.polygon) {
|
|
526
|
+
part.polygon[getStoreStateKey("highlight")] = true;
|
|
527
|
+
refreshColor(viewer, part.polygon, getAppliedOpacity(part.polygon));
|
|
528
|
+
}
|
|
529
|
+
if (part.corridor) {
|
|
530
|
+
part.corridor[getStoreStateKey("highlight")] = true;
|
|
531
|
+
refreshColor(viewer, part.corridor, getAppliedOpacity(part.corridor));
|
|
532
|
+
}
|
|
533
|
+
if (part.point) {
|
|
534
|
+
part.point[getStoreStateKey("highlight")] = true;
|
|
535
|
+
refreshColor(viewer, part.point, getAppliedOpacity(part.point));
|
|
536
|
+
}
|
|
537
|
+
if (part.ellipse) {
|
|
538
|
+
part.ellipse[getStoreStateKey("highlight")] = true;
|
|
539
|
+
refreshColor(viewer, part.ellipse, getAppliedOpacity(part.ellipse));
|
|
540
|
+
}
|
|
541
|
+
}
|
|
542
|
+
}
|
|
543
|
+
if (requestRender != false) {
|
|
544
|
+
viewer.scene.requestRender();
|
|
545
|
+
}
|
|
546
|
+
}
|
|
547
|
+
CesiumEntityStyler.Highlight = Highlight;
|
|
548
|
+
/**
|
|
549
|
+
* Removes the highlight from a graphic and refreshes it.
|
|
550
|
+
* @param params
|
|
551
|
+
*/
|
|
552
|
+
function Unhighlight(params) {
|
|
553
|
+
var viewer = params.viewer, entity = params.entity, requestRender = params.requestRender;
|
|
554
|
+
if (!entity) {
|
|
555
|
+
return;
|
|
556
|
+
}
|
|
557
|
+
var parts = entity_utils_1.EntityUtils.GatherEntity({
|
|
558
|
+
entity: entity
|
|
559
|
+
});
|
|
560
|
+
for (var i = 0; i < parts.length; i++) {
|
|
561
|
+
var part = parts[i];
|
|
562
|
+
if (!isAlive(viewer, part)) {
|
|
563
|
+
continue;
|
|
564
|
+
}
|
|
565
|
+
if (part instanceof Cesium.Cesium3DTileFeature) {
|
|
566
|
+
part[getStoreStateKey("highlight")] = false;
|
|
567
|
+
refreshColor(viewer, part, getAppliedOpacity(part));
|
|
568
|
+
}
|
|
569
|
+
else if (part instanceof Cesium.Entity) {
|
|
570
|
+
if (part.billboard) {
|
|
571
|
+
part.billboard[getStoreStateKey("highlight")] = false;
|
|
572
|
+
refreshColor(viewer, part.billboard, getAppliedOpacity(part.billboard));
|
|
573
|
+
}
|
|
574
|
+
if (part.model) {
|
|
575
|
+
part.model[getStoreStateKey("highlight")] = false;
|
|
576
|
+
refreshColor(viewer, part.model, getAppliedOpacity(part.model));
|
|
577
|
+
}
|
|
578
|
+
if (part.polyline) {
|
|
579
|
+
part.polyline[getStoreStateKey("highlight")] = false;
|
|
580
|
+
refreshColor(viewer, part.polyline, getAppliedOpacity(part.polyline));
|
|
581
|
+
}
|
|
582
|
+
if (part.polygon) {
|
|
583
|
+
part.polygon[getStoreStateKey("highlight")] = false;
|
|
584
|
+
refreshColor(viewer, part.polygon, getAppliedOpacity(part.polygon));
|
|
585
|
+
}
|
|
586
|
+
if (part.corridor) {
|
|
587
|
+
part.corridor[getStoreStateKey("highlight")] = false;
|
|
588
|
+
refreshColor(viewer, part.corridor, getAppliedOpacity(part.corridor));
|
|
589
|
+
}
|
|
590
|
+
if (part.point) {
|
|
591
|
+
part.point[getStoreStateKey("highlight")] = false;
|
|
592
|
+
refreshColor(viewer, part.point, getAppliedOpacity(part.point));
|
|
593
|
+
}
|
|
594
|
+
if (part.ellipse) {
|
|
595
|
+
part.ellipse[getStoreStateKey("highlight")] = false;
|
|
596
|
+
refreshColor(viewer, part.ellipse, getAppliedOpacity(part.ellipse));
|
|
597
|
+
}
|
|
598
|
+
}
|
|
599
|
+
}
|
|
600
|
+
if (requestRender != false) {
|
|
601
|
+
viewer.scene.requestRender();
|
|
602
|
+
}
|
|
603
|
+
}
|
|
604
|
+
CesiumEntityStyler.Unhighlight = Unhighlight;
|
|
605
|
+
})(CesiumEntityStyler = exports.CesiumEntityStyler || (exports.CesiumEntityStyler = {}));
|
|
606
|
+
//# sourceMappingURL=cesium-entity-styler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cesium-entity-styler.js","sourceRoot":"","sources":["../../../src/utils/cesium-entity-styler.ts"],"names":[],"mappings":"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"}
|