bruce-cesium 2.9.3 → 2.9.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.
@@ -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, Cartesian2, CallbackProperty, Cartesian3, Color, Rectangle, Math as Math$1, JulianDate, HeightReference, DistanceDisplayCondition, NearFarScalar, Entity, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, CornerType, ShadowMode, PolygonHierarchy, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, Primitive, Cesium3DTileFeature, SceneMode, Cesium3DTileColorBlendMode, HeadingPitchRange, Cesium3DTileStyle, createOsmBuildings, KmlDataSource, OrthographicFrustum, EasingFunction, SceneTransforms, EllipsoidTerrainProvider, CesiumInspector, defined, createWorldTerrain, CesiumTerrainProvider, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, MapboxStyleImageryProvider, ArcGisMapServerImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, IonImageryProvider, EllipsoidGeodesic, sampleTerrainMostDetailed, Cesium3DTileset, Model, PolygonPipeline, Matrix4, Matrix3, IonResource, Ion, ColorMaterialProperty, GeometryInstance, ScreenSpaceEventHandler, ScreenSpaceEventType, BoundingSphere } from 'cesium';
3
+ import { Cartographic, Cartesian2, CallbackProperty, Cartesian3, Color, Rectangle, Math as Math$1, JulianDate, Entity, Primitive, Cesium3DTileFeature, SceneMode, HeightReference, DistanceDisplayCondition, NearFarScalar, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, CornerType, ShadowMode, PolygonHierarchy, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, Cesium3DTileColorBlendMode, HeadingPitchRange, Cesium3DTileStyle, KmlDataSource, createOsmBuildings, createWorldTerrain, EllipsoidTerrainProvider, CesiumTerrainProvider, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, MapboxStyleImageryProvider, ArcGisMapServerImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, IonImageryProvider, SceneTransforms, CesiumInspector, OrthographicFrustum, defined, Cesium3DTileset, Matrix4, Matrix3, IonResource, Ion, EllipsoidGeodesic, sampleTerrainMostDetailed, Model, EasingFunction, PolygonPipeline, ColorMaterialProperty, GeometryInstance, ScreenSpaceEventHandler, ScreenSpaceEventType, BoundingSphere } from 'cesium';
4
4
 
5
5
  var TIME_LAG = 300;
6
6
  var POSITION_CHECK_TIMER = 950;
@@ -1967,6 +1967,24 @@ var createCircleBillboard = function (size, colorCss) {
1967
1967
  _billboardCache.Set(key, data);
1968
1968
  return data;
1969
1969
  };
1970
+ /**
1971
+ * Removes duplicate points in a row and returns a new array.
1972
+ * Passed array is not mutated.
1973
+ * @param posses
1974
+ */
1975
+ function cullDuplicatePoints(posses) {
1976
+ var newPosses = [];
1977
+ var lastPos = null;
1978
+ for (var i = 0; i < posses.length; i++) {
1979
+ var pos = posses[i];
1980
+ // Avoiding 'Cesium.Cartesian3.equals' because passed data might be just a json blob in certain cases.
1981
+ if (pos && (!lastPos || (pos.x != lastPos.x || pos.y != lastPos.y || pos.z != lastPos.z))) {
1982
+ newPosses.push(pos);
1983
+ lastPos = pos;
1984
+ }
1985
+ }
1986
+ return newPosses;
1987
+ }
1970
1988
  var EntityRenderEngine;
1971
1989
  (function (EntityRenderEngine) {
1972
1990
  function Render(params) {
@@ -2098,10 +2116,13 @@ var EntityRenderEngine;
2098
2116
  }
2099
2117
  });
2100
2118
  rendered = rendered.concat(Object.values(cLines));
2119
+ if (!!rendered.length) return [3 /*break*/, 4];
2101
2120
  return [4 /*yield*/, Point.RenderGroup(pParams)];
2102
2121
  case 3:
2103
2122
  cPoints = _k.sent();
2104
2123
  rendered = rendered.concat(Object.values(cPoints));
2124
+ _k.label = 4;
2125
+ case 4:
2105
2126
  rendered = rendered.filter(function (x) { return x != null; });
2106
2127
  if (rendered.length) {
2107
2128
  rootEntity_1 = new Entity({});
@@ -2552,6 +2573,7 @@ var EntityRenderEngine;
2552
2573
  flattenPoints = true;
2553
2574
  }
2554
2575
  var posses = points.map(function (x) { return Cartesian3.fromDegrees(EnsureNumber(x.longitude), EnsureNumber(x.latitude), EnsureNumber(flattenPoints ? 0 : x.altitude)); });
2576
+ posses = cullDuplicatePoints(posses);
2555
2577
  // 5 points should be enough to tell most bad data.
2556
2578
  var CHECK_POINTS = 5;
2557
2579
  var MIN_LEN = 0.001;
@@ -2730,6 +2752,10 @@ var EntityRenderEngine;
2730
2752
  Cartes.CloseRing3(posses);
2731
2753
  var extrusion = getPolygonExtrusion(entity, params.tags, outerRing, posses, heightRef, style);
2732
2754
  posses = extrusion.posses;
2755
+ posses = cullDuplicatePoints(posses);
2756
+ if (posses.length < 4) {
2757
+ return null;
2758
+ }
2733
2759
  var flattenPoints = false;
2734
2760
  if (heightRef == HeightReference.CLAMP_TO_GROUND && shouldApplyFlatFix((_b = params.viewer) === null || _b === void 0 ? void 0 : _b.terrainProvider)) {
2735
2761
  heightRef = HeightReference.NONE;
@@ -2738,8 +2764,10 @@ var EntityRenderEngine;
2738
2764
  var holeRings = pRings.filter(function (x) { return x.Facing == Geometry.EPolygonRingType.Hole; });
2739
2765
  var holePosses = holeRings.map(function (x) {
2740
2766
  var points = Geometry.ParsePoints(x.LinearRing);
2741
- return points.map(function (x) { return Cartesian3.fromDegrees(EnsureNumber(x.longitude), EnsureNumber(x.latitude), EnsureNumber(flattenPoints ? 0 : x.altitude)); });
2742
- });
2767
+ var holePosses = points.map(function (x) { return Cartesian3.fromDegrees(EnsureNumber(x.longitude), EnsureNumber(x.latitude), EnsureNumber(flattenPoints ? 0 : x.altitude)); });
2768
+ holePosses = cullDuplicatePoints(holePosses);
2769
+ return holePosses;
2770
+ }).filter(function (x) { return x.length >= 4; });
2743
2771
  var zIndex = getZIndex(style, entity, params.tags);
2744
2772
  var size = getSizeOfPolygonEntity(entity);
2745
2773
  var classification = ClassificationType.TERRAIN;
@@ -7468,6 +7496,18 @@ var TilesetRenderEngine;
7468
7496
  }
7469
7497
  if (!pos3d) {
7470
7498
  pos3d = getCurPos3d();
7499
+ if (pos3d === null || pos3d === void 0 ? void 0 : pos3d.x) {
7500
+ var carto = Cartographic.fromCartesian(pos3d);
7501
+ if (!isNaN(carto === null || carto === void 0 ? void 0 : carto.latitude)) {
7502
+ // We reapply back to the tileset so we can reference this location later.
7503
+ // For example we can reference within editing tools in navigator.
7504
+ position.location = {
7505
+ altitude: carto.height,
7506
+ latitude: Math$1.toDegrees(carto.latitude),
7507
+ longitude: Math$1.toDegrees(carto.longitude)
7508
+ };
7509
+ }
7510
+ }
7471
7511
  }
7472
7512
  var offset = getOffset(pos3d, transform.x, transform.y, transform.z);
7473
7513
  if (Cartes.ValidateCartes3(offset)) {
@@ -16699,7 +16739,7 @@ var ViewerUtils;
16699
16739
  ViewerUtils.CreateWidgets = CreateWidgets;
16700
16740
  })(ViewerUtils || (ViewerUtils = {}));
16701
16741
 
16702
- var VERSION$1 = "2.9.3";
16742
+ var VERSION$1 = "2.9.5";
16703
16743
 
16704
16744
  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, EntityLabel, ViewRenderEngine, TileRenderEngine, TilesetRenderEngine, CESIUM_INSPECTOR_KEY, ViewUtils, DrawingUtils, MeasureUtils, EntityUtils, Draw3dPolygon, Draw3dPolyline };
16705
16745
  //# sourceMappingURL=bruce-cesium.es5.js.map