@itwin/core-common 3.6.0-dev.3 → 3.6.0-dev.32

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.
Files changed (72) hide show
  1. package/CHANGELOG.md +27 -1
  2. package/lib/cjs/ElementMesh.js +2 -2
  3. package/lib/cjs/ElementMesh.js.map +1 -1
  4. package/lib/cjs/IModelError.d.ts +10 -4
  5. package/lib/cjs/IModelError.d.ts.map +1 -1
  6. package/lib/cjs/IModelError.js +3 -4
  7. package/lib/cjs/IModelError.js.map +1 -1
  8. package/lib/cjs/Localization.d.ts.map +1 -1
  9. package/lib/cjs/Localization.js +8 -1
  10. package/lib/cjs/Localization.js.map +1 -1
  11. package/lib/cjs/RealityModelDisplaySettings.d.ts +65 -0
  12. package/lib/cjs/RealityModelDisplaySettings.d.ts.map +1 -1
  13. package/lib/cjs/RealityModelDisplaySettings.js +30 -2
  14. package/lib/cjs/RealityModelDisplaySettings.js.map +1 -1
  15. package/lib/cjs/core-common.d.ts +0 -1
  16. package/lib/cjs/core-common.d.ts.map +1 -1
  17. package/lib/cjs/core-common.js +0 -1
  18. package/lib/cjs/core-common.js.map +1 -1
  19. package/lib/cjs/tile/B3dmTileIO.js +5 -5
  20. package/lib/cjs/tile/B3dmTileIO.js.map +1 -1
  21. package/lib/cjs/tile/CompositeTileIO.js +2 -2
  22. package/lib/cjs/tile/CompositeTileIO.js.map +1 -1
  23. package/lib/cjs/tile/GltfTileIO.js +5 -5
  24. package/lib/cjs/tile/GltfTileIO.js.map +1 -1
  25. package/lib/cjs/tile/I3dmTileIO.js +6 -6
  26. package/lib/cjs/tile/I3dmTileIO.js.map +1 -1
  27. package/lib/cjs/tile/IModelTileIO.js +10 -10
  28. package/lib/cjs/tile/IModelTileIO.js.map +1 -1
  29. package/lib/cjs/tile/PntsTileIO.js +5 -5
  30. package/lib/cjs/tile/PntsTileIO.js.map +1 -1
  31. package/lib/cjs/tile/TileIO.js +3 -3
  32. package/lib/cjs/tile/TileIO.js.map +1 -1
  33. package/lib/esm/ElementMesh.js +2 -2
  34. package/lib/esm/ElementMesh.js.map +1 -1
  35. package/lib/esm/IModelError.d.ts +10 -4
  36. package/lib/esm/IModelError.d.ts.map +1 -1
  37. package/lib/esm/IModelError.js +3 -2
  38. package/lib/esm/IModelError.js.map +1 -1
  39. package/lib/esm/Localization.d.ts.map +1 -1
  40. package/lib/esm/Localization.js +8 -1
  41. package/lib/esm/Localization.js.map +1 -1
  42. package/lib/esm/RealityModelDisplaySettings.d.ts +65 -0
  43. package/lib/esm/RealityModelDisplaySettings.d.ts.map +1 -1
  44. package/lib/esm/RealityModelDisplaySettings.js +30 -2
  45. package/lib/esm/RealityModelDisplaySettings.js.map +1 -1
  46. package/lib/esm/core-common.d.ts +0 -1
  47. package/lib/esm/core-common.d.ts.map +1 -1
  48. package/lib/esm/core-common.js +0 -1
  49. package/lib/esm/core-common.js.map +1 -1
  50. package/lib/esm/tile/B3dmTileIO.js +5 -5
  51. package/lib/esm/tile/B3dmTileIO.js.map +1 -1
  52. package/lib/esm/tile/CompositeTileIO.js +2 -2
  53. package/lib/esm/tile/CompositeTileIO.js.map +1 -1
  54. package/lib/esm/tile/GltfTileIO.js +5 -5
  55. package/lib/esm/tile/GltfTileIO.js.map +1 -1
  56. package/lib/esm/tile/I3dmTileIO.js +6 -6
  57. package/lib/esm/tile/I3dmTileIO.js.map +1 -1
  58. package/lib/esm/tile/IModelTileIO.js +10 -10
  59. package/lib/esm/tile/IModelTileIO.js.map +1 -1
  60. package/lib/esm/tile/PntsTileIO.js +5 -5
  61. package/lib/esm/tile/PntsTileIO.js.map +1 -1
  62. package/lib/esm/tile/TileIO.js +3 -3
  63. package/lib/esm/tile/TileIO.js.map +1 -1
  64. package/package.json +7 -7
  65. package/lib/cjs/FeatureGates.d.ts +0 -32
  66. package/lib/cjs/FeatureGates.d.ts.map +0 -1
  67. package/lib/cjs/FeatureGates.js +0 -56
  68. package/lib/cjs/FeatureGates.js.map +0 -1
  69. package/lib/esm/FeatureGates.d.ts +0 -32
  70. package/lib/esm/FeatureGates.d.ts.map +0 -1
  71. package/lib/esm/FeatureGates.js +0 -52
  72. package/lib/esm/FeatureGates.js.map +0 -1
@@ -15,6 +15,14 @@ export declare type PointCloudSizeMode = "voxel" | "pixel";
15
15
  * @beta
16
16
  */
17
17
  export declare type PointCloudShape = "square" | "round";
18
+ /** Specifies the Eye-Dome Lighting mode used for a point cloud.
19
+ * - "off": EDL is not calculated
20
+ * - "on": EDL is calculated using a single pass.
21
+ * - "full" EDL is calculated with full algorithm including optional filtering
22
+ * @see [[PointCloudDisplaySettings.edlMode]].
23
+ * @beta
24
+ */
25
+ export declare type PointCloudEDLMode = "off" | "on" | "full";
18
26
  /** The JSON representation of [[PointCloudDisplaySettings]].
19
27
  * @beta
20
28
  */
@@ -31,6 +39,20 @@ export interface PointCloudDisplayProps {
31
39
  pixelSize?: number;
32
40
  /** See [[PointCloudDisplaySettings.shape]]. */
33
41
  shape?: PointCloudShape;
42
+ /** See [[PointCloudDisplaySettings.edlMode]]. */
43
+ edlMode?: PointCloudEDLMode;
44
+ /** See [[PointCloudDisplaySettings.edlStrength]]. */
45
+ edlStrength?: number;
46
+ /** See [[PointCloudDisplaySettings.edlRadius]]. */
47
+ edlRadius?: number;
48
+ /** See [[PointCloudDisplaySettings.edlFilter]]. */
49
+ edlFilter?: number;
50
+ /** See [[PointCloudDisplaySettings.edlMixWts1]]. */
51
+ edlMixWts1?: number;
52
+ /** See [[PointCloudDisplaySettings.edlMixWts2]]. */
53
+ edlMixWts2?: number;
54
+ /** See [[PointCloudDisplaySettings.edlMixWts4]]. */
55
+ edlMixWts4?: number;
34
56
  }
35
57
  /** The JSON representation of [[RealityModelDisplaySettings]].
36
58
  * @beta
@@ -43,6 +65,10 @@ export interface RealityModelDisplayProps {
43
65
  }
44
66
  /** Settings that control how a point cloud reality model is displayed within a [Viewport]($frontend).
45
67
  * @note This is an immutable type - to modify its properties, use [[clone]].
68
+ * Eye-Dome Lighting (EDL) is a non-photorealistic, image-based shading technique that was designed to improve depth
69
+ * perception in scientific visualization. It is particularly useful for visualizing monochrome point cloud data, but
70
+ * also can be useful for point clouds with color information.
71
+ * @note EDL mode is ignored (off) if the view is not perspective (camera is off)
46
72
  * @see [[RealityModelDisplaySettings.pointCloud]].
47
73
  * @beta
48
74
  */
@@ -75,6 +101,45 @@ export declare class PointCloudDisplaySettings {
75
101
  * Default: 20.
76
102
  */
77
103
  readonly maxPixelsPerVoxel: number;
104
+ /** The mode for the Eye-Dome Lighting (EDL) effect.
105
+ * Default: "off"
106
+ * @note EDL mode is ignored (off) if the view is not perspective (camera is off)
107
+ */
108
+ readonly edlMode: PointCloudEDLMode;
109
+ /** A strength value for the Eye Dome Lighting (EDL) effect.
110
+ * The strength is expected to be a positive floating point number.
111
+ * Default: 5.0
112
+ */
113
+ readonly edlStrength: number;
114
+ /** A radius value for the Eye Dome Lighting (EDL) effect.
115
+ * The radius is expected to be a positive floating point number
116
+ * It is used to deterimine how far away in pixels to sample for depth change
117
+ * Default: 2.0
118
+ */
119
+ readonly edlRadius: number;
120
+ /** A flag for whether or not to apply filtering pass in the Eye Dome Lighting (EDL) effect.
121
+ * It only applies if edlMode is "full"
122
+ * Default: 1.0
123
+ */
124
+ readonly edlFilter?: number;
125
+ /** A weighting value to apply to the full image when combining it with the half and quarter sized ones
126
+ * It only applies if edlMode is "full"
127
+ * The strength is expected to be a floating point number between 0 and 1 inclusive.
128
+ * Default: 1.0
129
+ */
130
+ readonly edlMixWts1?: number;
131
+ /** A weighting value to apply to the half sized image when combining it with the full and quarter sized ones
132
+ * It only applies if edlMode is "full"
133
+ * The strength is expected to be a floating point number between 0 and 1 inclusive.
134
+ * Default: 0.5
135
+ */
136
+ readonly edlMixWts2?: number;
137
+ /** A weighting value to apply to the quarter sized image when combining it with the full and half sized ones
138
+ * It only applies if edlMode is "full"
139
+ * The strength is expected to be a floating point number between 0 and 1 inclusive.
140
+ * Default: 0.25
141
+ */
142
+ readonly edlMixWts4?: number;
78
143
  /** Settings with all properties initialized to their default values. */
79
144
  static defaults: PointCloudDisplaySettings;
80
145
  private constructor();
@@ -1 +1 @@
1
- {"version":3,"file":"RealityModelDisplaySettings.d.ts","sourceRoot":"","sources":["../../src/RealityModelDisplaySettings.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH;;;;;GAKG;AACH,oBAAY,kBAAkB,GAAG,OAAO,GAAG,OAAO,CAAC;AAEnD;;;;;GAKG;AACH,oBAAY,eAAe,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,kDAAkD;IAClD,QAAQ,CAAC,EAAE,kBAAkB,CAAC;IAC9B,oDAAoD;IACpD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2DAA2D;IAC3D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,2DAA2D;IAC3D,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,eAAe,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,sDAAsD;IACtD,UAAU,CAAC,EAAE,sBAAsB,CAAC;IACpC,8DAA8D;IAC9D,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAE7B;AAED;;;;GAIG;AACH,qBAAa,yBAAyB;IACpC;;OAEG;IACH,SAAgB,KAAK,EAAE,eAAe,CAAC;IACvC;;;;OAIG;IACH,SAAgB,QAAQ,EAAE,kBAAkB,CAAC;IAC7C;;;OAGG;IACH,SAAgB,SAAS,EAAE,MAAM,CAAC;IAClC;;;OAGG;IACH,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC;;OAEG;IACH,SAAgB,iBAAiB,EAAE,MAAM,CAAC;IAC1C;;OAEG;IACH,SAAgB,iBAAiB,EAAE,MAAM,CAAC;IAE1C,wEAAwE;IACxE,OAAc,QAAQ,4BAAmC;IAEzD,OAAO;IAWP,4HAA4H;WAC9G,QAAQ,CAAC,KAAK,CAAC,EAAE,sBAAsB,GAAG,yBAAyB;IAIjF,2DAA2D;IACpD,MAAM,IAAI,sBAAsB,GAAG,SAAS;IA2BnD,mHAAmH;IAC5G,KAAK,CAAC,YAAY,EAAE,sBAAsB,GAAG,yBAAyB;IAO7E,+DAA+D;IACxD,MAAM,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO;CAOzD;AAED;;;;;GAKG;AACH,qBAAa,2BAA2B;IACtC;;;;OAIG;IACH,SAAgB,kBAAkB,EAAE,MAAM,CAAC;IAC3C;;OAEG;IACH,SAAgB,UAAU,EAAE,yBAAyB,CAAC;IAEtD,wEAAwE;IACxE,OAAc,QAAQ,8BAAkF;IAExG,OAAO;IAKP,4HAA4H;WAC9G,QAAQ,CAAC,KAAK,CAAC,EAAE,wBAAwB,GAAG,2BAA2B;IAOrF,uIAAuI;IAChI,MAAM,IAAI,wBAAwB,GAAG,SAAS;IAiBrD,+DAA+D;IACxD,MAAM,CAAC,KAAK,EAAE,2BAA2B,GAAG,OAAO;IAO1D,mHAAmH;IAC5G,KAAK,CAAC,YAAY,EAAE,wBAAwB,GAAG,2BAA2B;CAKlF"}
1
+ {"version":3,"file":"RealityModelDisplaySettings.d.ts","sourceRoot":"","sources":["../../src/RealityModelDisplaySettings.ts"],"names":[],"mappings":"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"}
@@ -7,12 +7,16 @@
7
7
  */
8
8
  /** Settings that control how a point cloud reality model is displayed within a [Viewport]($frontend).
9
9
  * @note This is an immutable type - to modify its properties, use [[clone]].
10
+ * Eye-Dome Lighting (EDL) is a non-photorealistic, image-based shading technique that was designed to improve depth
11
+ * perception in scientific visualization. It is particularly useful for visualizing monochrome point cloud data, but
12
+ * also can be useful for point clouds with color information.
13
+ * @note EDL mode is ignored (off) if the view is not perspective (camera is off)
10
14
  * @see [[RealityModelDisplaySettings.pointCloud]].
11
15
  * @beta
12
16
  */
13
17
  export class PointCloudDisplaySettings {
14
18
  constructor(props) {
15
- var _a, _b, _c, _d, _e, _f;
19
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
16
20
  this.shape = (_a = props === null || props === void 0 ? void 0 : props.shape) !== null && _a !== void 0 ? _a : "round";
17
21
  this.sizeMode = (_b = props === null || props === void 0 ? void 0 : props.sizeMode) !== null && _b !== void 0 ? _b : "voxel";
18
22
  // No sanity checks here - e.g., min < max, pixelSize and voxelScale > 0, etc.
@@ -20,6 +24,13 @@ export class PointCloudDisplaySettings {
20
24
  this.voxelScale = (_d = props === null || props === void 0 ? void 0 : props.voxelScale) !== null && _d !== void 0 ? _d : 1;
21
25
  this.minPixelsPerVoxel = (_e = props === null || props === void 0 ? void 0 : props.minPixelsPerVoxel) !== null && _e !== void 0 ? _e : 2;
22
26
  this.maxPixelsPerVoxel = (_f = props === null || props === void 0 ? void 0 : props.maxPixelsPerVoxel) !== null && _f !== void 0 ? _f : 20;
27
+ this.edlMode = (_g = props === null || props === void 0 ? void 0 : props.edlMode) !== null && _g !== void 0 ? _g : "off";
28
+ this.edlStrength = (_h = props === null || props === void 0 ? void 0 : props.edlStrength) !== null && _h !== void 0 ? _h : 5;
29
+ this.edlRadius = (_j = props === null || props === void 0 ? void 0 : props.edlRadius) !== null && _j !== void 0 ? _j : 2;
30
+ this.edlFilter = (_k = props === null || props === void 0 ? void 0 : props.edlFilter) !== null && _k !== void 0 ? _k : 1;
31
+ this.edlMixWts1 = (_l = props === null || props === void 0 ? void 0 : props.edlMixWts1) !== null && _l !== void 0 ? _l : 1.0;
32
+ this.edlMixWts2 = (_m = props === null || props === void 0 ? void 0 : props.edlMixWts2) !== null && _m !== void 0 ? _m : 0.5;
33
+ this.edlMixWts4 = (_o = props === null || props === void 0 ? void 0 : props.edlMixWts4) !== null && _o !== void 0 ? _o : 0.25;
23
34
  }
24
35
  /** Create display settings from their JSON representation. If `props` is `undefined`, the default settings are returned. */
25
36
  static fromJSON(props) {
@@ -43,6 +54,20 @@ export class PointCloudDisplaySettings {
43
54
  props.minPixelsPerVoxel = this.minPixelsPerVoxel;
44
55
  if (this.maxPixelsPerVoxel !== defs.maxPixelsPerVoxel)
45
56
  props.maxPixelsPerVoxel = this.maxPixelsPerVoxel;
57
+ if (this.edlMode !== defs.edlMode)
58
+ props.edlMode = this.edlMode;
59
+ if (this.edlStrength !== defs.edlStrength)
60
+ props.edlStrength = this.edlStrength;
61
+ if (this.edlRadius !== defs.edlRadius)
62
+ props.edlRadius = this.edlRadius;
63
+ if (this.edlFilter !== defs.edlFilter)
64
+ props.edlFilter = this.edlFilter;
65
+ if (this.edlMixWts1 !== defs.edlMixWts1)
66
+ props.edlMixWts1 = this.edlMixWts1;
67
+ if (this.edlMixWts2 !== defs.edlMixWts2)
68
+ props.edlMixWts2 = this.edlMixWts2;
69
+ if (this.edlMixWts4 !== defs.edlMixWts4)
70
+ props.edlMixWts4 = this.edlMixWts4;
46
71
  return props;
47
72
  }
48
73
  /** Create a copy of these settings, identical except for any properties explicitly specified by `changedProps`. */
@@ -57,7 +82,10 @@ export class PointCloudDisplaySettings {
57
82
  if (this === other)
58
83
  return true;
59
84
  return this.shape === other.shape && this.sizeMode === other.sizeMode && this.pixelSize === other.pixelSize
60
- && this.voxelScale === other.voxelScale && this.minPixelsPerVoxel === other.minPixelsPerVoxel && this.maxPixelsPerVoxel === other.maxPixelsPerVoxel;
85
+ && this.voxelScale === other.voxelScale && this.minPixelsPerVoxel === other.minPixelsPerVoxel && this.maxPixelsPerVoxel === other.maxPixelsPerVoxel
86
+ && this.edlMode === other.edlMode && this.edlStrength === other.edlStrength && this.edlRadius === other.edlRadius
87
+ && this.edlFilter === other.edlFilter
88
+ && this.edlMixWts1 === other.edlMixWts1 && this.edlMixWts2 === other.edlMixWts2 && this.edlMixWts4 === other.edlMixWts4;
61
89
  }
62
90
  }
63
91
  /** Settings with all properties initialized to their default values. */
@@ -1 +1 @@
1
- {"version":3,"file":"RealityModelDisplaySettings.js","sourceRoot":"","sources":["../../src/RealityModelDisplaySettings.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module DisplayStyles\r\n */\r\n\r\n/** Specifies how the sizes of the individual points within a point cloud are computed.\r\n * - \"pixel\": Each point is an exact number of pixels in diameter, as specified by [[PointCloudDisplaySettings.pixelSize]].\r\n * - \"voxel\": Each point is the size of a \"voxel\" in meters, as specified by the [Tile]($frontend) to which the point belongs.\r\n * @see [[PointCloudDisplaySettings.sizeMode]].\r\n * @beta\r\n */\r\nexport type PointCloudSizeMode = \"voxel\" | \"pixel\";\r\n\r\n/** Specifies the shape drawn for each individual point within a point cloud.\r\n * - \"round\": Each point is drawn as a circle.\r\n * - \"square\": Each point is drawn as a square.\r\n * @see [[PointCloudDisplaySettings.shape]].\r\n * @beta\r\n */\r\nexport type PointCloudShape = \"square\" | \"round\";\r\n\r\n/** The JSON representation of [[PointCloudDisplaySettings]].\r\n * @beta\r\n */\r\nexport interface PointCloudDisplayProps {\r\n /** See [[PointCloudDisplaySettings.sizeMode]]. */\r\n sizeMode?: PointCloudSizeMode;\r\n /** See [[PointCloudDisplaySettings.voxelScale]]. */\r\n voxelScale?: number;\r\n /** See [[PointCloudDisplaySettings.minPixelsPerVoxel]]. */\r\n minPixelsPerVoxel?: number;\r\n /** See [[PointCloudDisplaySettings.maxPixelsPerVoxel]]. */\r\n maxPixelsPerVoxel?: number;\r\n /** See [[PointCloudDisplaySettings.pixelSize]]. */\r\n pixelSize?: number;\r\n /** See [[PointCloudDisplaySettings.shape]]. */\r\n shape?: PointCloudShape;\r\n}\r\n\r\n/** The JSON representation of [[RealityModelDisplaySettings]].\r\n * @beta\r\n */\r\nexport interface RealityModelDisplayProps {\r\n /** See [[RealityModelDisplaySettings.pointCloud]]. */\r\n pointCloud?: PointCloudDisplayProps;\r\n /** See [[RealityModelDisplaySettings.overrideColorRatio]]. */\r\n overrideColorRatio?: number;\r\n // ###TODO when we need it: mesh?: RealityMeshDisplayProps;\r\n}\r\n\r\n/** Settings that control how a point cloud reality model is displayed within a [Viewport]($frontend).\r\n * @note This is an immutable type - to modify its properties, use [[clone]].\r\n * @see [[RealityModelDisplaySettings.pointCloud]].\r\n * @beta\r\n */\r\nexport class PointCloudDisplaySettings {\r\n /** The shape drawn for each point in the cloud.\r\n * Default: \"round\".\r\n */\r\n public readonly shape: PointCloudShape;\r\n /** The method by which the size of each individual point is computed.\r\n * Default: \"voxel\".\r\n * @see [[pixelSize]] to configure the size for \"pixel\" mode.\r\n * @see [[voxelScale]], [[minPixelsPerVoxel]], and [[maxPixelsPerVoxel]] to configure the size for \"voxel\" mode.\r\n */\r\n public readonly sizeMode: PointCloudSizeMode;\r\n /** The radius of each point in pixels, when [[sizeMode]] is \"pixel\".\r\n * The size is expected to be a positive integer. The maximum size will vary based on the graphics hardware in use, but typically is limited to 32 or 64 pixels.\r\n * Default: 1\r\n */\r\n public readonly pixelSize: number;\r\n /** A scale factor applied to the size of each point, when [[sizeMode]] is \"voxel\".\r\n * The scale is expected to be a positive floating point number.\r\n * Default: 1.0\r\n */\r\n public readonly voxelScale: number;\r\n /** If [[sizeMode]] is \"voxel\", the minimum radius of each point in pixels. It is expected to be a positive integer no greater than [[maxPixelsPerVoxel]].\r\n * Default: 2\r\n */\r\n public readonly minPixelsPerVoxel: number;\r\n /** If [[sizeMode]] is \"voxel\", the maximum radius of each point in pixels. It is expected to be a positive integer no less than [[minPixelsPerVoxel]].\r\n * Default: 20.\r\n */\r\n public readonly maxPixelsPerVoxel: number;\r\n\r\n /** Settings with all properties initialized to their default values. */\r\n public static defaults = new PointCloudDisplaySettings();\r\n\r\n private constructor(props?: PointCloudDisplayProps) {\r\n this.shape = props?.shape ?? \"round\";\r\n this.sizeMode = props?.sizeMode ?? \"voxel\";\r\n\r\n // No sanity checks here - e.g., min < max, pixelSize and voxelScale > 0, etc.\r\n this.pixelSize = props?.pixelSize ?? 1;\r\n this.voxelScale = props?.voxelScale ?? 1;\r\n this.minPixelsPerVoxel = props?.minPixelsPerVoxel ?? 2;\r\n this.maxPixelsPerVoxel = props?.maxPixelsPerVoxel ?? 20;\r\n }\r\n\r\n /** Create display settings from their JSON representation. If `props` is `undefined`, the default settings are returned. */\r\n public static fromJSON(props?: PointCloudDisplayProps): PointCloudDisplaySettings {\r\n return props ? new PointCloudDisplaySettings(props) : this.defaults;\r\n }\r\n\r\n /** Convert these settings to their JSON representation. */\r\n public toJSON(): PointCloudDisplayProps | undefined {\r\n const defs = PointCloudDisplaySettings.defaults;\r\n if (this.equals(defs))\r\n return undefined;\r\n\r\n const props: PointCloudDisplayProps = { };\r\n if (this.shape !== defs.shape)\r\n props.shape = this.shape;\r\n\r\n if (this.sizeMode !== defs.sizeMode)\r\n props.sizeMode = this.sizeMode;\r\n\r\n if (this.pixelSize !== defs.pixelSize)\r\n props.pixelSize = this.pixelSize;\r\n\r\n if (this.voxelScale !== defs.voxelScale)\r\n props.voxelScale = this.voxelScale;\r\n\r\n if (this.minPixelsPerVoxel !== defs.minPixelsPerVoxel)\r\n props.minPixelsPerVoxel = this.minPixelsPerVoxel;\r\n\r\n if (this.maxPixelsPerVoxel !== defs.maxPixelsPerVoxel)\r\n props.maxPixelsPerVoxel = this.maxPixelsPerVoxel;\r\n\r\n return props;\r\n }\r\n\r\n /** Create a copy of these settings, identical except for any properties explicitly specified by `changedProps`. */\r\n public clone(changedProps: PointCloudDisplayProps): PointCloudDisplaySettings {\r\n return PointCloudDisplaySettings.fromJSON({\r\n ...this.toJSON(),\r\n ...changedProps,\r\n });\r\n }\r\n\r\n /** Returns true if these settings are identical to `other`. */\r\n public equals(other: PointCloudDisplaySettings): boolean {\r\n if (this === other)\r\n return true;\r\n\r\n return this.shape === other.shape && this.sizeMode === other.sizeMode && this.pixelSize === other.pixelSize\r\n && this.voxelScale === other.voxelScale && this.minPixelsPerVoxel === other.minPixelsPerVoxel && this.maxPixelsPerVoxel === other.maxPixelsPerVoxel;\r\n }\r\n}\r\n\r\n/** Settings that control how a reality model - whether a [[ContextRealityModel]] or a persistent reality [Model]($backend) - is displayed within a [Viewport]($frontend).\r\n * @see [[ContextRealityModel.displaySettings]] to apply these settings to a context reality model.\r\n * @see [[DisplayStyleSettings.setRealityModelDisplaySettings]] to apply these settings to a persistent reality model.\r\n * @note This is an immutable type - to modify its properties, use [[clone]].\r\n * @beta\r\n */\r\nexport class RealityModelDisplaySettings {\r\n /** If the reality model's color is overridden with another color, a ratio in [0..1] with which to mix the two colors together.\r\n * A ratio of 0 uses only the reality model's color, a ratio of 1 uses only the override color, and a ratio of 0.5 mixes the two colors equally.\r\n * The color may be overridden using [[FeatureOverrides]] such as those supplied by a [FeatureOverrideProvider]($frontend), or by applying a [[SpatialClassifier]].\r\n * Default: 0.5\r\n */\r\n public readonly overrideColorRatio: number;\r\n /** Settings that apply specifically to point cloud reality models.\r\n * Default: [[PointCloudDisplaySettings.defaults]].\r\n */\r\n public readonly pointCloud: PointCloudDisplaySettings;\r\n\r\n /** Settings with all properties initialized to their default values. */\r\n public static defaults = new RealityModelDisplaySettings(undefined, PointCloudDisplaySettings.defaults);\r\n\r\n private constructor(overrideColorRatio: number | undefined, pointCloud: PointCloudDisplaySettings) {\r\n this.overrideColorRatio = overrideColorRatio ?? 0.5;\r\n this.pointCloud = pointCloud;\r\n }\r\n\r\n /** Create display settings from their JSON representation. If `props` is `undefined`, the default settings are returned. */\r\n public static fromJSON(props?: RealityModelDisplayProps): RealityModelDisplaySettings {\r\n if (!props)\r\n return this.defaults;\r\n\r\n return new RealityModelDisplaySettings(props.overrideColorRatio, PointCloudDisplaySettings.fromJSON(props.pointCloud));\r\n }\r\n\r\n /** Convert these settings to their JSON representation, which is `undefined` if all of their properties match the default settings. */\r\n public toJSON(): RealityModelDisplayProps | undefined {\r\n const pointCloud = this.pointCloud.toJSON();\r\n const overrideColorRatio = this.overrideColorRatio === RealityModelDisplaySettings.defaults.overrideColorRatio ? undefined : this.overrideColorRatio;\r\n\r\n if (undefined === pointCloud && undefined === overrideColorRatio)\r\n return undefined;\r\n\r\n const props: RealityModelDisplayProps = { };\r\n if (undefined !== pointCloud)\r\n props.pointCloud = pointCloud;\r\n\r\n if (undefined !== overrideColorRatio)\r\n props.overrideColorRatio = overrideColorRatio;\r\n\r\n return props;\r\n }\r\n\r\n /** Returns true if these settings are identical to `other`. */\r\n public equals(other: RealityModelDisplaySettings): boolean {\r\n if (this === other)\r\n return true;\r\n\r\n return this.overrideColorRatio === other.overrideColorRatio && this.pointCloud.equals(other.pointCloud);\r\n }\r\n\r\n /** Create a copy of these settings, identical except for any properties explicitly specified by `changedProps`. */\r\n public clone(changedProps: RealityModelDisplayProps): RealityModelDisplaySettings {\r\n const pointCloud = changedProps.pointCloud ? this.pointCloud.clone(changedProps.pointCloud) : this.pointCloud;\r\n const colorRatio = changedProps.hasOwnProperty(\"overrideColorRatio\") ? changedProps.overrideColorRatio : this.overrideColorRatio;\r\n return new RealityModelDisplaySettings(colorRatio, pointCloud);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"RealityModelDisplaySettings.js","sourceRoot":"","sources":["../../src/RealityModelDisplaySettings.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAsEH;;;;;;;;GAQG;AACH,MAAM,OAAO,yBAAyB;IAwEpC,YAAoB,KAA8B;;QAChD,IAAI,CAAC,KAAK,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,KAAK,mCAAI,OAAO,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,QAAQ,mCAAI,OAAO,CAAC;QAE3C,8EAA8E;QAC9E,IAAI,CAAC,SAAS,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,mCAAI,CAAC,CAAC;QACvC,IAAI,CAAC,UAAU,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,UAAU,mCAAI,CAAC,CAAC;QACzC,IAAI,CAAC,iBAAiB,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,iBAAiB,mCAAI,CAAC,CAAC;QACvD,IAAI,CAAC,iBAAiB,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,iBAAiB,mCAAI,EAAE,CAAC;QACxD,IAAI,CAAC,OAAO,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,OAAO,mCAAI,KAAK,CAAC;QACvC,IAAI,CAAC,WAAW,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,WAAW,mCAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,SAAS,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,mCAAI,CAAC,CAAC;QACvC,IAAI,CAAC,SAAS,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,SAAS,mCAAI,CAAC,CAAC;QACvC,IAAI,CAAC,UAAU,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,UAAU,mCAAI,GAAG,CAAC;QAC3C,IAAI,CAAC,UAAU,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,UAAU,mCAAI,GAAG,CAAC;QAC3C,IAAI,CAAC,UAAU,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,UAAU,mCAAI,IAAI,CAAC;IAC9C,CAAC;IAED,4HAA4H;IACrH,MAAM,CAAC,QAAQ,CAAC,KAA8B;QACnD,OAAO,KAAK,CAAC,CAAC,CAAC,IAAI,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;IACtE,CAAC;IAED,2DAA2D;IACpD,MAAM;QACX,MAAM,IAAI,GAAG,yBAAyB,CAAC,QAAQ,CAAC;QAChD,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACnB,OAAO,SAAS,CAAC;QAEnB,MAAM,KAAK,GAA2B,EAAG,CAAC;QAC1C,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK;YAC3B,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAE3B,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ;YACjC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAEjC,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS;YACnC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAEnC,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU;YACrC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAErC,IAAI,IAAI,CAAC,iBAAiB,KAAK,IAAI,CAAC,iBAAiB;YACnD,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAEnD,IAAI,IAAI,CAAC,iBAAiB,KAAK,IAAI,CAAC,iBAAiB;YACnD,KAAK,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC;QAEnD,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,OAAO;YAC/B,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAE/B,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,WAAW;YACvC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAEvC,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS;YACnC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAEnC,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS;YACnC,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAEnC,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU;YACrC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAErC,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU;YACrC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAErC,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,CAAC,UAAU;YACrC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAErC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,mHAAmH;IAC5G,KAAK,CAAC,YAAoC;QAC/C,OAAO,yBAAyB,CAAC,QAAQ,CAAC;YACxC,GAAG,IAAI,CAAC,MAAM,EAAE;YAChB,GAAG,YAAY;SAChB,CAAC,CAAC;IACL,CAAC;IAED,+DAA+D;IACxD,MAAM,CAAC,KAAgC;QAC5C,IAAI,IAAI,KAAK,KAAK;YAChB,OAAO,IAAI,CAAC;QAEd,OAAO,IAAI,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,CAAC,QAAQ,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS;eACtG,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,iBAAiB,KAAK,KAAK,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,KAAK,KAAK,CAAC,iBAAiB;eAChJ,IAAI,CAAC,OAAO,KAAK,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS;eAC9G,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC,SAAS;eAClC,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,KAAK,KAAK,CAAC,UAAU,CACxH;IACH,CAAC;;AA9FD,wEAAwE;AAC1D,kCAAQ,GAAG,IAAI,yBAAyB,EAAE,CAAC;AAgG3D;;;;;GAKG;AACH,MAAM,OAAO,2BAA2B;IAetC,YAAoB,kBAAsC,EAAE,UAAqC;QAC/F,IAAI,CAAC,kBAAkB,GAAG,kBAAkB,aAAlB,kBAAkB,cAAlB,kBAAkB,GAAI,GAAG,CAAC;QACpD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,4HAA4H;IACrH,MAAM,CAAC,QAAQ,CAAC,KAAgC;QACrD,IAAI,CAAC,KAAK;YACR,OAAO,IAAI,CAAC,QAAQ,CAAC;QAEvB,OAAO,IAAI,2BAA2B,CAAC,KAAK,CAAC,kBAAkB,EAAE,yBAAyB,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;IACzH,CAAC;IAED,uIAAuI;IAChI,MAAM;QACX,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;QAC5C,MAAM,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,KAAK,2BAA2B,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC;QAErJ,IAAI,SAAS,KAAK,UAAU,IAAI,SAAS,KAAK,kBAAkB;YAC9D,OAAO,SAAS,CAAC;QAEnB,MAAM,KAAK,GAA6B,EAAG,CAAC;QAC5C,IAAI,SAAS,KAAK,UAAU;YAC1B,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC;QAEhC,IAAI,SAAS,KAAK,kBAAkB;YAClC,KAAK,CAAC,kBAAkB,GAAG,kBAAkB,CAAC;QAEhD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,+DAA+D;IACxD,MAAM,CAAC,KAAkC;QAC9C,IAAI,IAAI,KAAK,KAAK;YAChB,OAAO,IAAI,CAAC;QAEd,OAAO,IAAI,CAAC,kBAAkB,KAAK,KAAK,CAAC,kBAAkB,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAC1G,CAAC;IAED,mHAAmH;IAC5G,KAAK,CAAC,YAAsC;QACjD,MAAM,UAAU,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;QAC9G,MAAM,UAAU,GAAG,YAAY,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC;QACjI,OAAO,IAAI,2BAA2B,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IACjE,CAAC;;AA/CD,wEAAwE;AAC1D,oCAAQ,GAAG,IAAI,2BAA2B,CAAC,SAAS,EAAE,yBAAyB,CAAC,QAAQ,CAAC,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module DisplayStyles\r\n */\r\n\r\n/** Specifies how the sizes of the individual points within a point cloud are computed.\r\n * - \"pixel\": Each point is an exact number of pixels in diameter, as specified by [[PointCloudDisplaySettings.pixelSize]].\r\n * - \"voxel\": Each point is the size of a \"voxel\" in meters, as specified by the [Tile]($frontend) to which the point belongs.\r\n * @see [[PointCloudDisplaySettings.sizeMode]].\r\n * @beta\r\n */\r\nexport type PointCloudSizeMode = \"voxel\" | \"pixel\";\r\n\r\n/** Specifies the shape drawn for each individual point within a point cloud.\r\n * - \"round\": Each point is drawn as a circle.\r\n * - \"square\": Each point is drawn as a square.\r\n * @see [[PointCloudDisplaySettings.shape]].\r\n * @beta\r\n */\r\nexport type PointCloudShape = \"square\" | \"round\";\r\n\r\n/** Specifies the Eye-Dome Lighting mode used for a point cloud.\r\n * - \"off\": EDL is not calculated\r\n * - \"on\": EDL is calculated using a single pass.\r\n * - \"full\" EDL is calculated with full algorithm including optional filtering\r\n * @see [[PointCloudDisplaySettings.edlMode]].\r\n * @beta\r\n */\r\nexport type PointCloudEDLMode = \"off\" | \"on\" | \"full\";\r\n\r\n/** The JSON representation of [[PointCloudDisplaySettings]].\r\n * @beta\r\n */\r\nexport interface PointCloudDisplayProps {\r\n /** See [[PointCloudDisplaySettings.sizeMode]]. */\r\n sizeMode?: PointCloudSizeMode;\r\n /** See [[PointCloudDisplaySettings.voxelScale]]. */\r\n voxelScale?: number;\r\n /** See [[PointCloudDisplaySettings.minPixelsPerVoxel]]. */\r\n minPixelsPerVoxel?: number;\r\n /** See [[PointCloudDisplaySettings.maxPixelsPerVoxel]]. */\r\n maxPixelsPerVoxel?: number;\r\n /** See [[PointCloudDisplaySettings.pixelSize]]. */\r\n pixelSize?: number;\r\n /** See [[PointCloudDisplaySettings.shape]]. */\r\n shape?: PointCloudShape;\r\n /** See [[PointCloudDisplaySettings.edlMode]]. */\r\n edlMode?: PointCloudEDLMode;\r\n /** See [[PointCloudDisplaySettings.edlStrength]]. */\r\n edlStrength?: number;\r\n /** See [[PointCloudDisplaySettings.edlRadius]]. */\r\n edlRadius?: number;\r\n /** See [[PointCloudDisplaySettings.edlFilter]]. */\r\n edlFilter?: number;\r\n /** See [[PointCloudDisplaySettings.edlMixWts1]]. */\r\n edlMixWts1?: number;\r\n /** See [[PointCloudDisplaySettings.edlMixWts2]]. */\r\n edlMixWts2?: number;\r\n /** See [[PointCloudDisplaySettings.edlMixWts4]]. */\r\n edlMixWts4?: number;\r\n}\r\n\r\n/** The JSON representation of [[RealityModelDisplaySettings]].\r\n * @beta\r\n */\r\nexport interface RealityModelDisplayProps {\r\n /** See [[RealityModelDisplaySettings.pointCloud]]. */\r\n pointCloud?: PointCloudDisplayProps;\r\n /** See [[RealityModelDisplaySettings.overrideColorRatio]]. */\r\n overrideColorRatio?: number;\r\n // ###TODO when we need it: mesh?: RealityMeshDisplayProps;\r\n}\r\n\r\n/** Settings that control how a point cloud reality model is displayed within a [Viewport]($frontend).\r\n * @note This is an immutable type - to modify its properties, use [[clone]].\r\n * Eye-Dome Lighting (EDL) is a non-photorealistic, image-based shading technique that was designed to improve depth\r\n * perception in scientific visualization. It is particularly useful for visualizing monochrome point cloud data, but\r\n * also can be useful for point clouds with color information.\r\n * @note EDL mode is ignored (off) if the view is not perspective (camera is off)\r\n * @see [[RealityModelDisplaySettings.pointCloud]].\r\n * @beta\r\n */\r\nexport class PointCloudDisplaySettings {\r\n /** The shape drawn for each point in the cloud.\r\n * Default: \"round\".\r\n */\r\n public readonly shape: PointCloudShape;\r\n /** The method by which the size of each individual point is computed.\r\n * Default: \"voxel\".\r\n * @see [[pixelSize]] to configure the size for \"pixel\" mode.\r\n * @see [[voxelScale]], [[minPixelsPerVoxel]], and [[maxPixelsPerVoxel]] to configure the size for \"voxel\" mode.\r\n */\r\n public readonly sizeMode: PointCloudSizeMode;\r\n /** The radius of each point in pixels, when [[sizeMode]] is \"pixel\".\r\n * The size is expected to be a positive integer. The maximum size will vary based on the graphics hardware in use, but typically is limited to 32 or 64 pixels.\r\n * Default: 1\r\n */\r\n public readonly pixelSize: number;\r\n /** A scale factor applied to the size of each point, when [[sizeMode]] is \"voxel\".\r\n * The scale is expected to be a positive floating point number.\r\n * Default: 1.0\r\n */\r\n public readonly voxelScale: number;\r\n /** If [[sizeMode]] is \"voxel\", the minimum radius of each point in pixels. It is expected to be a positive integer no greater than [[maxPixelsPerVoxel]].\r\n * Default: 2\r\n */\r\n public readonly minPixelsPerVoxel: number;\r\n /** If [[sizeMode]] is \"voxel\", the maximum radius of each point in pixels. It is expected to be a positive integer no less than [[minPixelsPerVoxel]].\r\n * Default: 20.\r\n */\r\n public readonly maxPixelsPerVoxel: number;\r\n /** The mode for the Eye-Dome Lighting (EDL) effect.\r\n * Default: \"off\"\r\n * @note EDL mode is ignored (off) if the view is not perspective (camera is off)\r\n */\r\n public readonly edlMode: PointCloudEDLMode;\r\n /** A strength value for the Eye Dome Lighting (EDL) effect.\r\n * The strength is expected to be a positive floating point number.\r\n * Default: 5.0\r\n */\r\n public readonly edlStrength: number;\r\n /** A radius value for the Eye Dome Lighting (EDL) effect.\r\n * The radius is expected to be a positive floating point number\r\n * It is used to deterimine how far away in pixels to sample for depth change\r\n * Default: 2.0\r\n */\r\n public readonly edlRadius: number;\r\n /** A flag for whether or not to apply filtering pass in the Eye Dome Lighting (EDL) effect.\r\n * It only applies if edlMode is \"full\"\r\n * Default: 1.0\r\n */\r\n public readonly edlFilter?: number;\r\n /** A weighting value to apply to the full image when combining it with the half and quarter sized ones\r\n * It only applies if edlMode is \"full\"\r\n * The strength is expected to be a floating point number between 0 and 1 inclusive.\r\n * Default: 1.0\r\n */\r\n public readonly edlMixWts1?: number;\r\n /** A weighting value to apply to the half sized image when combining it with the full and quarter sized ones\r\n * It only applies if edlMode is \"full\"\r\n * The strength is expected to be a floating point number between 0 and 1 inclusive.\r\n * Default: 0.5\r\n */\r\n public readonly edlMixWts2?: number;\r\n /** A weighting value to apply to the quarter sized image when combining it with the full and half sized ones\r\n * It only applies if edlMode is \"full\"\r\n * The strength is expected to be a floating point number between 0 and 1 inclusive.\r\n * Default: 0.25\r\n */\r\n public readonly edlMixWts4?: number;\r\n\r\n /** Settings with all properties initialized to their default values. */\r\n public static defaults = new PointCloudDisplaySettings();\r\n\r\n private constructor(props?: PointCloudDisplayProps) {\r\n this.shape = props?.shape ?? \"round\";\r\n this.sizeMode = props?.sizeMode ?? \"voxel\";\r\n\r\n // No sanity checks here - e.g., min < max, pixelSize and voxelScale > 0, etc.\r\n this.pixelSize = props?.pixelSize ?? 1;\r\n this.voxelScale = props?.voxelScale ?? 1;\r\n this.minPixelsPerVoxel = props?.minPixelsPerVoxel ?? 2;\r\n this.maxPixelsPerVoxel = props?.maxPixelsPerVoxel ?? 20;\r\n this.edlMode = props?.edlMode ?? \"off\";\r\n this.edlStrength = props?.edlStrength ?? 5;\r\n this.edlRadius = props?.edlRadius ?? 2;\r\n this.edlFilter = props?.edlFilter ?? 1;\r\n this.edlMixWts1 = props?.edlMixWts1 ?? 1.0;\r\n this.edlMixWts2 = props?.edlMixWts2 ?? 0.5;\r\n this.edlMixWts4 = props?.edlMixWts4 ?? 0.25;\r\n }\r\n\r\n /** Create display settings from their JSON representation. If `props` is `undefined`, the default settings are returned. */\r\n public static fromJSON(props?: PointCloudDisplayProps): PointCloudDisplaySettings {\r\n return props ? new PointCloudDisplaySettings(props) : this.defaults;\r\n }\r\n\r\n /** Convert these settings to their JSON representation. */\r\n public toJSON(): PointCloudDisplayProps | undefined {\r\n const defs = PointCloudDisplaySettings.defaults;\r\n if (this.equals(defs))\r\n return undefined;\r\n\r\n const props: PointCloudDisplayProps = { };\r\n if (this.shape !== defs.shape)\r\n props.shape = this.shape;\r\n\r\n if (this.sizeMode !== defs.sizeMode)\r\n props.sizeMode = this.sizeMode;\r\n\r\n if (this.pixelSize !== defs.pixelSize)\r\n props.pixelSize = this.pixelSize;\r\n\r\n if (this.voxelScale !== defs.voxelScale)\r\n props.voxelScale = this.voxelScale;\r\n\r\n if (this.minPixelsPerVoxel !== defs.minPixelsPerVoxel)\r\n props.minPixelsPerVoxel = this.minPixelsPerVoxel;\r\n\r\n if (this.maxPixelsPerVoxel !== defs.maxPixelsPerVoxel)\r\n props.maxPixelsPerVoxel = this.maxPixelsPerVoxel;\r\n\r\n if (this.edlMode !== defs.edlMode)\r\n props.edlMode = this.edlMode;\r\n\r\n if (this.edlStrength !== defs.edlStrength)\r\n props.edlStrength = this.edlStrength;\r\n\r\n if (this.edlRadius !== defs.edlRadius)\r\n props.edlRadius = this.edlRadius;\r\n\r\n if (this.edlFilter !== defs.edlFilter)\r\n props.edlFilter = this.edlFilter;\r\n\r\n if (this.edlMixWts1 !== defs.edlMixWts1)\r\n props.edlMixWts1 = this.edlMixWts1;\r\n\r\n if (this.edlMixWts2 !== defs.edlMixWts2)\r\n props.edlMixWts2 = this.edlMixWts2;\r\n\r\n if (this.edlMixWts4 !== defs.edlMixWts4)\r\n props.edlMixWts4 = this.edlMixWts4;\r\n\r\n return props;\r\n }\r\n\r\n /** Create a copy of these settings, identical except for any properties explicitly specified by `changedProps`. */\r\n public clone(changedProps: PointCloudDisplayProps): PointCloudDisplaySettings {\r\n return PointCloudDisplaySettings.fromJSON({\r\n ...this.toJSON(),\r\n ...changedProps,\r\n });\r\n }\r\n\r\n /** Returns true if these settings are identical to `other`. */\r\n public equals(other: PointCloudDisplaySettings): boolean {\r\n if (this === other)\r\n return true;\r\n\r\n return this.shape === other.shape && this.sizeMode === other.sizeMode && this.pixelSize === other.pixelSize\r\n && this.voxelScale === other.voxelScale && this.minPixelsPerVoxel === other.minPixelsPerVoxel && this.maxPixelsPerVoxel === other.maxPixelsPerVoxel\r\n && this.edlMode === other.edlMode && this.edlStrength === other.edlStrength && this.edlRadius === other.edlRadius\r\n && this.edlFilter === other.edlFilter\r\n && this.edlMixWts1 === other.edlMixWts1 && this.edlMixWts2 === other.edlMixWts2 && this.edlMixWts4 === other.edlMixWts4\r\n ;\r\n }\r\n}\r\n\r\n/** Settings that control how a reality model - whether a [[ContextRealityModel]] or a persistent reality [Model]($backend) - is displayed within a [Viewport]($frontend).\r\n * @see [[ContextRealityModel.displaySettings]] to apply these settings to a context reality model.\r\n * @see [[DisplayStyleSettings.setRealityModelDisplaySettings]] to apply these settings to a persistent reality model.\r\n * @note This is an immutable type - to modify its properties, use [[clone]].\r\n * @beta\r\n */\r\nexport class RealityModelDisplaySettings {\r\n /** If the reality model's color is overridden with another color, a ratio in [0..1] with which to mix the two colors together.\r\n * A ratio of 0 uses only the reality model's color, a ratio of 1 uses only the override color, and a ratio of 0.5 mixes the two colors equally.\r\n * The color may be overridden using [[FeatureOverrides]] such as those supplied by a [FeatureOverrideProvider]($frontend), or by applying a [[SpatialClassifier]].\r\n * Default: 0.5\r\n */\r\n public readonly overrideColorRatio: number;\r\n /** Settings that apply specifically to point cloud reality models.\r\n * Default: [[PointCloudDisplaySettings.defaults]].\r\n */\r\n public readonly pointCloud: PointCloudDisplaySettings;\r\n\r\n /** Settings with all properties initialized to their default values. */\r\n public static defaults = new RealityModelDisplaySettings(undefined, PointCloudDisplaySettings.defaults);\r\n\r\n private constructor(overrideColorRatio: number | undefined, pointCloud: PointCloudDisplaySettings) {\r\n this.overrideColorRatio = overrideColorRatio ?? 0.5;\r\n this.pointCloud = pointCloud;\r\n }\r\n\r\n /** Create display settings from their JSON representation. If `props` is `undefined`, the default settings are returned. */\r\n public static fromJSON(props?: RealityModelDisplayProps): RealityModelDisplaySettings {\r\n if (!props)\r\n return this.defaults;\r\n\r\n return new RealityModelDisplaySettings(props.overrideColorRatio, PointCloudDisplaySettings.fromJSON(props.pointCloud));\r\n }\r\n\r\n /** Convert these settings to their JSON representation, which is `undefined` if all of their properties match the default settings. */\r\n public toJSON(): RealityModelDisplayProps | undefined {\r\n const pointCloud = this.pointCloud.toJSON();\r\n const overrideColorRatio = this.overrideColorRatio === RealityModelDisplaySettings.defaults.overrideColorRatio ? undefined : this.overrideColorRatio;\r\n\r\n if (undefined === pointCloud && undefined === overrideColorRatio)\r\n return undefined;\r\n\r\n const props: RealityModelDisplayProps = { };\r\n if (undefined !== pointCloud)\r\n props.pointCloud = pointCloud;\r\n\r\n if (undefined !== overrideColorRatio)\r\n props.overrideColorRatio = overrideColorRatio;\r\n\r\n return props;\r\n }\r\n\r\n /** Returns true if these settings are identical to `other`. */\r\n public equals(other: RealityModelDisplaySettings): boolean {\r\n if (this === other)\r\n return true;\r\n\r\n return this.overrideColorRatio === other.overrideColorRatio && this.pointCloud.equals(other.pointCloud);\r\n }\r\n\r\n /** Create a copy of these settings, identical except for any properties explicitly specified by `changedProps`. */\r\n public clone(changedProps: RealityModelDisplayProps): RealityModelDisplaySettings {\r\n const pointCloud = changedProps.pointCloud ? this.pointCloud.clone(changedProps.pointCloud) : this.pointCloud;\r\n const colorRatio = changedProps.hasOwnProperty(\"overrideColorRatio\") ? changedProps.overrideColorRatio : this.overrideColorRatio;\r\n return new RealityModelDisplaySettings(colorRatio, pointCloud);\r\n }\r\n}\r\n"]}
@@ -28,7 +28,6 @@ export * from "./EmphasizeElementsProps";
28
28
  export * from "./EntityProps";
29
29
  export * from "./EntityReference";
30
30
  export * from "./Environment";
31
- export * from "./FeatureGates";
32
31
  export * from "./FeatureIndex";
33
32
  export * from "./FeatureSymbology";
34
33
  export * from "./FeatureTable";
@@ -1 +1 @@
1
- {"version":3,"file":"core-common.d.ts","sourceRoot":"","sources":["../../src/core-common.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core-common.d.ts","sourceRoot":"","sources":["../../src/core-common.ts"],"names":[],"mappings":"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"}
@@ -32,7 +32,6 @@ export * from "./EmphasizeElementsProps";
32
32
  export * from "./EntityProps";
33
33
  export * from "./EntityReference";
34
34
  export * from "./Environment";
35
- export * from "./FeatureGates";
36
35
  export * from "./FeatureIndex";
37
36
  export * from "./FeatureSymbology";
38
37
  export * from "./FeatureTable";
@@ -1 +1 @@
1
- {"version":3,"file":"core-common.js","sourceRoot":"","sources":["../../src/core-common.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\nexport * from \"./AmbientOcclusion\";\r\nexport * from \"./AnalysisStyle\";\r\nexport * from \"./AuthorizationClient\";\r\nexport * from \"./BackgroundMapProvider\";\r\nexport * from \"./BackgroundMapSettings\";\r\nexport * from \"./Base64EncodedString\";\r\nexport * from \"./BriefcaseTypes\";\r\nexport * from \"./Camera\";\r\nexport * from \"./ChangedElements\";\r\nexport * from \"./ChangedEntities\";\r\nexport * from \"./ChangesetProps\";\r\nexport * from \"./ClipStyle\";\r\nexport * from \"./CloudStorage\";\r\nexport * from \"./CloudStorageTileCache\";\r\nexport * from \"./Code\";\r\nexport * from \"./ColorByName\";\r\nexport * from \"./ColorDef\";\r\nexport * from \"./CommonLoggerCategory\";\r\nexport * from \"./ContextRealityModel\";\r\nexport * from \"./DisplayStyleSettings\";\r\nexport * from \"./domains/FunctionalElementProps\";\r\nexport * from \"./domains/GenericElementProps\";\r\nexport * from \"./ECSqlTypes\";\r\nexport * from \"./ECSchemaProps\";\r\nexport * from \"./ElementMesh\";\r\nexport * from \"./ElementProps\";\r\nexport * from \"./EmphasizeElementsProps\";\r\nexport * from \"./EntityProps\";\r\nexport * from \"./EntityReference\";\r\nexport * from \"./Environment\";\r\nexport * from \"./FeatureGates\";\r\nexport * from \"./FeatureIndex\";\r\nexport * from \"./FeatureSymbology\";\r\nexport * from \"./FeatureTable\";\r\nexport * from \"./Fonts\";\r\nexport * from \"./Frustum\";\r\nexport * from \"./GeoCoordinateServices\";\r\nexport * from \"./geometry/AdditionalTransform\";\r\nexport * from \"./geometry/AreaPattern\";\r\nexport * from \"./geometry/BoundingSphere\";\r\nexport * from \"./geometry/Cartographic\";\r\nexport * from \"./geometry/CoordinateReferenceSystem\";\r\nexport * from \"./geometry/ElementGeometry\";\r\nexport * from \"./geometry/FrustumPlanes\";\r\nexport * from \"./geometry/GeodeticDatum\";\r\nexport * from \"./geometry/GeodeticEllipsoid\";\r\nexport * from \"./geometry/GeometryStream\";\r\nexport * from \"./geometry/ImageGraphic\";\r\nexport * from \"./geometry/LineStyle\";\r\nexport * from \"./geometry/Placement\";\r\nexport * from \"./geometry/Projection\";\r\nexport * from \"./geometry/TextString\";\r\nexport * from \"./GeometryContainment\";\r\nexport * from \"./GeometryParams\";\r\nexport * from \"./GeometrySummary\";\r\nexport * from \"./Gradient\";\r\nexport * from \"./GraphicParams\";\r\nexport * from \"./GroundPlane\";\r\nexport * from \"./HiddenLine\";\r\nexport * from \"./Hilite\";\r\nexport * from \"./HSLColor\";\r\nexport * from \"./HSVColor\";\r\nexport * from \"./Image\";\r\nexport * from \"./IModel\";\r\nexport * from \"./IModelError\";\r\nexport * from \"./IModelVersion\";\r\nexport * from \"./ipc/IpcSocket\";\r\nexport * from \"./ipc/IpcWebSocket\";\r\nexport * from \"./ipc/IpcWebSocketTransport\";\r\nexport * from \"./ipc/IpcSession\";\r\nexport * from \"./IpcAppProps\";\r\nexport * from \"./LightSettings\";\r\nexport * from \"./LinePixels\";\r\nexport * from \"./Localization\";\r\nexport * from \"./MapImagerySettings\";\r\nexport * from \"./MapLayerSettings\";\r\nexport * from \"./MassProperties\";\r\nexport * from \"./MaterialProps\";\r\nexport * from \"./ModelClipGroup\";\r\nexport * from \"./ModelProps\";\r\nexport * from \"./NativeAppProps\";\r\nexport * from \"./OctEncodedNormal\";\r\nexport * from \"./ConcurrentQuery\";\r\nexport * from \"./ECSqlReader\";\r\nexport * from \"./PlanarClipMask\";\r\nexport * from \"./ModelGeometryChanges\";\r\nexport * from \"./PlanProjectionSettings\";\r\nexport * from \"./BackendTypes\";\r\nexport * from \"./QPoint\";\r\nexport * from \"./RealityDataAccessProps\";\r\nexport * from \"./RealityModelDisplaySettings\";\r\nexport * from \"./Render\";\r\nexport * from \"./RenderMaterial\";\r\nexport * from \"./RenderSchedule\";\r\nexport * from \"./RenderTexture\";\r\nexport * from \"./RgbColor\";\r\nexport * from \"./rpc/core/RpcConfiguration\";\r\nexport * from \"./rpc/DevToolsRpcInterface\";\r\nexport * from \"./rpc/IModelReadRpcInterface\";\r\nexport * from \"./rpc/IModelTileRpcInterface\";\r\nexport * from \"./rpc/SnapshotIModelRpcInterface\";\r\nexport * from \"./rpc/TestRpcManager\";\r\nexport * from \"./rpc/WipRpcInterface\";\r\nexport * from \"./RpcInterface\";\r\nexport * from \"./RpcManager\";\r\nexport * from \"./SessionProps\";\r\nexport * from \"./SkyBox\";\r\nexport * from \"./Snapping\";\r\nexport * from \"./SolarCalculate\";\r\nexport * from \"./SolarShadows\";\r\nexport * from \"./SpatialClassification\";\r\nexport * from \"./SubCategoryAppearance\";\r\nexport * from \"./SubCategoryOverride\";\r\nexport * from \"./TerrainSettings\";\r\nexport * from \"./TextureMapping\";\r\nexport * from \"./TextureProps\";\r\nexport * from \"./ThematicDisplay\";\r\nexport * from \"./Thumbnail\";\r\nexport * from \"./TileProps\";\r\nexport * from \"./Tween\";\r\nexport * from \"./TxnAction\";\r\nexport * from \"./ViewDetails\";\r\nexport * from \"./ViewFlags\";\r\nexport * from \"./ViewProps\";\r\nexport * from \"./rpc/core/RpcConstants\";\r\nexport * from \"./rpc/core/RpcControl\";\r\nexport * from \"./rpc/core/RpcInvocation\";\r\nexport * from \"./rpc/core/RpcSessionInvocation\";\r\nexport * from \"./rpc/core/RpcMarshaling\";\r\nexport * from \"./rpc/core/RpcOperation\";\r\nexport * from \"./rpc/core/RpcPendingQueue\";\r\nexport * from \"./rpc/core/RpcProtocol\";\r\nexport * from \"./rpc/core/RpcRegistry\";\r\nexport * from \"./rpc/core/RpcRequest\";\r\nexport * from \"./rpc/core/RpcRequestContext\";\r\nexport * from \"./rpc/core/RpcRoutingToken\";\r\nexport * from \"./rpc/core/RpcPush\";\r\nexport * from \"./rpc/web/BentleyCloudRpcManager\";\r\nexport * from \"./rpc/web/BentleyCloudRpcProtocol\";\r\nexport * from \"./rpc/web/OpenAPI\";\r\nexport * from \"./rpc/web/RpcMultipart\";\r\nexport * from \"./rpc/web/WebAppRpcProtocol\";\r\nexport * from \"./rpc/web/WebAppRpcRequest\";\r\nexport * from \"./rpc/web/WebAppRpcLogging\";\r\nexport * from \"./tile/B3dmTileIO\";\r\nexport * from \"./tile/CompositeTileIO\";\r\nexport * from \"./tile/ElementGraphics\";\r\nexport * from \"./tile/GltfTileIO\";\r\nexport * from \"./tile/I3dmTileIO\";\r\nexport * from \"./tile/IModelTileIO\";\r\nexport * from \"./tile/PntsTileIO\";\r\nexport * from \"./tile/TileIO\";\r\nexport * from \"./tile/TileMetadata\";\r\nexport * from \"./WhiteOnWhiteReversalSettings\";\r\n\r\n/** @docs-package-description\r\n * The core-common package contains classes for working with iModels that can be used in both [frontend]($docs/learning/frontend/index.md) and [backend]($docs/learning/backend/index.md).\r\n */\r\n/**\r\n * @docs-group-description Entities\r\n * Definitions of the \"props\" interfaces and types that define the [wire format]($docs/learning/wireformat.md) for communication between the frontend and backend about entities (models, elements, etc) contained in an iModel.\r\n */\r\n/**\r\n * @docs-group-description Codes\r\n * Types for working with [Codes]($docs/bis/guide/fundamentals/codes.md).\r\n */\r\n/**\r\n * @docs-group-description Geometry\r\n * Types for working with geometry.\r\n */\r\n/**\r\n * @docs-group-description Serialization\r\n * Types for serializing geometry\r\n */\r\n/**\r\n * @docs-group-description Views\r\n * Types for defining graphical views of the contents of an iModel.\r\n */\r\n/**\r\n * @docs-group-description DisplayStyles\r\n * Types for describing how the contents of Views should be rendered.\r\n */\r\n/**\r\n * @docs-group-description Rendering\r\n * Types describing geometry, views, and symbology for consumption by a display system.\r\n */\r\n/**\r\n * @docs-group-description Symbology\r\n * Types that define the appearance of geometry.\r\n */\r\n/**\r\n * @docs-group-description iModels\r\n * Types for working with [iModels]($docs/learning/IModels.md) in both the frontend and backend.\r\n */\r\n/**\r\n * @docs-group-description RpcInterface\r\n * Types for working with [RpcInterfaces]($docs/learning/RpcInterface.md).\r\n */\r\n/**\r\n * @docs-group-description IpcSocket\r\n * Types for working with [IpcInterfaces]($docs/learning/IpcInterface.md).\r\n */\r\n/**\r\n * @docs-group-description ECSQL\r\n * Types for working with [ECSQL]($docs/learning/ECSQL.md), [Spatial Queries]($docs/learning/SpatialQueries.md), and [ECSQL Geometry Functions]($docs/learning/GeometrySqlFuncs.md).\r\n */\r\n/**\r\n * @docs-group-description Logging\r\n * Logger categories used by this package.\r\n */\r\n/**\r\n * @docs-group-description CloudStorage\r\n * Types for working with Cloud Storage.\r\n */\r\n/**\r\n * @docs-group-description Tween\r\n * Tweening library adapted from tween.js.\r\n */\r\n/**\r\n * @docs-group-description Tile\r\n * Types for working with 3d tile formats.\r\n */\r\n/**\r\n * @docs-group-description Utils\r\n * Miscellaneous utility classes.\r\n */\r\n/**\r\n * @docs-group-description NativeApp\r\n * [Native applications]($docs/learning/NativeApps.md)\r\n */\r\n/**\r\n * @docs-group-description Localization\r\n * Classes for internationalization and localization of your app.\r\n */\r\n/**\r\n * @docs-group-description Authorization\r\n * Classes for managing AccessToken used for all requests in other classes.\r\n */\r\n/**\r\n * @docs-group-description RealityData\r\n * Types for working with the RealityData API.\r\n */\r\n/**\r\n * @docs-group-description MapLayers\r\n * Types for working with the MapLayers API.\r\n */\r\n"]}
1
+ {"version":3,"file":"core-common.js","sourceRoot":"","sources":["../../src/core-common.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\nexport * from \"./AmbientOcclusion\";\r\nexport * from \"./AnalysisStyle\";\r\nexport * from \"./AuthorizationClient\";\r\nexport * from \"./BackgroundMapProvider\";\r\nexport * from \"./BackgroundMapSettings\";\r\nexport * from \"./Base64EncodedString\";\r\nexport * from \"./BriefcaseTypes\";\r\nexport * from \"./Camera\";\r\nexport * from \"./ChangedElements\";\r\nexport * from \"./ChangedEntities\";\r\nexport * from \"./ChangesetProps\";\r\nexport * from \"./ClipStyle\";\r\nexport * from \"./CloudStorage\";\r\nexport * from \"./CloudStorageTileCache\";\r\nexport * from \"./Code\";\r\nexport * from \"./ColorByName\";\r\nexport * from \"./ColorDef\";\r\nexport * from \"./CommonLoggerCategory\";\r\nexport * from \"./ContextRealityModel\";\r\nexport * from \"./DisplayStyleSettings\";\r\nexport * from \"./domains/FunctionalElementProps\";\r\nexport * from \"./domains/GenericElementProps\";\r\nexport * from \"./ECSqlTypes\";\r\nexport * from \"./ECSchemaProps\";\r\nexport * from \"./ElementMesh\";\r\nexport * from \"./ElementProps\";\r\nexport * from \"./EmphasizeElementsProps\";\r\nexport * from \"./EntityProps\";\r\nexport * from \"./EntityReference\";\r\nexport * from \"./Environment\";\r\nexport * from \"./FeatureIndex\";\r\nexport * from \"./FeatureSymbology\";\r\nexport * from \"./FeatureTable\";\r\nexport * from \"./Fonts\";\r\nexport * from \"./Frustum\";\r\nexport * from \"./GeoCoordinateServices\";\r\nexport * from \"./geometry/AdditionalTransform\";\r\nexport * from \"./geometry/AreaPattern\";\r\nexport * from \"./geometry/BoundingSphere\";\r\nexport * from \"./geometry/Cartographic\";\r\nexport * from \"./geometry/CoordinateReferenceSystem\";\r\nexport * from \"./geometry/ElementGeometry\";\r\nexport * from \"./geometry/FrustumPlanes\";\r\nexport * from \"./geometry/GeodeticDatum\";\r\nexport * from \"./geometry/GeodeticEllipsoid\";\r\nexport * from \"./geometry/GeometryStream\";\r\nexport * from \"./geometry/ImageGraphic\";\r\nexport * from \"./geometry/LineStyle\";\r\nexport * from \"./geometry/Placement\";\r\nexport * from \"./geometry/Projection\";\r\nexport * from \"./geometry/TextString\";\r\nexport * from \"./GeometryContainment\";\r\nexport * from \"./GeometryParams\";\r\nexport * from \"./GeometrySummary\";\r\nexport * from \"./Gradient\";\r\nexport * from \"./GraphicParams\";\r\nexport * from \"./GroundPlane\";\r\nexport * from \"./HiddenLine\";\r\nexport * from \"./Hilite\";\r\nexport * from \"./HSLColor\";\r\nexport * from \"./HSVColor\";\r\nexport * from \"./Image\";\r\nexport * from \"./IModel\";\r\nexport * from \"./IModelError\";\r\nexport * from \"./IModelVersion\";\r\nexport * from \"./ipc/IpcSocket\";\r\nexport * from \"./ipc/IpcWebSocket\";\r\nexport * from \"./ipc/IpcWebSocketTransport\";\r\nexport * from \"./ipc/IpcSession\";\r\nexport * from \"./IpcAppProps\";\r\nexport * from \"./LightSettings\";\r\nexport * from \"./LinePixels\";\r\nexport * from \"./Localization\";\r\nexport * from \"./MapImagerySettings\";\r\nexport * from \"./MapLayerSettings\";\r\nexport * from \"./MassProperties\";\r\nexport * from \"./MaterialProps\";\r\nexport * from \"./ModelClipGroup\";\r\nexport * from \"./ModelProps\";\r\nexport * from \"./NativeAppProps\";\r\nexport * from \"./OctEncodedNormal\";\r\nexport * from \"./ConcurrentQuery\";\r\nexport * from \"./ECSqlReader\";\r\nexport * from \"./PlanarClipMask\";\r\nexport * from \"./ModelGeometryChanges\";\r\nexport * from \"./PlanProjectionSettings\";\r\nexport * from \"./BackendTypes\";\r\nexport * from \"./QPoint\";\r\nexport * from \"./RealityDataAccessProps\";\r\nexport * from \"./RealityModelDisplaySettings\";\r\nexport * from \"./Render\";\r\nexport * from \"./RenderMaterial\";\r\nexport * from \"./RenderSchedule\";\r\nexport * from \"./RenderTexture\";\r\nexport * from \"./RgbColor\";\r\nexport * from \"./rpc/core/RpcConfiguration\";\r\nexport * from \"./rpc/DevToolsRpcInterface\";\r\nexport * from \"./rpc/IModelReadRpcInterface\";\r\nexport * from \"./rpc/IModelTileRpcInterface\";\r\nexport * from \"./rpc/SnapshotIModelRpcInterface\";\r\nexport * from \"./rpc/TestRpcManager\";\r\nexport * from \"./rpc/WipRpcInterface\";\r\nexport * from \"./RpcInterface\";\r\nexport * from \"./RpcManager\";\r\nexport * from \"./SessionProps\";\r\nexport * from \"./SkyBox\";\r\nexport * from \"./Snapping\";\r\nexport * from \"./SolarCalculate\";\r\nexport * from \"./SolarShadows\";\r\nexport * from \"./SpatialClassification\";\r\nexport * from \"./SubCategoryAppearance\";\r\nexport * from \"./SubCategoryOverride\";\r\nexport * from \"./TerrainSettings\";\r\nexport * from \"./TextureMapping\";\r\nexport * from \"./TextureProps\";\r\nexport * from \"./ThematicDisplay\";\r\nexport * from \"./Thumbnail\";\r\nexport * from \"./TileProps\";\r\nexport * from \"./Tween\";\r\nexport * from \"./TxnAction\";\r\nexport * from \"./ViewDetails\";\r\nexport * from \"./ViewFlags\";\r\nexport * from \"./ViewProps\";\r\nexport * from \"./rpc/core/RpcConstants\";\r\nexport * from \"./rpc/core/RpcControl\";\r\nexport * from \"./rpc/core/RpcInvocation\";\r\nexport * from \"./rpc/core/RpcSessionInvocation\";\r\nexport * from \"./rpc/core/RpcMarshaling\";\r\nexport * from \"./rpc/core/RpcOperation\";\r\nexport * from \"./rpc/core/RpcPendingQueue\";\r\nexport * from \"./rpc/core/RpcProtocol\";\r\nexport * from \"./rpc/core/RpcRegistry\";\r\nexport * from \"./rpc/core/RpcRequest\";\r\nexport * from \"./rpc/core/RpcRequestContext\";\r\nexport * from \"./rpc/core/RpcRoutingToken\";\r\nexport * from \"./rpc/core/RpcPush\";\r\nexport * from \"./rpc/web/BentleyCloudRpcManager\";\r\nexport * from \"./rpc/web/BentleyCloudRpcProtocol\";\r\nexport * from \"./rpc/web/OpenAPI\";\r\nexport * from \"./rpc/web/RpcMultipart\";\r\nexport * from \"./rpc/web/WebAppRpcProtocol\";\r\nexport * from \"./rpc/web/WebAppRpcRequest\";\r\nexport * from \"./rpc/web/WebAppRpcLogging\";\r\nexport * from \"./tile/B3dmTileIO\";\r\nexport * from \"./tile/CompositeTileIO\";\r\nexport * from \"./tile/ElementGraphics\";\r\nexport * from \"./tile/GltfTileIO\";\r\nexport * from \"./tile/I3dmTileIO\";\r\nexport * from \"./tile/IModelTileIO\";\r\nexport * from \"./tile/PntsTileIO\";\r\nexport * from \"./tile/TileIO\";\r\nexport * from \"./tile/TileMetadata\";\r\nexport * from \"./WhiteOnWhiteReversalSettings\";\r\n\r\n/** @docs-package-description\r\n * The core-common package contains classes for working with iModels that can be used in both [frontend]($docs/learning/frontend/index.md) and [backend]($docs/learning/backend/index.md).\r\n */\r\n/**\r\n * @docs-group-description Entities\r\n * Definitions of the \"props\" interfaces and types that define the [wire format]($docs/learning/wireformat.md) for communication between the frontend and backend about entities (models, elements, etc) contained in an iModel.\r\n */\r\n/**\r\n * @docs-group-description Codes\r\n * Types for working with [Codes]($docs/bis/guide/fundamentals/codes.md).\r\n */\r\n/**\r\n * @docs-group-description Geometry\r\n * Types for working with geometry.\r\n */\r\n/**\r\n * @docs-group-description Serialization\r\n * Types for serializing geometry\r\n */\r\n/**\r\n * @docs-group-description Views\r\n * Types for defining graphical views of the contents of an iModel.\r\n */\r\n/**\r\n * @docs-group-description DisplayStyles\r\n * Types for describing how the contents of Views should be rendered.\r\n */\r\n/**\r\n * @docs-group-description Rendering\r\n * Types describing geometry, views, and symbology for consumption by a display system.\r\n */\r\n/**\r\n * @docs-group-description Symbology\r\n * Types that define the appearance of geometry.\r\n */\r\n/**\r\n * @docs-group-description iModels\r\n * Types for working with [iModels]($docs/learning/IModels.md) in both the frontend and backend.\r\n */\r\n/**\r\n * @docs-group-description RpcInterface\r\n * Types for working with [RpcInterfaces]($docs/learning/RpcInterface.md).\r\n */\r\n/**\r\n * @docs-group-description IpcSocket\r\n * Types for working with [IpcInterfaces]($docs/learning/IpcInterface.md).\r\n */\r\n/**\r\n * @docs-group-description ECSQL\r\n * Types for working with [ECSQL]($docs/learning/ECSQL.md), [Spatial Queries]($docs/learning/SpatialQueries.md), and [ECSQL Geometry Functions]($docs/learning/GeometrySqlFuncs.md).\r\n */\r\n/**\r\n * @docs-group-description Logging\r\n * Logger categories used by this package.\r\n */\r\n/**\r\n * @docs-group-description CloudStorage\r\n * Types for working with Cloud Storage.\r\n */\r\n/**\r\n * @docs-group-description Tween\r\n * Tweening library adapted from tween.js.\r\n */\r\n/**\r\n * @docs-group-description Tile\r\n * Types for working with 3d tile formats.\r\n */\r\n/**\r\n * @docs-group-description Utils\r\n * Miscellaneous utility classes.\r\n */\r\n/**\r\n * @docs-group-description NativeApp\r\n * [Native applications]($docs/learning/NativeApps.md)\r\n */\r\n/**\r\n * @docs-group-description Localization\r\n * Classes for internationalization and localization of your app.\r\n */\r\n/**\r\n * @docs-group-description Authorization\r\n * Classes for managing AccessToken used for all requests in other classes.\r\n */\r\n/**\r\n * @docs-group-description RealityData\r\n * Types for working with the RealityData API.\r\n */\r\n/**\r\n * @docs-group-description MapLayers\r\n * Types for working with the MapLayers API.\r\n */\r\n"]}
@@ -13,11 +13,11 @@ import { TileFormat, TileHeader } from "./TileIO";
13
13
  export class B3dmHeader extends TileHeader {
14
14
  constructor(stream) {
15
15
  super(stream);
16
- this.length = stream.nextUint32;
17
- this.featureTableJsonLength = stream.nextUint32;
18
- this.featureTableBinaryLength = stream.nextUint32;
19
- this.batchTableJsonLength = stream.nextUint32;
20
- this.batchTableBinaryLength = stream.nextUint32;
16
+ this.length = stream.readUint32();
17
+ this.featureTableJsonLength = stream.readUint32();
18
+ this.featureTableBinaryLength = stream.readUint32();
19
+ this.batchTableJsonLength = stream.readUint32();
20
+ this.batchTableBinaryLength = stream.readUint32();
21
21
  // Keep this legacy check in for now since a lot of tilesets are still using the old header.
22
22
  // Legacy header #1: [batchLength] [batchTableByteLength]
23
23
  // Legacy header #2: [batchTableJsonByteLength] [batchTableBinaryByteLength] [batchLength]
@@ -1 +1 @@
1
- {"version":3,"file":"B3dmTileIO.js","sourceRoot":"","sources":["../../../src/tile/B3dmTileIO.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAc,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAElD;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,UAAU;IAUxC,YAAmB,MAAkB;QACnC,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC;QAChC,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAC,UAAU,CAAC;QAChD,IAAI,CAAC,wBAAwB,GAAG,MAAM,CAAC,UAAU,CAAC;QAClD,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,UAAU,CAAC;QAC9C,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAC,UAAU,CAAC;QAEhD,4FAA4F;QAC5F,yDAAyD;QACzD,0FAA0F;QAC1F,sIAAsI;QACtI,oJAAoJ;QACpJ,oMAAoM;QACpM,2GAA2G;QAC3G,IAAI,IAAI,CAAC,oBAAoB,IAAI,SAAS,EAAE;YAC1C,qBAAqB;YACrB,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;YACnB,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,wBAAwB,CAAC;YAC1D,IAAI,CAAC,sBAAsB,GAAG,CAAC,CAAC;YAChC,IAAI,CAAC,sBAAsB,GAAG,CAAC,CAAC;YAChC,IAAI,CAAC,wBAAwB,GAAG,CAAC,CAAC;SACnC;aAAM,IAAI,IAAI,CAAC,sBAAsB,IAAI,SAAS,EAAE;YACnD,sBAAsB;YACtB,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;YACnB,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,sBAAsB,CAAC;YACxD,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,wBAAwB,CAAC;YAC5D,IAAI,CAAC,sBAAsB,GAAG,CAAC,CAAC;YAChC,IAAI,CAAC,wBAAwB,GAAG,CAAC,CAAC;SACnC;QAED,IAAI,CAAC,KAAK,IAAI,CAAC,sBAAsB,EAAE;YACrC,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YACnE,MAAM,QAAQ,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;YAC5C,IAAI,QAAQ;gBACV,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;SAChD;QAED,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK,IAAI,CAAC,oBAAoB,EAAE;YACnC,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACjE,MAAM,QAAQ,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;YAC5C,IAAI,QAAQ;gBACV,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;SAC9C;QAED,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAE5C,IAAI,MAAM,CAAC,YAAY;YACrB,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IApDD,IAAW,OAAO,KAAc,OAAO,UAAU,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;CAqD1E","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tile\r\n */\r\n\r\nimport { ByteStream, utf8ToString } from \"@itwin/core-bentley\";\r\nimport { TileFormat, TileHeader } from \"./TileIO\";\r\n\r\n/** Header preceding tile content in [b3dm](https://github.com/AnalyticalGraphicsInc/3d-tiles/tree/master/specification/TileFormats/Batched3DModel) format.\r\n * @internal\r\n */\r\nexport class B3dmHeader extends TileHeader {\r\n public readonly length: number;\r\n public readonly featureTableJsonLength: number;\r\n public readonly featureTableBinaryLength: number;\r\n public readonly batchTableJsonLength: number;\r\n public readonly batchTableBinaryLength: number;\r\n public readonly featureTableJson: any;\r\n public readonly batchTableJson: any;\r\n public get isValid(): boolean { return TileFormat.B3dm === this.format; }\r\n\r\n public constructor(stream: ByteStream) {\r\n super(stream);\r\n this.length = stream.nextUint32;\r\n this.featureTableJsonLength = stream.nextUint32;\r\n this.featureTableBinaryLength = stream.nextUint32;\r\n this.batchTableJsonLength = stream.nextUint32;\r\n this.batchTableBinaryLength = stream.nextUint32;\r\n\r\n // Keep this legacy check in for now since a lot of tilesets are still using the old header.\r\n // Legacy header #1: [batchLength] [batchTableByteLength]\r\n // Legacy header #2: [batchTableJsonByteLength] [batchTableBinaryByteLength] [batchLength]\r\n // Current header: [featureTableJsonByteLength] [featureTableBinaryByteLength] [batchTableJsonByteLength] [batchTableBinaryByteLength]\r\n // If the header is in the first legacy format 'batchTableJsonByteLength' will be the start of the JSON string (a quotation mark) or the glTF magic.\r\n // Accordingly its first byte will be either 0x22 or 0x67, and so the minimum uint32 expected is 0x22000000 = 570425344 = 570MB. It is unlikely that the feature table Json will exceed this length.\r\n // The check for the second legacy format is similar, except it checks 'batchTableBinaryByteLength' instead\r\n if (this.batchTableJsonLength >= 570425344) {\r\n // First legacy check\r\n stream.curPos = 20;\r\n this.batchTableJsonLength = this.featureTableBinaryLength;\r\n this.batchTableBinaryLength = 0;\r\n this.featureTableJsonLength = 0;\r\n this.featureTableBinaryLength = 0;\r\n } else if (this.batchTableBinaryLength >= 570425344) {\r\n // Second legacy check\r\n stream.curPos = 24;\r\n this.batchTableJsonLength = this.featureTableJsonLength;\r\n this.batchTableBinaryLength = this.featureTableBinaryLength;\r\n this.featureTableJsonLength = 0;\r\n this.featureTableBinaryLength = 0;\r\n }\r\n\r\n if (0 !== this.featureTableJsonLength) {\r\n const sceneStrData = stream.nextBytes(this.featureTableJsonLength);\r\n const sceneStr = utf8ToString(sceneStrData);\r\n if (sceneStr)\r\n this.featureTableJson = JSON.parse(sceneStr);\r\n }\r\n\r\n stream.advance(this.featureTableBinaryLength);\r\n if (0 !== this.batchTableJsonLength) {\r\n const batchStrData = stream.nextBytes(this.batchTableJsonLength);\r\n const batchStr = utf8ToString(batchStrData);\r\n if (batchStr)\r\n this.batchTableJson = JSON.parse(batchStr);\r\n }\r\n\r\n stream.advance(this.batchTableBinaryLength);\r\n\r\n if (stream.isPastTheEnd)\r\n this.invalidate();\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"B3dmTileIO.js","sourceRoot":"","sources":["../../../src/tile/B3dmTileIO.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAc,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAElD;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,UAAU;IAUxC,YAAmB,MAAkB;QACnC,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAClD,IAAI,CAAC,wBAAwB,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QACpD,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAChD,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAElD,4FAA4F;QAC5F,yDAAyD;QACzD,0FAA0F;QAC1F,sIAAsI;QACtI,oJAAoJ;QACpJ,oMAAoM;QACpM,2GAA2G;QAC3G,IAAI,IAAI,CAAC,oBAAoB,IAAI,SAAS,EAAE;YAC1C,qBAAqB;YACrB,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;YACnB,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,wBAAwB,CAAC;YAC1D,IAAI,CAAC,sBAAsB,GAAG,CAAC,CAAC;YAChC,IAAI,CAAC,sBAAsB,GAAG,CAAC,CAAC;YAChC,IAAI,CAAC,wBAAwB,GAAG,CAAC,CAAC;SACnC;aAAM,IAAI,IAAI,CAAC,sBAAsB,IAAI,SAAS,EAAE;YACnD,sBAAsB;YACtB,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;YACnB,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,sBAAsB,CAAC;YACxD,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,wBAAwB,CAAC;YAC5D,IAAI,CAAC,sBAAsB,GAAG,CAAC,CAAC;YAChC,IAAI,CAAC,wBAAwB,GAAG,CAAC,CAAC;SACnC;QAED,IAAI,CAAC,KAAK,IAAI,CAAC,sBAAsB,EAAE;YACrC,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YACnE,MAAM,QAAQ,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;YAC5C,IAAI,QAAQ;gBACV,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;SAChD;QAED,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK,IAAI,CAAC,oBAAoB,EAAE;YACnC,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACjE,MAAM,QAAQ,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;YAC5C,IAAI,QAAQ;gBACV,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;SAC9C;QAED,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAE5C,IAAI,MAAM,CAAC,YAAY;YACrB,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IApDD,IAAW,OAAO,KAAc,OAAO,UAAU,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;CAqD1E","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tile\r\n */\r\n\r\nimport { ByteStream, utf8ToString } from \"@itwin/core-bentley\";\r\nimport { TileFormat, TileHeader } from \"./TileIO\";\r\n\r\n/** Header preceding tile content in [b3dm](https://github.com/AnalyticalGraphicsInc/3d-tiles/tree/master/specification/TileFormats/Batched3DModel) format.\r\n * @internal\r\n */\r\nexport class B3dmHeader extends TileHeader {\r\n public readonly length: number;\r\n public readonly featureTableJsonLength: number;\r\n public readonly featureTableBinaryLength: number;\r\n public readonly batchTableJsonLength: number;\r\n public readonly batchTableBinaryLength: number;\r\n public readonly featureTableJson: any;\r\n public readonly batchTableJson: any;\r\n public get isValid(): boolean { return TileFormat.B3dm === this.format; }\r\n\r\n public constructor(stream: ByteStream) {\r\n super(stream);\r\n this.length = stream.readUint32();\r\n this.featureTableJsonLength = stream.readUint32();\r\n this.featureTableBinaryLength = stream.readUint32();\r\n this.batchTableJsonLength = stream.readUint32();\r\n this.batchTableBinaryLength = stream.readUint32();\r\n\r\n // Keep this legacy check in for now since a lot of tilesets are still using the old header.\r\n // Legacy header #1: [batchLength] [batchTableByteLength]\r\n // Legacy header #2: [batchTableJsonByteLength] [batchTableBinaryByteLength] [batchLength]\r\n // Current header: [featureTableJsonByteLength] [featureTableBinaryByteLength] [batchTableJsonByteLength] [batchTableBinaryByteLength]\r\n // If the header is in the first legacy format 'batchTableJsonByteLength' will be the start of the JSON string (a quotation mark) or the glTF magic.\r\n // Accordingly its first byte will be either 0x22 or 0x67, and so the minimum uint32 expected is 0x22000000 = 570425344 = 570MB. It is unlikely that the feature table Json will exceed this length.\r\n // The check for the second legacy format is similar, except it checks 'batchTableBinaryByteLength' instead\r\n if (this.batchTableJsonLength >= 570425344) {\r\n // First legacy check\r\n stream.curPos = 20;\r\n this.batchTableJsonLength = this.featureTableBinaryLength;\r\n this.batchTableBinaryLength = 0;\r\n this.featureTableJsonLength = 0;\r\n this.featureTableBinaryLength = 0;\r\n } else if (this.batchTableBinaryLength >= 570425344) {\r\n // Second legacy check\r\n stream.curPos = 24;\r\n this.batchTableJsonLength = this.featureTableJsonLength;\r\n this.batchTableBinaryLength = this.featureTableBinaryLength;\r\n this.featureTableJsonLength = 0;\r\n this.featureTableBinaryLength = 0;\r\n }\r\n\r\n if (0 !== this.featureTableJsonLength) {\r\n const sceneStrData = stream.nextBytes(this.featureTableJsonLength);\r\n const sceneStr = utf8ToString(sceneStrData);\r\n if (sceneStr)\r\n this.featureTableJson = JSON.parse(sceneStr);\r\n }\r\n\r\n stream.advance(this.featureTableBinaryLength);\r\n if (0 !== this.batchTableJsonLength) {\r\n const batchStrData = stream.nextBytes(this.batchTableJsonLength);\r\n const batchStr = utf8ToString(batchStrData);\r\n if (batchStr)\r\n this.batchTableJson = JSON.parse(batchStr);\r\n }\r\n\r\n stream.advance(this.batchTableBinaryLength);\r\n\r\n if (stream.isPastTheEnd)\r\n this.invalidate();\r\n }\r\n}\r\n"]}
@@ -12,8 +12,8 @@ import { TileFormat, TileHeader } from "./TileIO";
12
12
  export class CompositeTileHeader extends TileHeader {
13
13
  constructor(stream) {
14
14
  super(stream);
15
- this.length = stream.nextUint32;
16
- this.tileCount = stream.nextUint32;
15
+ this.length = stream.readUint32();
16
+ this.tileCount = stream.readUint32();
17
17
  this.tilePosition = stream.curPos;
18
18
  if (stream.isPastTheEnd)
19
19
  this.invalidate();
@@ -1 +1 @@
1
- {"version":3,"file":"CompositeTileIO.js","sourceRoot":"","sources":["../../../src/tile/CompositeTileIO.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAGH,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAElD;;GAEG;AACH,MAAM,OAAO,mBAAoB,SAAQ,UAAU;IAOjD,YAAmB,MAAkB;QACnC,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC;QAChC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC;QACnC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;QAElC,IAAI,MAAM,CAAC,YAAY;YACrB,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAVD,IAAW,OAAO,KAAc,OAAO,UAAU,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;CAW1E","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tile\r\n */\r\n\r\nimport { ByteStream } from \"@itwin/core-bentley\";\r\nimport { TileFormat, TileHeader } from \"./TileIO\";\r\n\r\n/** Header preceding tile content in [composite](https://github.com/AnalyticalGraphicsInc/3d-tiles/tree/master/specification/TileFormats/Composite) format, containing any number of tiles in other standard 3D tile formats.\r\n * @internal\r\n */\r\nexport class CompositeTileHeader extends TileHeader {\r\n public readonly length: number;\r\n public readonly tileCount: number;\r\n public readonly tilePosition: number;\r\n\r\n public get isValid(): boolean { return TileFormat.Cmpt === this.format; }\r\n\r\n public constructor(stream: ByteStream) {\r\n super(stream);\r\n this.length = stream.nextUint32;\r\n this.tileCount = stream.nextUint32;\r\n this.tilePosition = stream.curPos;\r\n\r\n if (stream.isPastTheEnd)\r\n this.invalidate();\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"CompositeTileIO.js","sourceRoot":"","sources":["../../../src/tile/CompositeTileIO.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAGH,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAElD;;GAEG;AACH,MAAM,OAAO,mBAAoB,SAAQ,UAAU;IAOjD,YAAmB,MAAkB;QACnC,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QACrC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC;QAElC,IAAI,MAAM,CAAC,YAAY;YACrB,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAVD,IAAW,OAAO,KAAc,OAAO,UAAU,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;CAW1E","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tile\r\n */\r\n\r\nimport { ByteStream } from \"@itwin/core-bentley\";\r\nimport { TileFormat, TileHeader } from \"./TileIO\";\r\n\r\n/** Header preceding tile content in [composite](https://github.com/AnalyticalGraphicsInc/3d-tiles/tree/master/specification/TileFormats/Composite) format, containing any number of tiles in other standard 3D tile formats.\r\n * @internal\r\n */\r\nexport class CompositeTileHeader extends TileHeader {\r\n public readonly length: number;\r\n public readonly tileCount: number;\r\n public readonly tilePosition: number;\r\n\r\n public get isValid(): boolean { return TileFormat.Cmpt === this.format; }\r\n\r\n public constructor(stream: ByteStream) {\r\n super(stream);\r\n this.length = stream.readUint32();\r\n this.tileCount = stream.readUint32();\r\n this.tilePosition = stream.curPos;\r\n\r\n if (stream.isPastTheEnd)\r\n this.invalidate();\r\n }\r\n}\r\n"]}
@@ -27,8 +27,8 @@ function consumeNextChunk(stream) {
27
27
  if (stream.isAtTheEnd)
28
28
  return undefined;
29
29
  const offset = stream.curPos + 8;
30
- const length = stream.nextUint32;
31
- const type = stream.nextUint32;
30
+ const length = stream.readUint32();
31
+ const type = stream.readUint32();
32
32
  stream.advance(length);
33
33
  return stream.isPastTheEnd ? false : { offset, length, type };
34
34
  }
@@ -39,9 +39,9 @@ export class GlbHeader extends TileHeader {
39
39
  this.gltfLength = 0;
40
40
  this.jsonChunk = { offset: 0, length: 0 };
41
41
  this.additionalChunks = [];
42
- this.gltfLength = stream.nextUint32;
43
- const jsonLength = stream.nextUint32;
44
- const word5 = stream.nextUint32;
42
+ this.gltfLength = stream.readUint32();
43
+ const jsonLength = stream.readUint32();
44
+ const word5 = stream.readUint32();
45
45
  // Early versions of the reality data tile publisher incorrectly put version 2 into header - handle these old tiles
46
46
  // validating the chunk type.
47
47
  if (this.version === GltfVersions.Version2 && word5 === GltfVersions.Gltf1SceneFormat)
@@ -1 +1 @@
1
- {"version":3,"file":"GltfTileIO.js","sourceRoot":"","sources":["../../../src/tile/GltfTileIO.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAc,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAElD;;GAEG;AACH,MAAM,CAAN,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,uDAAY,CAAA;IACZ,uDAAY,CAAA;IACZ,mEAAyB,CAAA;IACzB,uEAAoB,CAAA;AACtB,CAAC,EALW,YAAY,KAAZ,YAAY,QAKvB;AAED,gBAAgB;AAChB,MAAM,CAAN,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IAC1B,gEAAiB,CAAA;IACjB,iEAAmB,CAAA;AACrB,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,QAG3B;AAmBD,SAAS,gBAAgB,CAAC,MAAkB;IAC1C,IAAI,MAAM,CAAC,UAAU;QACnB,OAAO,SAAS,CAAC;IAEnB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC;IACjC,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC;IAC/B,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACvB,OAAO,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAChE,CAAC;AAED,gBAAgB;AAChB,MAAM,OAAO,SAAU,SAAQ,UAAU;IAUvC,YAAmB,MAAkB;QACnC,KAAK,CAAC,MAAM,CAAC,CAAC;QAVA,eAAU,GAAW,CAAC,CAAC;QACvB,cAAS,GAAc,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QAEhD,qBAAgB,GAAqB,EAAE,CAAC;QAQtD,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QAEpC,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACrC,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC;QAEhC,mHAAmH;QACnH,6BAA6B;QAC7B,IAAI,IAAI,CAAC,OAAO,KAAK,YAAY,CAAC,QAAQ,IAAI,KAAK,KAAK,YAAY,CAAC,gBAAgB;YACnF,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,QAAQ,CAAC;QAEvC,IAAI,CAAC,SAAS,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;QAC/D,QAAQ,IAAI,CAAC,OAAO,EAAE;YACpB,KAAK,YAAY,CAAC,QAAQ;gBACxB,IAAI,YAAY,CAAC,gBAAgB,KAAK,KAAK,EAAE;oBAC3C,IAAI,CAAC,UAAU,EAAE,CAAC;oBAClB,OAAO;iBACR;gBAED,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,GAAG,UAAU,CAAC;gBAChD,IAAI,CAAC,WAAW,GAAG,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,GAAG,YAAY,EAAE,CAAC;gBACpF,MAAM;YACR,KAAK,YAAY,CAAC,QAAQ;gBACxB,IAAI,KAAK,KAAK,gBAAgB,CAAC,IAAI,EAAE;oBACnC,IAAI,CAAC,UAAU,EAAE,CAAC;oBAClB,OAAO;iBACR;gBAED,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBAC3B,IAAI,MAAM,CAAC,YAAY,EAAE;oBACvB,IAAI,CAAC,UAAU,EAAE,CAAC;oBAClB,OAAO;iBACR;gBAED,IAAI,KAAK,CAAC;gBACV,OAAO,KAAK,GAAG,gBAAgB,CAAC,MAAM,CAAC,EAAE;oBACvC,QAAQ,KAAK,CAAC,IAAI,EAAE;wBAClB,KAAK,gBAAgB,CAAC,IAAI;4BACxB,0DAA0D;4BAC1D,IAAI,CAAC,UAAU,EAAE,CAAC;4BAClB,OAAO;wBACT,KAAK,gBAAgB,CAAC,MAAM;4BAC1B,2EAA2E;4BAC3E,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE;gCACpD,IAAI,CAAC,UAAU,EAAE,CAAC;gCAClB,OAAO;6BACR;4BAED,IAAI,CAAC,WAAW,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,CAAC;4BAClE,MAAM;wBACR;4BACE,kEAAkE;4BAClE,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;4BAClC,MAAM;qBACT;iBACF;gBAED,IAAI,KAAK,KAAK,KAAK,EAAE;oBACnB,IAAI,CAAC,UAAU,EAAE,CAAC;oBAClB,OAAO;iBACR;gBAED,MAAM,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC;gBAC5B,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBAC1B,MAAM;YACR;gBACE,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClB,MAAM;SACT;IACH,CAAC;IA1ED,IAAW,OAAO;QAChB,OAAO,UAAU,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC;IACzC,CAAC;CAyEF","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tile\r\n */\r\n\r\nimport { assert, ByteStream } from \"@itwin/core-bentley\";\r\nimport { TileFormat, TileHeader } from \"./TileIO\";\r\n\r\n/** Known version of the [glTF format](https://www.khronos.org/gltf/).\r\n * @internal\r\n */\r\nexport enum GltfVersions {\r\n Version1 = 1,\r\n Version2 = 2,\r\n CurrentVersion = Version1,\r\n Gltf1SceneFormat = 0,\r\n}\r\n\r\n/** @internal */\r\nexport enum GltfV2ChunkTypes {\r\n JSON = 0x4E4F534a,\r\n Binary = 0x004E4942,\r\n}\r\n\r\n/** A chunk of a glb file.\r\n * @internal\r\n */\r\nexport interface GltfChunk {\r\n /** Offset of the first byte of the chunk's data relative to the beginning of the glb data.\r\n * This excludes the 8-byte chunk header containing the length and type fields.\r\n */\r\n offset: number;\r\n /** The number of bytes in the chunk's data. */\r\n length: number;\r\n}\r\n\r\n/** Describes a glTF chunk's data along with its type.\r\n * @internal\r\n */\r\nexport type TypedGltfChunk = GltfChunk & { type: number };\r\n\r\nfunction consumeNextChunk(stream: ByteStream): TypedGltfChunk | undefined | false {\r\n if (stream.isAtTheEnd)\r\n return undefined;\r\n\r\n const offset = stream.curPos + 8;\r\n const length = stream.nextUint32;\r\n const type = stream.nextUint32;\r\n stream.advance(length);\r\n return stream.isPastTheEnd ? false : { offset, length, type };\r\n}\r\n\r\n/** @internal */\r\nexport class GlbHeader extends TileHeader {\r\n public readonly gltfLength: number = 0;\r\n public readonly jsonChunk: GltfChunk = { offset: 0, length: 0 };\r\n public readonly binaryChunk?: GltfChunk;\r\n public readonly additionalChunks: TypedGltfChunk[] = [];\r\n\r\n public get isValid(): boolean {\r\n return TileFormat.Gltf === this.format;\r\n }\r\n\r\n public constructor(stream: ByteStream) {\r\n super(stream);\r\n this.gltfLength = stream.nextUint32;\r\n\r\n const jsonLength = stream.nextUint32;\r\n const word5 = stream.nextUint32;\r\n\r\n // Early versions of the reality data tile publisher incorrectly put version 2 into header - handle these old tiles\r\n // validating the chunk type.\r\n if (this.version === GltfVersions.Version2 && word5 === GltfVersions.Gltf1SceneFormat)\r\n this.version = GltfVersions.Version1;\r\n\r\n this.jsonChunk = { offset: stream.curPos, length: jsonLength };\r\n switch (this.version) {\r\n case GltfVersions.Version1:\r\n if (GltfVersions.Gltf1SceneFormat !== word5) {\r\n this.invalidate();\r\n return;\r\n }\r\n\r\n const binaryOffset = stream.curPos + jsonLength;\r\n this.binaryChunk = { offset: binaryOffset, length: this.gltfLength - binaryOffset };\r\n break;\r\n case GltfVersions.Version2:\r\n if (word5 !== GltfV2ChunkTypes.JSON) {\r\n this.invalidate();\r\n return;\r\n }\r\n\r\n stream.advance(jsonLength);\r\n if (stream.isPastTheEnd) {\r\n this.invalidate();\r\n return;\r\n }\r\n\r\n let chunk;\r\n while (chunk = consumeNextChunk(stream)) {\r\n switch (chunk.type) {\r\n case GltfV2ChunkTypes.JSON:\r\n // Only one JSON chunk permitted and it must be the first.\r\n this.invalidate();\r\n return;\r\n case GltfV2ChunkTypes.Binary:\r\n // At most one binary chunk permitted and it must be the second if present.\r\n if (this.binaryChunk || this.additionalChunks.length) {\r\n this.invalidate();\r\n return;\r\n }\r\n\r\n this.binaryChunk = { offset: chunk.offset, length: chunk.length };\r\n break;\r\n default:\r\n // Any other chunk type should be ignored - for use by extensions.\r\n this.additionalChunks.push(chunk);\r\n break;\r\n }\r\n }\r\n\r\n if (false === chunk) {\r\n this.invalidate();\r\n return;\r\n }\r\n\r\n assert(undefined === chunk);\r\n assert(stream.isAtTheEnd);\r\n break;\r\n default:\r\n this.invalidate();\r\n break;\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"GltfTileIO.js","sourceRoot":"","sources":["../../../src/tile/GltfTileIO.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tile\r\n */\r\n\r\nimport { assert, ByteStream } from \"@itwin/core-bentley\";\r\nimport { TileFormat, TileHeader } from \"./TileIO\";\r\n\r\n/** Known version of the [glTF format](https://www.khronos.org/gltf/).\r\n * @internal\r\n */\r\nexport enum GltfVersions {\r\n Version1 = 1,\r\n Version2 = 2,\r\n CurrentVersion = Version1,\r\n Gltf1SceneFormat = 0,\r\n}\r\n\r\n/** @internal */\r\nexport enum GltfV2ChunkTypes {\r\n JSON = 0x4E4F534a,\r\n Binary = 0x004E4942,\r\n}\r\n\r\n/** A chunk of a glb file.\r\n * @internal\r\n */\r\nexport interface GltfChunk {\r\n /** Offset of the first byte of the chunk's data relative to the beginning of the glb data.\r\n * This excludes the 8-byte chunk header containing the length and type fields.\r\n */\r\n offset: number;\r\n /** The number of bytes in the chunk's data. */\r\n length: number;\r\n}\r\n\r\n/** Describes a glTF chunk's data along with its type.\r\n * @internal\r\n */\r\nexport type TypedGltfChunk = GltfChunk & { type: number };\r\n\r\nfunction consumeNextChunk(stream: ByteStream): TypedGltfChunk | undefined | false {\r\n if (stream.isAtTheEnd)\r\n return undefined;\r\n\r\n const offset = stream.curPos + 8;\r\n const length = stream.readUint32();\r\n const type = stream.readUint32();\r\n stream.advance(length);\r\n return stream.isPastTheEnd ? false : { offset, length, type };\r\n}\r\n\r\n/** @internal */\r\nexport class GlbHeader extends TileHeader {\r\n public readonly gltfLength: number = 0;\r\n public readonly jsonChunk: GltfChunk = { offset: 0, length: 0 };\r\n public readonly binaryChunk?: GltfChunk;\r\n public readonly additionalChunks: TypedGltfChunk[] = [];\r\n\r\n public get isValid(): boolean {\r\n return TileFormat.Gltf === this.format;\r\n }\r\n\r\n public constructor(stream: ByteStream) {\r\n super(stream);\r\n this.gltfLength = stream.readUint32();\r\n\r\n const jsonLength = stream.readUint32();\r\n const word5 = stream.readUint32();\r\n\r\n // Early versions of the reality data tile publisher incorrectly put version 2 into header - handle these old tiles\r\n // validating the chunk type.\r\n if (this.version === GltfVersions.Version2 && word5 === GltfVersions.Gltf1SceneFormat)\r\n this.version = GltfVersions.Version1;\r\n\r\n this.jsonChunk = { offset: stream.curPos, length: jsonLength };\r\n switch (this.version) {\r\n case GltfVersions.Version1:\r\n if (GltfVersions.Gltf1SceneFormat !== word5) {\r\n this.invalidate();\r\n return;\r\n }\r\n\r\n const binaryOffset = stream.curPos + jsonLength;\r\n this.binaryChunk = { offset: binaryOffset, length: this.gltfLength - binaryOffset };\r\n break;\r\n case GltfVersions.Version2:\r\n if (word5 !== GltfV2ChunkTypes.JSON) {\r\n this.invalidate();\r\n return;\r\n }\r\n\r\n stream.advance(jsonLength);\r\n if (stream.isPastTheEnd) {\r\n this.invalidate();\r\n return;\r\n }\r\n\r\n let chunk;\r\n while (chunk = consumeNextChunk(stream)) {\r\n switch (chunk.type) {\r\n case GltfV2ChunkTypes.JSON:\r\n // Only one JSON chunk permitted and it must be the first.\r\n this.invalidate();\r\n return;\r\n case GltfV2ChunkTypes.Binary:\r\n // At most one binary chunk permitted and it must be the second if present.\r\n if (this.binaryChunk || this.additionalChunks.length) {\r\n this.invalidate();\r\n return;\r\n }\r\n\r\n this.binaryChunk = { offset: chunk.offset, length: chunk.length };\r\n break;\r\n default:\r\n // Any other chunk type should be ignored - for use by extensions.\r\n this.additionalChunks.push(chunk);\r\n break;\r\n }\r\n }\r\n\r\n if (false === chunk) {\r\n this.invalidate();\r\n return;\r\n }\r\n\r\n assert(undefined === chunk);\r\n assert(stream.isAtTheEnd);\r\n break;\r\n default:\r\n this.invalidate();\r\n break;\r\n }\r\n }\r\n}\r\n"]}
@@ -13,12 +13,12 @@ import { TileFormat, TileHeader } from "./TileIO";
13
13
  export class I3dmHeader extends TileHeader {
14
14
  constructor(stream) {
15
15
  super(stream);
16
- this.length = stream.nextUint32;
17
- this.featureTableJsonLength = stream.nextUint32;
18
- this.featureTableBinaryLength = stream.nextUint32;
19
- this.batchTableJsonLength = stream.nextUint32;
20
- this.batchTableBinaryLength = stream.nextUint32;
21
- this.gltfVersion = stream.nextUint32;
16
+ this.length = stream.readUint32();
17
+ this.featureTableJsonLength = stream.readUint32();
18
+ this.featureTableBinaryLength = stream.readUint32();
19
+ this.batchTableJsonLength = stream.readUint32();
20
+ this.batchTableBinaryLength = stream.readUint32();
21
+ this.gltfVersion = stream.readUint32();
22
22
  this.featureTableJsonPosition = stream.curPos;
23
23
  stream.advance(this.featureTableJsonLength);
24
24
  stream.advance(this.featureTableBinaryLength);
@@ -1 +1 @@
1
- {"version":3,"file":"I3dmTileIO.js","sourceRoot":"","sources":["../../../src/tile/I3dmTileIO.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAc,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAElD;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,UAAU;IAWxC,YAAmB,MAAkB;QACnC,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC;QAChC,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAC,UAAU,CAAC;QAChD,IAAI,CAAC,wBAAwB,GAAG,MAAM,CAAC,UAAU,CAAC;QAClD,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,UAAU,CAAC;QAC9C,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAC,UAAU,CAAC;QAChD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,wBAAwB,GAAG,MAAM,CAAC,MAAM,CAAC;QAC9C,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC5C,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK,IAAI,CAAC,oBAAoB,EAAE;YACnC,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACjE,MAAM,QAAQ,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;YAC5C,IAAI,QAAQ;gBACV,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;SAC9C;QACD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAE5C,IAAI,MAAM,CAAC,YAAY;YACrB,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAvBD,IAAW,OAAO,KAAc,OAAO,UAAU,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;CAwB1E","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tile\r\n */\r\n\r\nimport { ByteStream, utf8ToString } from \"@itwin/core-bentley\";\r\nimport { TileFormat, TileHeader } from \"./TileIO\";\r\n\r\n/** Header preceding tile content in [i3dm](https://github.com/AnalyticalGraphicsInc/3d-tiles/tree/master/specification/TileFormats/Instanced3DModel) format.\r\n * @internal\r\n */\r\nexport class I3dmHeader extends TileHeader {\r\n public readonly length: number;\r\n public readonly featureTableJsonPosition: number;\r\n public readonly featureTableJsonLength: number;\r\n public readonly featureTableBinaryLength: number;\r\n public readonly batchTableJsonLength: number;\r\n public readonly batchTableBinaryLength: number;\r\n public readonly gltfVersion: number;\r\n public readonly batchTableJson: any;\r\n public get isValid(): boolean { return TileFormat.I3dm === this.format; }\r\n\r\n public constructor(stream: ByteStream) {\r\n super(stream);\r\n this.length = stream.nextUint32;\r\n this.featureTableJsonLength = stream.nextUint32;\r\n this.featureTableBinaryLength = stream.nextUint32;\r\n this.batchTableJsonLength = stream.nextUint32;\r\n this.batchTableBinaryLength = stream.nextUint32;\r\n this.gltfVersion = stream.nextUint32;\r\n this.featureTableJsonPosition = stream.curPos;\r\n stream.advance(this.featureTableJsonLength);\r\n stream.advance(this.featureTableBinaryLength);\r\n if (0 !== this.batchTableJsonLength) {\r\n const batchStrData = stream.nextBytes(this.batchTableJsonLength);\r\n const batchStr = utf8ToString(batchStrData);\r\n if (batchStr)\r\n this.batchTableJson = JSON.parse(batchStr);\r\n }\r\n stream.advance(this.batchTableBinaryLength);\r\n\r\n if (stream.isPastTheEnd)\r\n this.invalidate();\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"I3dmTileIO.js","sourceRoot":"","sources":["../../../src/tile/I3dmTileIO.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAc,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAElD;;GAEG;AACH,MAAM,OAAO,UAAW,SAAQ,UAAU;IAWxC,YAAmB,MAAkB;QACnC,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAClD,IAAI,CAAC,wBAAwB,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QACpD,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAChD,IAAI,CAAC,sBAAsB,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QAClD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;QACvC,IAAI,CAAC,wBAAwB,GAAG,MAAM,CAAC,MAAM,CAAC;QAC9C,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC5C,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAC9C,IAAI,CAAC,KAAK,IAAI,CAAC,oBAAoB,EAAE;YACnC,MAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACjE,MAAM,QAAQ,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;YAC5C,IAAI,QAAQ;gBACV,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;SAC9C;QACD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAE5C,IAAI,MAAM,CAAC,YAAY;YACrB,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;IAvBD,IAAW,OAAO,KAAc,OAAO,UAAU,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;CAwB1E","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Tile\r\n */\r\n\r\nimport { ByteStream, utf8ToString } from \"@itwin/core-bentley\";\r\nimport { TileFormat, TileHeader } from \"./TileIO\";\r\n\r\n/** Header preceding tile content in [i3dm](https://github.com/AnalyticalGraphicsInc/3d-tiles/tree/master/specification/TileFormats/Instanced3DModel) format.\r\n * @internal\r\n */\r\nexport class I3dmHeader extends TileHeader {\r\n public readonly length: number;\r\n public readonly featureTableJsonPosition: number;\r\n public readonly featureTableJsonLength: number;\r\n public readonly featureTableBinaryLength: number;\r\n public readonly batchTableJsonLength: number;\r\n public readonly batchTableBinaryLength: number;\r\n public readonly gltfVersion: number;\r\n public readonly batchTableJson: any;\r\n public get isValid(): boolean { return TileFormat.I3dm === this.format; }\r\n\r\n public constructor(stream: ByteStream) {\r\n super(stream);\r\n this.length = stream.readUint32();\r\n this.featureTableJsonLength = stream.readUint32();\r\n this.featureTableBinaryLength = stream.readUint32();\r\n this.batchTableJsonLength = stream.readUint32();\r\n this.batchTableBinaryLength = stream.readUint32();\r\n this.gltfVersion = stream.readUint32();\r\n this.featureTableJsonPosition = stream.curPos;\r\n stream.advance(this.featureTableJsonLength);\r\n stream.advance(this.featureTableBinaryLength);\r\n if (0 !== this.batchTableJsonLength) {\r\n const batchStrData = stream.nextBytes(this.batchTableJsonLength);\r\n const batchStr = utf8ToString(batchStrData);\r\n if (batchStr)\r\n this.batchTableJson = JSON.parse(batchStr);\r\n }\r\n stream.advance(this.batchTableBinaryLength);\r\n\r\n if (stream.isPastTheEnd)\r\n this.invalidate();\r\n }\r\n}\r\n"]}
@@ -48,17 +48,17 @@ export class ImdlHeader extends TileHeader {
48
48
  */
49
49
  constructor(stream) {
50
50
  super(stream);
51
- this.headerLength = stream.nextUint32;
52
- this.flags = stream.nextUint32;
51
+ this.headerLength = stream.readUint32();
52
+ this.flags = stream.readUint32();
53
53
  this.contentRange = new Range3d();
54
54
  nextPoint3d64FromByteStream(stream, this.contentRange.low);
55
55
  nextPoint3d64FromByteStream(stream, this.contentRange.high);
56
- this.tolerance = stream.nextFloat64;
57
- this.numElementsIncluded = stream.nextUint32;
58
- this.numElementsExcluded = stream.nextUint32;
59
- this.tileLength = stream.nextUint32;
56
+ this.tolerance = stream.readFloat64();
57
+ this.numElementsIncluded = stream.readUint32();
58
+ this.numElementsExcluded = stream.readUint32();
59
+ this.tileLength = stream.readUint32();
60
60
  // empty sub-volume bit field introduced in format v02.00
61
- this.emptySubRanges = this.versionMajor >= 2 ? stream.nextUint32 : 0;
61
+ this.emptySubRanges = this.versionMajor >= 2 ? stream.readUint32() : 0;
62
62
  // Skip any unprocessed bytes in header
63
63
  const remainingHeaderBytes = this.headerLength - stream.curPos;
64
64
  assert(remainingHeaderBytes >= 0);
@@ -81,9 +81,9 @@ export class FeatureTableHeader {
81
81
  this.count = count;
82
82
  }
83
83
  static readFrom(stream) {
84
- const length = stream.nextUint32;
85
- const maxFeatures = stream.nextUint32;
86
- const count = stream.nextUint32;
84
+ const length = stream.readUint32();
85
+ const maxFeatures = stream.readUint32();
86
+ const count = stream.readUint32();
87
87
  return stream.isPastTheEnd ? undefined : new FeatureTableHeader(length, maxFeatures, count);
88
88
  }
89
89
  }