bruce-cesium 0.3.5 → 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, Viewer, ArcGisMapServerImageryProvider, ScreenSpaceEventType, Entity, Primitive, Cesium3DTileFeature, Color, HeightReference, Cartesian3, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, OrthographicFrustum, HeadingPitchRange, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, createWorldTerrain, CesiumTerrainProvider, EllipsoidTerrainProvider, createOsmBuildings, Cesium3DTileStyle, Rectangle, EllipsoidGeodesic, Matrix4, Cesium3DTileset } 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;
@@ -2264,31 +2264,46 @@ function colorToCColor$1(color) {
2264
2264
  }
2265
2265
  var TilesetRenderEngine;
2266
2266
  (function (TilesetRenderEngine) {
2267
- function ApplySettings(cTileset, tileset) {
2267
+ function ApplyPosition(cTileset, tileset, coords) {
2268
2268
  if (tileset.type == Tileset.EType.Cad) {
2269
2269
  var settings = tileset.settings;
2270
- var root = cTileset.root;
2271
- var transform = settings.transform;
2272
- if (!transform) {
2273
- transform = {
2274
- heading: 0,
2275
- pitch: 0,
2276
- roll: 0,
2277
- scale: 1
2278
- };
2279
- }
2280
- var point = settings.location;
2281
- 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);
2282
2290
  var hpr = HeadingPitchRoll.fromDegrees(transform.heading, transform.pitch, transform.roll, new HeadingPitchRoll());
2291
+ var root = cTileset.root;
2283
2292
  root.transform = Transforms.headingPitchRollToFixedFrame(pos, hpr);
2284
- var scale = +(transform === null || transform === void 0 ? void 0 : transform.scale);
2285
- if (!scale || scale <= 0) {
2286
- scale = 0.000001;
2287
- }
2288
- 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());
2289
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);
2290
2296
  // Force matrix to update
2291
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;
2292
2307
  var maxScreenSpaceError = settings.maximumScreenSpaceError;
2293
2308
  if (maxScreenSpaceError || maxScreenSpaceError == 0) {
2294
2309
  cTileset.maximumScreenSpaceError = maxScreenSpaceError;
@@ -2308,6 +2323,7 @@ var TilesetRenderEngine;
2308
2323
  params.viewer.scene.primitives.add(cTileset_1);
2309
2324
  cTileset_1.readyPromise.then(function () {
2310
2325
  ApplySettings(cTileset_1, params.tileset);
2326
+ ApplyPosition(cTileset_1, params.tileset, params.coords);
2311
2327
  });
2312
2328
  return cTileset_1;
2313
2329
  }
@@ -2717,7 +2733,7 @@ var TilesetCadRenderManager;
2717
2733
  Manager.prototype.Init = function () {
2718
2734
  var _a;
2719
2735
  return __awaiter(this, void 0, void 0, function () {
2720
- var tilesetId, api, tileset, cTileset;
2736
+ var tilesetId, api, tileset, settings, rootId, coords, cTileset;
2721
2737
  var _this = this;
2722
2738
  return __generator(this, function (_b) {
2723
2739
  switch (_b.label) {
@@ -2733,10 +2749,16 @@ var TilesetCadRenderManager;
2733
2749
  if (!tileset) {
2734
2750
  return [2 /*return*/];
2735
2751
  }
2752
+ settings = tileset.settings;
2753
+ rootId = settings.rootEntityId;
2754
+ return [4 /*yield*/, EntityCoords.GetEntityCoords(api, rootId)];
2755
+ case 2:
2756
+ coords = _b.sent();
2736
2757
  cTileset = this.cTileset = TilesetRenderEngine.Render({
2737
2758
  apiGetter: this.apiGetter,
2738
2759
  tileset: tileset,
2739
- viewer: this.viewer
2760
+ viewer: this.viewer,
2761
+ coords: coords
2740
2762
  });
2741
2763
  cTileset.readyPromise.then(function () {
2742
2764
  _this.onCTilesetLoad();