bruce-cesium 0.3.4 → 0.3.6

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,5 +1,5 @@
1
- import { BruceEvent, Cartes, Carto, Geometry, ZoomControl, Style, EntityTag, Calculator, EntityLod, EntityType, ClientFile, DelayQueue, Entity as Entity$1, BatchedDataGetter, ObjectUtils, Tileset, EntityFilterGetter, EntitySource, MenuItem, ProjectView, ProjectViewBookmark, ProjectViewTileSource, Camera, MathUtils } from 'bruce-models';
2
- import { Cartesian2, Cartographic, Math as Math$1, Color, HeightReference, Cartesian3, Entity, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, Viewer, ArcGisMapServerImageryProvider, ScreenSpaceEventType, Primitive, Cesium3DTileFeature, HeadingPitchRange, OrthographicFrustum, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, createWorldTerrain, CesiumTerrainProvider, EllipsoidTerrainProvider, createOsmBuildings, Cesium3DTileStyle, Rectangle, Matrix4, Cesium3DTileset, EllipsoidGeodesic } from 'cesium';
1
+ import { BruceEvent, Cartes, Carto, Geometry, ZoomControl, Style, EntityTag, Calculator, EntityLod, EntityType, ClientFile, DelayQueue, Entity as Entity$1, BatchedDataGetter, ObjectUtils, Tileset, EntityCoords, EntityFilterGetter, EntitySource, MenuItem, ProjectView, ProjectViewBookmark, ProjectViewTileSource, Camera, MathUtils } from 'bruce-models';
2
+ import { Cartesian2, Cartographic, Math as Math$1, Color, HeightReference, Cartesian3, Entity, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, Viewer, ArcGisMapServerImageryProvider, ScreenSpaceEventType, Primitive, Cesium3DTileFeature, HeadingPitchRange, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, createWorldTerrain, CesiumTerrainProvider, EllipsoidTerrainProvider, OrthographicFrustum, EllipsoidGeodesic, createOsmBuildings, Cesium3DTileStyle, Rectangle, Matrix4, Cesium3DTileset } from 'cesium';
3
3
 
4
4
  var TIME_LAG = 300;
5
5
  var POSITION_CHECK_TIMER = 950;
@@ -1519,7 +1519,7 @@ var EntitiesRenderManager;
1519
1519
  Manager.prototype.onGetterUpdate = function (entities) {
1520
1520
  var _a;
1521
1521
  return __awaiter(this, void 0, void 0, function () {
1522
- var cEntities, i, id, cEntity, visual;
1522
+ var cEntities, i, entity, id, cEntity, visual;
1523
1523
  return __generator(this, function (_b) {
1524
1524
  switch (_b.label) {
1525
1525
  case 0:
@@ -1537,7 +1537,8 @@ var EntitiesRenderManager;
1537
1537
  case 1:
1538
1538
  cEntities = _b.sent();
1539
1539
  for (i = 0; i < entities.length; i++) {
1540
- id = entities[i].Bruce.ID;
1540
+ entity = entities[i];
1541
+ id = entity.Bruce.ID;
1541
1542
  cEntity = cEntities[id];
1542
1543
  this.renderedEntities[id] = !!cEntity;
1543
1544
  if (cEntity) {
@@ -1547,7 +1548,8 @@ var EntitiesRenderManager;
1547
1548
  entityId: id,
1548
1549
  menuItemId: this.item.id,
1549
1550
  visual: cEntity,
1550
- priority: 0
1551
+ priority: 0,
1552
+ entityTypeId: entity.Bruce["EntityType.ID"]
1551
1553
  });
1552
1554
  }
1553
1555
  }
@@ -1620,7 +1622,7 @@ var EntitiesLoadedRenderManager;
1620
1622
  Manager.prototype.onGetterUpdate = function (entities) {
1621
1623
  var _a;
1622
1624
  return __awaiter(this, void 0, void 0, function () {
1623
- var cEntities, i, id, cEntity, visual;
1625
+ var cEntities, i, entity, id, cEntity, visual;
1624
1626
  return __generator(this, function (_b) {
1625
1627
  switch (_b.label) {
1626
1628
  case 0:
@@ -1638,7 +1640,8 @@ var EntitiesLoadedRenderManager;
1638
1640
  case 1:
1639
1641
  cEntities = _b.sent();
1640
1642
  for (i = 0; i < entities.length; i++) {
1641
- id = entities[i].Bruce.ID;
1643
+ entity = entities[i];
1644
+ id = entity.Bruce.ID;
1642
1645
  cEntity = cEntities[id];
1643
1646
  this.renderedEntities[id] = !!cEntity;
1644
1647
  if (cEntity) {
@@ -1648,7 +1651,8 @@ var EntitiesLoadedRenderManager;
1648
1651
  entityId: id,
1649
1652
  menuItemId: this.item.id,
1650
1653
  visual: cEntity,
1651
- priority: 0
1654
+ priority: 0,
1655
+ entityTypeId: entity.Bruce["EntityType.ID"]
1652
1656
  });
1653
1657
  }
1654
1658
  }
@@ -2104,7 +2108,7 @@ var EntitiesIdsRenderManager;
2104
2108
  Manager.prototype.onGetterUpdate = function (entityIds) {
2105
2109
  var _a;
2106
2110
  return __awaiter(this, void 0, void 0, function () {
2107
- var api, entities, cEntities, i, id, cEntity, visual;
2111
+ var api, entities, cEntities, i, entity, id, cEntity, visual;
2108
2112
  return __generator(this, function (_b) {
2109
2113
  switch (_b.label) {
2110
2114
  case 0:
@@ -2126,7 +2130,8 @@ var EntitiesIdsRenderManager;
2126
2130
  case 2:
2127
2131
  cEntities = _b.sent();
2128
2132
  for (i = 0; i < entities.length; i++) {
2129
- id = entities[i].Bruce.ID;
2133
+ entity = entities[i];
2134
+ id = entity.Bruce.ID;
2130
2135
  cEntity = cEntities[id];
2131
2136
  this.renderedEntities[id] = !!cEntity;
2132
2137
  if (cEntity) {
@@ -2136,7 +2141,8 @@ var EntitiesIdsRenderManager;
2136
2141
  entityId: id,
2137
2142
  menuItemId: this.item.id,
2138
2143
  visual: cEntity,
2139
- priority: 0
2144
+ priority: 0,
2145
+ entityTypeId: entity.Bruce["EntityType.ID"]
2140
2146
  });
2141
2147
  }
2142
2148
  }
@@ -2235,7 +2241,8 @@ var EntityRenderManager;
2235
2241
  entityId: entity.Bruce.ID,
2236
2242
  menuItemId: this.item.id,
2237
2243
  visual: cEntity,
2238
- priority: 0
2244
+ priority: 0,
2245
+ entityTypeId: entity.Bruce["EntityType.ID"]
2239
2246
  });
2240
2247
  }
2241
2248
  }
@@ -2257,31 +2264,46 @@ function colorToCColor$1(color) {
2257
2264
  }
2258
2265
  var TilesetRenderEngine;
2259
2266
  (function (TilesetRenderEngine) {
2260
- function ApplySettings(cTileset, tileset) {
2267
+ function ApplyPosition(cTileset, tileset, coords) {
2261
2268
  if (tileset.type == Tileset.EType.Cad) {
2262
2269
  var settings = tileset.settings;
2263
- var root = cTileset.root;
2264
- var transform = settings.transform;
2265
- if (!transform) {
2266
- transform = {
2267
- heading: 0,
2268
- pitch: 0,
2269
- roll: 0,
2270
- scale: 1
2271
- };
2272
- }
2273
- var point = settings.location;
2274
- var pos = Cartesian3.fromDegrees(point.longitude, point.latitude, point.altitude);
2270
+ var location_1;
2271
+ var transform = void 0;
2272
+ // Position using root entity + ucs.
2273
+ if (coords === null || coords === void 0 ? void 0 : coords.ucs) {
2274
+ location_1 = coords.ucs.location;
2275
+ transform = coords.transform;
2276
+ }
2277
+ // Position using tileset.
2278
+ else {
2279
+ transform = settings.transform;
2280
+ location_1 = settings.location;
2281
+ }
2282
+ if (!(location_1 === null || location_1 === void 0 ? void 0 : location_1.latitude)) {
2283
+ return;
2284
+ }
2285
+ transform = __assign({ heading: 0, pitch: 0, roll: 0, scale: 1, x: 0, y: 0, z: 0 }, transform);
2286
+ if (transform.scale <= 0) {
2287
+ transform.scale = 0.000001;
2288
+ }
2289
+ var pos = Cartesian3.fromDegrees(location_1.longitude, location_1.latitude, location_1.altitude);
2275
2290
  var hpr = HeadingPitchRoll.fromDegrees(transform.heading, transform.pitch, transform.roll, new HeadingPitchRoll());
2291
+ var root = cTileset.root;
2276
2292
  root.transform = Transforms.headingPitchRollToFixedFrame(pos, hpr);
2277
- var scale = +(transform === null || transform === void 0 ? void 0 : transform.scale);
2278
- if (!scale || scale <= 0) {
2279
- scale = 0.000001;
2280
- }
2281
- var scaleMatrix = Matrix4.fromScale(new Cartesian3(scale, scale, scale), new Matrix4());
2293
+ var scaleMatrix = Matrix4.fromScale(new Cartesian3(transform.scale, transform.scale, transform.scale), new Matrix4());
2282
2294
  root.transform = Matrix4.multiply(root.transform, scaleMatrix, root.transform);
2295
+ root.transform = Matrix4.multiplyByTranslation(root.transform, new Cartesian3(transform.x, transform.y, transform.z), root.transform);
2283
2296
  // Force matrix to update
2284
2297
  root.updateTransform();
2298
+ }
2299
+ else {
2300
+ throw ("Not implemented.");
2301
+ }
2302
+ }
2303
+ TilesetRenderEngine.ApplyPosition = ApplyPosition;
2304
+ function ApplySettings(cTileset, tileset) {
2305
+ if (tileset.type == Tileset.EType.Cad) {
2306
+ var settings = tileset.settings;
2285
2307
  var maxScreenSpaceError = settings.maximumScreenSpaceError;
2286
2308
  if (maxScreenSpaceError || maxScreenSpaceError == 0) {
2287
2309
  cTileset.maximumScreenSpaceError = maxScreenSpaceError;
@@ -2301,6 +2323,7 @@ var TilesetRenderEngine;
2301
2323
  params.viewer.scene.primitives.add(cTileset_1);
2302
2324
  cTileset_1.readyPromise.then(function () {
2303
2325
  ApplySettings(cTileset_1, params.tileset);
2326
+ ApplyPosition(cTileset_1, params.tileset, params.coords);
2304
2327
  });
2305
2328
  return cTileset_1;
2306
2329
  }
@@ -2710,7 +2733,7 @@ var TilesetCadRenderManager;
2710
2733
  Manager.prototype.Init = function () {
2711
2734
  var _a;
2712
2735
  return __awaiter(this, void 0, void 0, function () {
2713
- var tilesetId, api, tileset, cTileset;
2736
+ var tilesetId, api, tileset, settings, rootId, coords, cTileset;
2714
2737
  var _this = this;
2715
2738
  return __generator(this, function (_b) {
2716
2739
  switch (_b.label) {
@@ -2726,10 +2749,16 @@ var TilesetCadRenderManager;
2726
2749
  if (!tileset) {
2727
2750
  return [2 /*return*/];
2728
2751
  }
2752
+ settings = tileset.settings;
2753
+ rootId = settings.rootEntityId;
2754
+ return [4 /*yield*/, EntityCoords.GetEntityCoords(api, rootId)];
2755
+ case 2:
2756
+ coords = _b.sent();
2729
2757
  cTileset = this.cTileset = TilesetRenderEngine.Render({
2730
2758
  apiGetter: this.apiGetter,
2731
2759
  tileset: tileset,
2732
- viewer: this.viewer
2760
+ viewer: this.viewer,
2761
+ coords: coords
2733
2762
  });
2734
2763
  cTileset.readyPromise.then(function () {
2735
2764
  _this.onCTilesetLoad();