bruce-cesium 2.7.3 → 2.7.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 +162 -140
- package/dist/bruce-cesium.es5.js.map +1 -1
- package/dist/bruce-cesium.umd.js +161 -139
- package/dist/bruce-cesium.umd.js.map +1 -1
- package/dist/lib/bruce-cesium.js +1 -1
- package/dist/lib/rendering/entity-render-engine.js +13 -2
- package/dist/lib/rendering/entity-render-engine.js.map +1 -1
- package/dist/lib/rendering/render-managers/common/cesium-parabola.js +64 -19
- package/dist/lib/rendering/render-managers/common/cesium-parabola.js.map +1 -1
- package/dist/lib/rendering/render-managers/entities/entities-render-manager.js +2 -4
- package/dist/lib/rendering/render-managers/entities/entities-render-manager.js.map +1 -1
- package/dist/lib/rendering/render-managers/other/relations-render-manager.js +6 -0
- package/dist/lib/rendering/render-managers/other/relations-render-manager.js.map +1 -1
- package/dist/lib/widgets/common/draw-3d-polygon.js +26 -54
- package/dist/lib/widgets/common/draw-3d-polygon.js.map +1 -1
- package/dist/lib/widgets/common/draw-3d-polyline.js +46 -56
- package/dist/lib/widgets/common/draw-3d-polyline.js.map +1 -1
- package/dist/types/bruce-cesium.d.ts +1 -1
- package/dist/types/rendering/render-managers/common/cesium-parabola.d.ts +1 -0
- package/package.json +2 -2
package/dist/bruce-cesium.es5.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BruceEvent, Cartes, Carto, Entity as Entity$1, Geometry, Tileset, MathUtils, LRUCache, ZoomControl, Style, EntityTag, Calculator, EntityLod, EntityType, ClientFile, ObjectUtils, Bounds, EntityRelationType, DelayQueue, BatchedDataGetter, EntityCoords, EntityFilterGetter, EntitySource, MenuItem, EntityRelation, ENVIRONMENT, ProjectView, ProjectViewBookmark, ProjectViewTile, ProjectViewLegacyTile, ProgramKey, Camera, AbstractApi, EntityAttachment, EntityAttachmentType, EntityAttribute } from 'bruce-models';
|
|
2
2
|
import * as Cesium from 'cesium';
|
|
3
|
-
import { Cartographic,
|
|
3
|
+
import { Cartographic, Cartesian2, CallbackProperty, Cartesian3, Color, Rectangle, Math as Math$1, JulianDate, SceneMode, Entity, Primitive, Cesium3DTileFeature, HeightReference, DistanceDisplayCondition, NearFarScalar, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, CornerType, ShadowMode, PolygonHierarchy, HeadingPitchRoll, Transforms, ColorBlendMode, Cesium3DTileColorBlendMode, HeadingPitchRange, createOsmBuildings, Cesium3DTileStyle, KmlDataSource, OrthographicFrustum, EasingFunction, EllipsoidTerrainProvider, CesiumInspector, defined, Cesium3DTileset, Matrix4, Matrix3, IonResource, createWorldTerrain, CesiumTerrainProvider, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, MapboxStyleImageryProvider, ArcGisMapServerImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, IonImageryProvider, EllipsoidGeodesic, sampleTerrainMostDetailed, Model, PolygonPipeline, ColorMaterialProperty, GeometryInstance, ScreenSpaceEventHandler, ScreenSpaceEventType, Ion, BoundingSphere } from 'cesium';
|
|
4
4
|
|
|
5
5
|
var TIME_LAG = 300;
|
|
6
6
|
var POSITION_CHECK_TIMER = 950;
|
|
@@ -1766,7 +1766,7 @@ function getName(api, entity) {
|
|
|
1766
1766
|
}
|
|
1767
1767
|
function getStyle(api, entity, styleId) {
|
|
1768
1768
|
return __awaiter(this, void 0, void 0, function () {
|
|
1769
|
-
var style, e_2, typeId, type, e_3;
|
|
1769
|
+
var style, e_2, typeId, type, e_3, hideError, error, code;
|
|
1770
1770
|
return __generator(this, function (_a) {
|
|
1771
1771
|
switch (_a.label) {
|
|
1772
1772
|
case 0:
|
|
@@ -1809,7 +1809,18 @@ function getStyle(api, entity, styleId) {
|
|
|
1809
1809
|
return [3 /*break*/, 9];
|
|
1810
1810
|
case 8:
|
|
1811
1811
|
e_3 = _a.sent();
|
|
1812
|
-
|
|
1812
|
+
hideError = false;
|
|
1813
|
+
// TODO: we need a util for extracting code + message rather than writing all this every time.
|
|
1814
|
+
if (e_3 && typeof e_3 == "object" && e_3.ERROR) {
|
|
1815
|
+
error = e_3.ERROR;
|
|
1816
|
+
code = error && typeof error == "object" ? error.Code : "";
|
|
1817
|
+
// Avoiding logging a common error.
|
|
1818
|
+
// This happens when rendering entities that don't have records.
|
|
1819
|
+
hideError = String(code).toLowerCase() == "notfound";
|
|
1820
|
+
}
|
|
1821
|
+
if (!hideError) {
|
|
1822
|
+
console.error(e_3);
|
|
1823
|
+
}
|
|
1813
1824
|
return [3 /*break*/, 9];
|
|
1814
1825
|
case 9: return [2 /*return*/, style];
|
|
1815
1826
|
}
|
|
@@ -3066,6 +3077,7 @@ var EntityRenderEngine;
|
|
|
3066
3077
|
*/
|
|
3067
3078
|
var CesiumParabola = /** @class */ (function () {
|
|
3068
3079
|
function CesiumParabola(params) {
|
|
3080
|
+
this.disposed = false;
|
|
3069
3081
|
this.color = "white";
|
|
3070
3082
|
this.width = 2;
|
|
3071
3083
|
this.duration = 10;
|
|
@@ -3147,6 +3159,9 @@ var CesiumParabola = /** @class */ (function () {
|
|
|
3147
3159
|
};
|
|
3148
3160
|
CesiumParabola.prototype.Animate = function () {
|
|
3149
3161
|
var _this = this;
|
|
3162
|
+
if (this.disposed) {
|
|
3163
|
+
return null;
|
|
3164
|
+
}
|
|
3150
3165
|
if (this.parabola && !this.viewer.entities.contains(this.parabola)) {
|
|
3151
3166
|
this.viewer.entities.add(this.parabola);
|
|
3152
3167
|
}
|
|
@@ -3178,9 +3193,34 @@ var CesiumParabola = /** @class */ (function () {
|
|
|
3178
3193
|
var RATE_PER_SECOND = 1000 / 40;
|
|
3179
3194
|
var SEC_DURATION = this.duration;
|
|
3180
3195
|
var HEIGHT_DISTANCE_RATIO = this.heightDistanceRatio;
|
|
3181
|
-
var TOTAL_POINTS =
|
|
3182
|
-
var POINT_LENGTH =
|
|
3183
|
-
var TICK_LENGTH_INC =
|
|
3196
|
+
var TOTAL_POINTS = null;
|
|
3197
|
+
var POINT_LENGTH = null;
|
|
3198
|
+
var TICK_LENGTH_INC = null;
|
|
3199
|
+
// Updates TOTAL_POINTS, POINT_LENGTH, and TICK_LENGTH_INC based on current TOTAL_LENGTH and camera position.
|
|
3200
|
+
// We want less points the further away the camera is.
|
|
3201
|
+
var updateParams = function () {
|
|
3202
|
+
var _a, _b;
|
|
3203
|
+
// TODO: Do distance to parabola line instead.
|
|
3204
|
+
var MIN_POINTS = 30;
|
|
3205
|
+
var totalPoints = 80;
|
|
3206
|
+
var cameraHeight = (_b = (_a = _this.viewer.camera) === null || _a === void 0 ? void 0 : _a.positionCartographic) === null || _b === void 0 ? void 0 : _b.height;
|
|
3207
|
+
if (isNaN(cameraHeight) || cameraHeight >= 100000) {
|
|
3208
|
+
totalPoints = MIN_POINTS;
|
|
3209
|
+
}
|
|
3210
|
+
else if (cameraHeight >= 10000) {
|
|
3211
|
+
totalPoints = 50;
|
|
3212
|
+
}
|
|
3213
|
+
else if (cameraHeight >= 1000) {
|
|
3214
|
+
totalPoints = 80;
|
|
3215
|
+
}
|
|
3216
|
+
else if (cameraHeight >= 100) {
|
|
3217
|
+
totalPoints = 100;
|
|
3218
|
+
}
|
|
3219
|
+
TOTAL_POINTS = Math.max(MIN_POINTS, Math.min(totalPoints, TOTAL_LENGTH * 0.1));
|
|
3220
|
+
POINT_LENGTH = TOTAL_LENGTH / TOTAL_POINTS;
|
|
3221
|
+
TICK_LENGTH_INC = SEC_DURATION == 0 ? TOTAL_LENGTH : TOTAL_POINTS / (RATE_PER_SECOND * SEC_DURATION);
|
|
3222
|
+
};
|
|
3223
|
+
updateParams();
|
|
3184
3224
|
var curPoint = 0;
|
|
3185
3225
|
var quadraticKey = null;
|
|
3186
3226
|
var quadratic = null;
|
|
@@ -3336,30 +3376,45 @@ var CesiumParabola = /** @class */ (function () {
|
|
|
3336
3376
|
for (var i = 0; i < totalCycles; i++) {
|
|
3337
3377
|
posses.push(getPosition(i));
|
|
3338
3378
|
}
|
|
3339
|
-
|
|
3379
|
+
if (chips) {
|
|
3380
|
+
posses.push(getPosition(increment + chips));
|
|
3381
|
+
}
|
|
3340
3382
|
if (posses.find(function (x) { return !x || !Cartes.ValidateCartes3(x); })) {
|
|
3341
3383
|
return;
|
|
3342
3384
|
}
|
|
3343
3385
|
_this.curPoints = posses;
|
|
3344
3386
|
};
|
|
3387
|
+
var lastTickDate = new Date();
|
|
3388
|
+
var finished = false;
|
|
3345
3389
|
var doTick = function () {
|
|
3346
|
-
var
|
|
3347
|
-
var
|
|
3348
|
-
var
|
|
3349
|
-
if (
|
|
3350
|
-
|
|
3351
|
-
|
|
3352
|
-
|
|
3353
|
-
|
|
3354
|
-
|
|
3355
|
-
|
|
3356
|
-
|
|
3357
|
-
|
|
3358
|
-
|
|
3390
|
+
var curDate = new Date();
|
|
3391
|
+
var seconds = (curDate.getTime() - lastTickDate.getTime()) / 1000;
|
|
3392
|
+
var ticks = seconds * RATE_PER_SECOND;
|
|
3393
|
+
if (!isNaN(ticks) && ticks >= 1) {
|
|
3394
|
+
lastTickDate = curDate;
|
|
3395
|
+
var p1 = _this.curPos1;
|
|
3396
|
+
var p2 = _this.curPos2;
|
|
3397
|
+
var newLength = p1 && p2 ? Cartesian3.distance(p1, p2) : -1;
|
|
3398
|
+
if (newLength > 0 && newLength != TOTAL_LENGTH) {
|
|
3399
|
+
TOTAL_LENGTH = newLength;
|
|
3400
|
+
updateParams();
|
|
3401
|
+
}
|
|
3402
|
+
prepareQuadratic();
|
|
3403
|
+
if (quadratic) {
|
|
3404
|
+
if (curPoint < TOTAL_POINTS) {
|
|
3405
|
+
curPoint += (TICK_LENGTH_INC * ticks);
|
|
3406
|
+
}
|
|
3407
|
+
updatePoints();
|
|
3408
|
+
}
|
|
3409
|
+
_this.viewer.scene.requestRender();
|
|
3410
|
+
if (curPoint >= TOTAL_POINTS && !finished) {
|
|
3411
|
+
finished = true;
|
|
3412
|
+
// We can make the interval update super slow now.
|
|
3413
|
+
// We keep it updating in case the positions move.
|
|
3414
|
+
clearInterval(_this.animateInterval);
|
|
3415
|
+
_this.animateInterval = setInterval(doTick, 3000);
|
|
3359
3416
|
}
|
|
3360
|
-
updatePoints();
|
|
3361
3417
|
}
|
|
3362
|
-
_this.viewer.scene.requestRender();
|
|
3363
3418
|
};
|
|
3364
3419
|
this.animateInterval = setInterval(doTick, RATE_PER_SECOND);
|
|
3365
3420
|
return {
|
|
@@ -3369,6 +3424,7 @@ var CesiumParabola = /** @class */ (function () {
|
|
|
3369
3424
|
};
|
|
3370
3425
|
CesiumParabola.prototype.Dispose = function () {
|
|
3371
3426
|
var _this = this;
|
|
3427
|
+
this.disposed = true;
|
|
3372
3428
|
clearTimeout(this.retryTimeout);
|
|
3373
3429
|
clearInterval(this.animateInterval);
|
|
3374
3430
|
var cEntities = [
|
|
@@ -5474,16 +5530,14 @@ var EntitiesRenderManager;
|
|
|
5474
5530
|
viewer: this.viewer,
|
|
5475
5531
|
// Unfortunately this searches as an "AND" rather than "OR" which does not meet our needs here.
|
|
5476
5532
|
// So for multiple tags we'll manually sort on UI end...
|
|
5477
|
-
tagIds: tagsToRender
|
|
5533
|
+
tagIds: (tagsToRender === null || tagsToRender === void 0 ? void 0 : tagsToRender.length) ? tagsToRender : [],
|
|
5478
5534
|
debugShowBounds: Boolean(window === null || window === void 0 ? void 0 : window.ENTITIES_RENDER_MANAGER_SHOW_BOUNDS),
|
|
5479
5535
|
cdn: this.item.cdnEnabled
|
|
5480
5536
|
});
|
|
5481
5537
|
var minMax = RenderManager.GetZoomMinMax({
|
|
5482
5538
|
zoomControl: this.item.CameraZoomSettings
|
|
5483
5539
|
});
|
|
5484
|
-
|
|
5485
|
-
// So for multiple tags we'll manually sort on UI end...
|
|
5486
|
-
this.getter.IncludeMenuItem(this.item.id, tagsToRender.length == 1 ? tagsToRender : [], minMax[0], minMax[1]);
|
|
5540
|
+
this.getter.IncludeMenuItem(this.item.id, (tagsToRender === null || tagsToRender === void 0 ? void 0 : tagsToRender.length) ? tagsToRender : [], minMax[0], minMax[1]);
|
|
5487
5541
|
this.getterSub = this.getter.OnUpdate.Subscribe(function (entities) {
|
|
5488
5542
|
if (isTagItem) {
|
|
5489
5543
|
_this.distributeForRender(entities.filter(function (entity) {
|
|
@@ -9115,6 +9169,12 @@ var RelationsRenderManager;
|
|
|
9115
9169
|
})];
|
|
9116
9170
|
case 1:
|
|
9117
9171
|
cEntities = _c.sent();
|
|
9172
|
+
if (this.disposed) {
|
|
9173
|
+
this.register.RemoveRegos({
|
|
9174
|
+
menuItemId: this.item.id
|
|
9175
|
+
});
|
|
9176
|
+
return [2 /*return*/];
|
|
9177
|
+
}
|
|
9118
9178
|
for (i = 0; i < relations.length; i++) {
|
|
9119
9179
|
relation = relations[i];
|
|
9120
9180
|
key = RelationRenderEngine.GetRenderGroupId(relation);
|
|
@@ -12385,71 +12445,43 @@ var ViewRenderEngine;
|
|
|
12385
12445
|
})(ViewRenderEngine || (ViewRenderEngine = {}));
|
|
12386
12446
|
|
|
12387
12447
|
var DEFAULT_SMOOTH_MULTIPLIER = 0;
|
|
12388
|
-
function
|
|
12389
|
-
var
|
|
12390
|
-
|
|
12391
|
-
|
|
12392
|
-
var x1 = carto1.longitude;
|
|
12393
|
-
var y1 = carto1.latitude;
|
|
12394
|
-
var x2 = carto2.longitude;
|
|
12395
|
-
var y2 = carto2.latitude;
|
|
12396
|
-
var x3 = carto3.longitude;
|
|
12397
|
-
var y3 = carto3.latitude;
|
|
12398
|
-
var A = x1 - x2;
|
|
12399
|
-
var B = y1 - y2;
|
|
12400
|
-
var C = x3 - x2;
|
|
12401
|
-
var D = y3 - y2;
|
|
12402
|
-
var dot = A * C + B * D;
|
|
12403
|
-
var lenSq = C * C + D * D;
|
|
12404
|
-
var param = dot / lenSq;
|
|
12405
|
-
var xx;
|
|
12406
|
-
var yy;
|
|
12407
|
-
if (param < 0 || x2 == x3 && y2 == y3) {
|
|
12408
|
-
xx = x2;
|
|
12409
|
-
yy = y2;
|
|
12410
|
-
}
|
|
12411
|
-
else if (param > 1) {
|
|
12412
|
-
xx = x3;
|
|
12413
|
-
yy = y3;
|
|
12448
|
+
function distanceToSegment$1(p, v, w) {
|
|
12449
|
+
var l2 = Cartesian3.distanceSquared(v, w);
|
|
12450
|
+
if (l2 === 0) {
|
|
12451
|
+
return Cartesian3.distance(p, v);
|
|
12414
12452
|
}
|
|
12415
|
-
|
|
12416
|
-
|
|
12417
|
-
|
|
12453
|
+
var t = Cartesian3.dot(Cartesian3.subtract(p, v, new Cartesian3()), Cartesian3.subtract(w, v, new Cartesian3())) / l2;
|
|
12454
|
+
if (t < 0) {
|
|
12455
|
+
return Cartesian3.distance(p, v);
|
|
12456
|
+
}
|
|
12457
|
+
if (t > 1) {
|
|
12458
|
+
return Cartesian3.distance(p, w);
|
|
12418
12459
|
}
|
|
12419
|
-
var
|
|
12420
|
-
|
|
12421
|
-
return Math.sqrt(dx * dx + dy * dy);
|
|
12460
|
+
var projection = Cartesian3.add(v, Cartesian3.multiplyByScalar(Cartesian3.subtract(w, v, new Cartesian3()), t, new Cartesian3()), new Cartesian3());
|
|
12461
|
+
return Cartesian3.distance(p, projection);
|
|
12422
12462
|
}
|
|
12463
|
+
/**
|
|
12464
|
+
* Returns splice index into a list of positions to insert a new position.
|
|
12465
|
+
* @param positions List of positions to insert into.
|
|
12466
|
+
* @param pos3d New position to insert.
|
|
12467
|
+
* @returns Index to insert at.
|
|
12468
|
+
*/
|
|
12423
12469
|
function getInsertIndex(positions, pos3d) {
|
|
12424
12470
|
if (positions.length < 2) {
|
|
12425
12471
|
return 0;
|
|
12426
12472
|
}
|
|
12473
|
+
var minDistance = Infinity;
|
|
12427
12474
|
var index = -1;
|
|
12428
|
-
|
|
12429
|
-
var
|
|
12430
|
-
|
|
12431
|
-
|
|
12432
|
-
|
|
12433
|
-
|
|
12434
|
-
|
|
12435
|
-
pos2 = positions[0];
|
|
12436
|
-
pos2Index = 0;
|
|
12437
|
-
}
|
|
12438
|
-
else {
|
|
12439
|
-
pos2 = positions[j + 1];
|
|
12440
|
-
pos2Index = j + 1;
|
|
12441
|
-
}
|
|
12442
|
-
if (Cartes.ValidateCartes3(pos1), Cartes.ValidateCartes3(pos2)) {
|
|
12443
|
-
var length_1 = avgDistanceFromPointPair(pos3d, pos1, pos2);
|
|
12444
|
-
if (index == -1 || length_1 < distance) {
|
|
12445
|
-
var insertIndex = pos2Index == 0 ? 0 : j > pos2Index ? j : pos2Index;
|
|
12446
|
-
index = insertIndex;
|
|
12447
|
-
distance = length_1;
|
|
12448
|
-
}
|
|
12449
|
-
}
|
|
12475
|
+
for (var i = 0; i < positions.length; i++) {
|
|
12476
|
+
var pos1 = positions[i];
|
|
12477
|
+
var pos2 = i < positions.length - 1 ? positions[i + 1] : positions[0];
|
|
12478
|
+
var dist = distanceToSegment$1(pos3d, pos1, pos2);
|
|
12479
|
+
if (dist < minDistance) {
|
|
12480
|
+
minDistance = dist;
|
|
12481
|
+
index = i + 1;
|
|
12450
12482
|
}
|
|
12451
12483
|
}
|
|
12452
|
-
return index
|
|
12484
|
+
return index;
|
|
12453
12485
|
}
|
|
12454
12486
|
var OUTLINE_COLOR = "rgba(51, 177, 255, 0.2)";
|
|
12455
12487
|
var FILL_COLOR = "#33B1FF";
|
|
@@ -12852,71 +12884,61 @@ var Draw3dPolygon = /** @class */ (function () {
|
|
|
12852
12884
|
}());
|
|
12853
12885
|
|
|
12854
12886
|
var DEFAULT_SMOOTH_MULTIPLIER$1 = 0;
|
|
12855
|
-
function
|
|
12856
|
-
var
|
|
12857
|
-
|
|
12858
|
-
|
|
12859
|
-
var x1 = carto1.longitude;
|
|
12860
|
-
var y1 = carto1.latitude;
|
|
12861
|
-
var x2 = carto2.longitude;
|
|
12862
|
-
var y2 = carto2.latitude;
|
|
12863
|
-
var x3 = carto3.longitude;
|
|
12864
|
-
var y3 = carto3.latitude;
|
|
12865
|
-
var A = x1 - x2;
|
|
12866
|
-
var B = y1 - y2;
|
|
12867
|
-
var C = x3 - x2;
|
|
12868
|
-
var D = y3 - y2;
|
|
12869
|
-
var dot = A * C + B * D;
|
|
12870
|
-
var lenSq = C * C + D * D;
|
|
12871
|
-
var param = dot / lenSq;
|
|
12872
|
-
var xx;
|
|
12873
|
-
var yy;
|
|
12874
|
-
if (param < 0 || x2 == x3 && y2 == y3) {
|
|
12875
|
-
xx = x2;
|
|
12876
|
-
yy = y2;
|
|
12877
|
-
}
|
|
12878
|
-
else if (param > 1) {
|
|
12879
|
-
xx = x3;
|
|
12880
|
-
yy = y3;
|
|
12887
|
+
function distanceToSegment$2(p, v, w) {
|
|
12888
|
+
var l2 = Cartesian3.distanceSquared(v, w);
|
|
12889
|
+
if (l2 === 0) {
|
|
12890
|
+
return Cartesian3.distance(p, v);
|
|
12881
12891
|
}
|
|
12882
|
-
|
|
12883
|
-
|
|
12884
|
-
|
|
12892
|
+
var t = Cartesian3.dot(Cartesian3.subtract(p, v, new Cartesian3()), Cartesian3.subtract(w, v, new Cartesian3())) / l2;
|
|
12893
|
+
if (t < 0) {
|
|
12894
|
+
return Cartesian3.distance(p, v);
|
|
12895
|
+
}
|
|
12896
|
+
if (t > 1) {
|
|
12897
|
+
return Cartesian3.distance(p, w);
|
|
12885
12898
|
}
|
|
12886
|
-
var
|
|
12887
|
-
|
|
12888
|
-
return Math.sqrt(dx * dx + dy * dy);
|
|
12899
|
+
var projection = Cartesian3.add(v, Cartesian3.multiplyByScalar(Cartesian3.subtract(w, v, new Cartesian3()), t, new Cartesian3()), new Cartesian3());
|
|
12900
|
+
return Cartesian3.distance(p, projection);
|
|
12889
12901
|
}
|
|
12902
|
+
/**
|
|
12903
|
+
* Returns splice index into a list of positions to insert a new position.
|
|
12904
|
+
* @param positions List of positions to insert into.
|
|
12905
|
+
* @param pos3d New position to insert.
|
|
12906
|
+
* @returns Index to insert at.
|
|
12907
|
+
*/
|
|
12890
12908
|
function getInsertIndex$1(positions, pos3d) {
|
|
12891
12909
|
if (positions.length < 2) {
|
|
12892
12910
|
return 0;
|
|
12893
12911
|
}
|
|
12894
|
-
var
|
|
12895
|
-
|
|
12896
|
-
|
|
12897
|
-
|
|
12898
|
-
|
|
12899
|
-
|
|
12900
|
-
|
|
12901
|
-
|
|
12902
|
-
|
|
12903
|
-
|
|
12904
|
-
|
|
12905
|
-
|
|
12906
|
-
|
|
12907
|
-
|
|
12908
|
-
|
|
12909
|
-
|
|
12910
|
-
|
|
12911
|
-
|
|
12912
|
-
|
|
12913
|
-
|
|
12914
|
-
|
|
12915
|
-
|
|
12916
|
-
|
|
12917
|
-
|
|
12918
|
-
|
|
12919
|
-
|
|
12912
|
+
var minDistance = Infinity;
|
|
12913
|
+
var index = -1;
|
|
12914
|
+
// Check against segments
|
|
12915
|
+
for (var i = 0; i < positions.length - 1; i++) {
|
|
12916
|
+
var pos1 = positions[i];
|
|
12917
|
+
var pos2 = positions[i + 1];
|
|
12918
|
+
var dist = distanceToSegment$2(pos3d, pos1, pos2);
|
|
12919
|
+
if (dist < minDistance) {
|
|
12920
|
+
minDistance = dist;
|
|
12921
|
+
index = i + 1;
|
|
12922
|
+
}
|
|
12923
|
+
}
|
|
12924
|
+
// Check against start point
|
|
12925
|
+
var startDist = Cartesian3.distance(pos3d, positions[0]);
|
|
12926
|
+
if (startDist <= minDistance) {
|
|
12927
|
+
index = 0;
|
|
12928
|
+
minDistance = startDist;
|
|
12929
|
+
console.log("Insert at start");
|
|
12930
|
+
}
|
|
12931
|
+
else {
|
|
12932
|
+
console.log("Start distance was longer than cur distance. ".concat(startDist, " > ").concat(minDistance));
|
|
12933
|
+
}
|
|
12934
|
+
// Check against end point
|
|
12935
|
+
var endDist = Cartesian3.distance(pos3d, positions[positions.length - 1]);
|
|
12936
|
+
if (endDist <= minDistance) {
|
|
12937
|
+
index = positions.length;
|
|
12938
|
+
console.log("Insert at end");
|
|
12939
|
+
}
|
|
12940
|
+
else {
|
|
12941
|
+
console.log("End distance was longer than cur distance. ".concat(endDist, " > ").concat(minDistance));
|
|
12920
12942
|
}
|
|
12921
12943
|
return index;
|
|
12922
12944
|
}
|
|
@@ -15221,7 +15243,7 @@ var ViewerUtils;
|
|
|
15221
15243
|
ViewerUtils.CreateWidgets = CreateWidgets;
|
|
15222
15244
|
})(ViewerUtils || (ViewerUtils = {}));
|
|
15223
15245
|
|
|
15224
|
-
var VERSION$1 = "2.7.
|
|
15246
|
+
var VERSION$1 = "2.7.5";
|
|
15225
15247
|
|
|
15226
15248
|
export { VERSION$1 as VERSION, CesiumViewMonitor, ViewerUtils, MenuItemManager, EntityRenderEngine, MenuItemCreator, VisualsRegister, RenderManager, EntitiesIdsRenderManager, EntitiesLoadedRenderManager, EntitiesRenderManager, EntityRenderManager, TilesetCadRenderManager, TilesetArbRenderManager, TilesetEntitiesRenderManager, TilesetOsmRenderManager, TilesetPointcloudRenderManager, TilesetGooglePhotosRenderManager, DataSourceStaticKmlManager, RelationsRenderManager, SharedGetters, CesiumParabola, ViewRenderEngine, TileRenderEngine, TilesetRenderEngine, CESIUM_INSPECTOR_KEY, ViewUtils, DrawingUtils, MeasureUtils, EntityUtils, Draw3dPolygon, Draw3dPolyline };
|
|
15227
15249
|
//# sourceMappingURL=bruce-cesium.es5.js.map
|