@itwin/core-frontend 4.10.0-dev.3 → 4.10.0-dev.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/cjs/DisplayStyleState.d.ts.map +1 -1
- package/lib/cjs/DisplayStyleState.js +5 -1
- package/lib/cjs/DisplayStyleState.js.map +1 -1
- package/lib/cjs/ElementLocateManager.d.ts +7 -1
- package/lib/cjs/ElementLocateManager.d.ts.map +1 -1
- package/lib/cjs/ElementLocateManager.js +34 -10
- package/lib/cjs/ElementLocateManager.js.map +1 -1
- package/lib/cjs/NoRenderApp.d.ts +1 -0
- package/lib/cjs/NoRenderApp.d.ts.map +1 -1
- package/lib/cjs/NoRenderApp.js +1 -0
- package/lib/cjs/NoRenderApp.js.map +1 -1
- package/lib/cjs/Viewport.d.ts +25 -1
- package/lib/cjs/Viewport.d.ts.map +1 -1
- package/lib/cjs/Viewport.js +20 -12
- package/lib/cjs/Viewport.js.map +1 -1
- package/lib/cjs/common/imdl/ImdlModel.d.ts +3 -8
- package/lib/cjs/common/imdl/ImdlModel.d.ts.map +1 -1
- package/lib/cjs/common/imdl/ImdlModel.js.map +1 -1
- package/lib/cjs/common/internal/Symbols.d.ts +7 -0
- package/lib/cjs/common/internal/Symbols.d.ts.map +1 -1
- package/lib/cjs/common/internal/Symbols.js +8 -1
- package/lib/cjs/common/internal/Symbols.js.map +1 -1
- package/lib/cjs/common/internal/render/InstancedGraphicPropsBuilder.d.ts +15 -0
- package/lib/cjs/common/internal/render/InstancedGraphicPropsBuilder.d.ts.map +1 -0
- package/lib/cjs/common/internal/render/InstancedGraphicPropsBuilder.js +95 -0
- package/lib/cjs/common/internal/render/InstancedGraphicPropsBuilder.js.map +1 -0
- package/lib/cjs/common/internal/render/LineCode.d.ts +9 -0
- package/lib/cjs/common/internal/render/LineCode.d.ts.map +1 -0
- package/lib/cjs/common/internal/render/LineCode.js +31 -0
- package/lib/cjs/common/internal/render/LineCode.js.map +1 -0
- package/lib/cjs/common/internal/render/OvrFlags.d.ts +25 -0
- package/lib/cjs/common/internal/render/OvrFlags.d.ts.map +1 -0
- package/lib/cjs/common/internal/render/OvrFlags.js +10 -0
- package/lib/cjs/common/internal/render/OvrFlags.js.map +1 -0
- package/lib/cjs/common/render/InstancedGraphicParams.d.ts +25 -1
- package/lib/cjs/common/render/InstancedGraphicParams.d.ts.map +1 -1
- package/lib/cjs/common/render/InstancedGraphicParams.js +59 -0
- package/lib/cjs/common/render/InstancedGraphicParams.js.map +1 -1
- package/lib/cjs/common/render/RenderInstancesParams.d.ts +76 -0
- package/lib/cjs/common/render/RenderInstancesParams.d.ts.map +1 -0
- package/lib/cjs/common/render/RenderInstancesParams.js +33 -0
- package/lib/cjs/common/render/RenderInstancesParams.js.map +1 -0
- package/lib/cjs/common.d.ts +1 -0
- package/lib/cjs/common.d.ts.map +1 -1
- package/lib/cjs/common.js +1 -0
- package/lib/cjs/common.js.map +1 -1
- package/lib/cjs/core-frontend.d.ts +1 -0
- package/lib/cjs/core-frontend.d.ts.map +1 -1
- package/lib/cjs/core-frontend.js +1 -0
- package/lib/cjs/core-frontend.js.map +1 -1
- package/lib/cjs/internal/render/PrimitiveBuilder.d.ts +4 -1
- package/lib/cjs/internal/render/PrimitiveBuilder.d.ts.map +1 -1
- package/lib/cjs/internal/render/PrimitiveBuilder.js +82 -35
- package/lib/cjs/internal/render/PrimitiveBuilder.js.map +1 -1
- package/lib/cjs/internal/render/RenderGeometry.d.ts +20 -0
- package/lib/cjs/internal/render/RenderGeometry.d.ts.map +1 -0
- package/lib/cjs/internal/render/RenderGeometry.js +10 -0
- package/lib/cjs/internal/render/RenderGeometry.js.map +1 -0
- package/lib/cjs/internal/render/RenderInstancesParamsImpl.d.ts +24 -0
- package/lib/cjs/internal/render/RenderInstancesParamsImpl.d.ts.map +1 -0
- package/lib/cjs/internal/render/RenderInstancesParamsImpl.js +69 -0
- package/lib/cjs/internal/render/RenderInstancesParamsImpl.js.map +1 -0
- package/lib/cjs/render/GraphicBuilder.d.ts +17 -3
- package/lib/cjs/render/GraphicBuilder.d.ts.map +1 -1
- package/lib/cjs/render/GraphicBuilder.js +7 -1
- package/lib/cjs/render/GraphicBuilder.js.map +1 -1
- package/lib/cjs/render/GraphicTemplate.d.ts +76 -0
- package/lib/cjs/render/GraphicTemplate.d.ts.map +1 -0
- package/lib/cjs/render/GraphicTemplate.js +41 -0
- package/lib/cjs/render/GraphicTemplate.js.map +1 -0
- package/lib/cjs/render/MockRender.d.ts +12 -2
- package/lib/cjs/render/MockRender.d.ts.map +1 -1
- package/lib/cjs/render/MockRender.js +19 -5
- package/lib/cjs/render/MockRender.js.map +1 -1
- package/lib/cjs/render/RenderSystem.d.ts +58 -10
- package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
- package/lib/cjs/render/RenderSystem.js +42 -4
- package/lib/cjs/render/RenderSystem.js.map +1 -1
- package/lib/cjs/render/RenderTarget.d.ts +1 -1
- package/lib/cjs/render/RenderTarget.d.ts.map +1 -1
- package/lib/cjs/render/RenderTarget.js.map +1 -1
- package/lib/cjs/render/webgl/BatchUniforms.js.map +1 -1
- package/lib/cjs/render/webgl/EdgeSettings.d.ts +2 -1
- package/lib/cjs/render/webgl/EdgeSettings.d.ts.map +1 -1
- package/lib/cjs/render/webgl/EdgeSettings.js.map +1 -1
- package/lib/cjs/render/webgl/FeatureOverrides.d.ts +1 -0
- package/lib/cjs/render/webgl/FeatureOverrides.d.ts.map +1 -1
- package/lib/cjs/render/webgl/FeatureOverrides.js +37 -20
- package/lib/cjs/render/webgl/FeatureOverrides.js.map +1 -1
- package/lib/cjs/render/webgl/InstancedGeometry.d.ts +40 -10
- package/lib/cjs/render/webgl/InstancedGeometry.d.ts.map +1 -1
- package/lib/cjs/render/webgl/InstancedGeometry.js +99 -31
- package/lib/cjs/render/webgl/InstancedGeometry.js.map +1 -1
- package/lib/cjs/render/webgl/LineCode.d.ts.map +1 -1
- package/lib/cjs/render/webgl/LineCode.js +2 -14
- package/lib/cjs/render/webgl/LineCode.js.map +1 -1
- package/lib/cjs/render/webgl/Mesh.d.ts +9 -4
- package/lib/cjs/render/webgl/Mesh.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Mesh.js +18 -16
- package/lib/cjs/render/webgl/Mesh.js.map +1 -1
- package/lib/cjs/render/webgl/PointCloud.d.ts +5 -1
- package/lib/cjs/render/webgl/PointCloud.d.ts.map +1 -1
- package/lib/cjs/render/webgl/PointCloud.js +7 -2
- package/lib/cjs/render/webgl/PointCloud.js.map +1 -1
- package/lib/cjs/render/webgl/PointString.d.ts +5 -1
- package/lib/cjs/render/webgl/PointString.d.ts.map +1 -1
- package/lib/cjs/render/webgl/PointString.js +8 -3
- package/lib/cjs/render/webgl/PointString.js.map +1 -1
- package/lib/cjs/render/webgl/Polyline.d.ts +5 -1
- package/lib/cjs/render/webgl/Polyline.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Polyline.js +7 -2
- package/lib/cjs/render/webgl/Polyline.js.map +1 -1
- package/lib/cjs/render/webgl/Primitive.d.ts +1 -3
- package/lib/cjs/render/webgl/Primitive.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Primitive.js +1 -6
- package/lib/cjs/render/webgl/Primitive.js.map +1 -1
- package/lib/cjs/render/webgl/RealityMesh.d.ts +5 -1
- package/lib/cjs/render/webgl/RealityMesh.d.ts.map +1 -1
- package/lib/cjs/render/webgl/RealityMesh.js +6 -0
- package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
- package/lib/cjs/render/webgl/RenderFlags.d.ts +0 -18
- package/lib/cjs/render/webgl/RenderFlags.d.ts.map +1 -1
- package/lib/cjs/render/webgl/RenderFlags.js.map +1 -1
- package/lib/cjs/render/webgl/System.d.ts +11 -5
- package/lib/cjs/render/webgl/System.d.ts.map +1 -1
- package/lib/cjs/render/webgl/System.js +81 -13
- package/lib/cjs/render/webgl/System.js.map +1 -1
- package/lib/cjs/render/webgl/Target.d.ts +6 -2
- package/lib/cjs/render/webgl/Target.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Target.js +23 -1
- package/lib/cjs/render/webgl/Target.js.map +1 -1
- package/lib/cjs/render/webgl/Texture.d.ts +2 -1
- package/lib/cjs/render/webgl/Texture.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Texture.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/FeatureSymbology.js +6 -0
- package/lib/cjs/render/webgl/glsl/FeatureSymbology.js.map +1 -1
- package/lib/cjs/tile/GltfReader.d.ts +27 -7
- package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
- package/lib/cjs/tile/GltfReader.js +84 -68
- package/lib/cjs/tile/GltfReader.js.map +1 -1
- package/lib/cjs/tile/ImdlGraphicsCreator.d.ts +4 -1
- package/lib/cjs/tile/ImdlGraphicsCreator.d.ts.map +1 -1
- package/lib/cjs/tile/ImdlGraphicsCreator.js +32 -22
- package/lib/cjs/tile/ImdlGraphicsCreator.js.map +1 -1
- package/lib/esm/DisplayStyleState.d.ts.map +1 -1
- package/lib/esm/DisplayStyleState.js +5 -1
- package/lib/esm/DisplayStyleState.js.map +1 -1
- package/lib/esm/ElementLocateManager.d.ts +7 -1
- package/lib/esm/ElementLocateManager.d.ts.map +1 -1
- package/lib/esm/ElementLocateManager.js +34 -10
- package/lib/esm/ElementLocateManager.js.map +1 -1
- package/lib/esm/NoRenderApp.d.ts +1 -0
- package/lib/esm/NoRenderApp.d.ts.map +1 -1
- package/lib/esm/NoRenderApp.js +1 -0
- package/lib/esm/NoRenderApp.js.map +1 -1
- package/lib/esm/Viewport.d.ts +25 -1
- package/lib/esm/Viewport.d.ts.map +1 -1
- package/lib/esm/Viewport.js +20 -12
- package/lib/esm/Viewport.js.map +1 -1
- package/lib/esm/common/imdl/ImdlModel.d.ts +3 -8
- package/lib/esm/common/imdl/ImdlModel.d.ts.map +1 -1
- package/lib/esm/common/imdl/ImdlModel.js.map +1 -1
- package/lib/esm/common/internal/Symbols.d.ts +7 -0
- package/lib/esm/common/internal/Symbols.d.ts.map +1 -1
- package/lib/esm/common/internal/Symbols.js +7 -0
- package/lib/esm/common/internal/Symbols.js.map +1 -1
- package/lib/esm/common/internal/render/InstancedGraphicPropsBuilder.d.ts +15 -0
- package/lib/esm/common/internal/render/InstancedGraphicPropsBuilder.d.ts.map +1 -0
- package/lib/esm/common/internal/render/InstancedGraphicPropsBuilder.js +91 -0
- package/lib/esm/common/internal/render/InstancedGraphicPropsBuilder.js.map +1 -0
- package/lib/esm/common/internal/render/LineCode.d.ts +9 -0
- package/lib/esm/common/internal/render/LineCode.d.ts.map +1 -0
- package/lib/esm/common/internal/render/LineCode.js +27 -0
- package/lib/esm/common/internal/render/LineCode.js.map +1 -0
- package/lib/esm/common/internal/render/OvrFlags.d.ts +25 -0
- package/lib/esm/common/internal/render/OvrFlags.d.ts.map +1 -0
- package/lib/esm/common/internal/render/OvrFlags.js +9 -0
- package/lib/esm/common/internal/render/OvrFlags.js.map +1 -0
- package/lib/esm/common/render/InstancedGraphicParams.d.ts +25 -1
- package/lib/esm/common/render/InstancedGraphicParams.d.ts.map +1 -1
- package/lib/esm/common/render/InstancedGraphicParams.js +58 -1
- package/lib/esm/common/render/InstancedGraphicParams.js.map +1 -1
- package/lib/esm/common/render/RenderInstancesParams.d.ts +76 -0
- package/lib/esm/common/render/RenderInstancesParams.d.ts.map +1 -0
- package/lib/esm/common/render/RenderInstancesParams.js +30 -0
- package/lib/esm/common/render/RenderInstancesParams.js.map +1 -0
- package/lib/esm/common.d.ts +1 -0
- package/lib/esm/common.d.ts.map +1 -1
- package/lib/esm/common.js +1 -0
- package/lib/esm/common.js.map +1 -1
- package/lib/esm/core-frontend.d.ts +1 -0
- package/lib/esm/core-frontend.d.ts.map +1 -1
- package/lib/esm/core-frontend.js +1 -0
- package/lib/esm/core-frontend.js.map +1 -1
- package/lib/esm/internal/render/PrimitiveBuilder.d.ts +4 -1
- package/lib/esm/internal/render/PrimitiveBuilder.d.ts.map +1 -1
- package/lib/esm/internal/render/PrimitiveBuilder.js +82 -35
- package/lib/esm/internal/render/PrimitiveBuilder.js.map +1 -1
- package/lib/esm/internal/render/RenderGeometry.d.ts +20 -0
- package/lib/esm/internal/render/RenderGeometry.d.ts.map +1 -0
- package/lib/esm/internal/render/RenderGeometry.js +9 -0
- package/lib/esm/internal/render/RenderGeometry.js.map +1 -0
- package/lib/esm/internal/render/RenderInstancesParamsImpl.d.ts +24 -0
- package/lib/esm/internal/render/RenderInstancesParamsImpl.d.ts.map +1 -0
- package/lib/esm/internal/render/RenderInstancesParamsImpl.js +64 -0
- package/lib/esm/internal/render/RenderInstancesParamsImpl.js.map +1 -0
- package/lib/esm/render/GraphicBuilder.d.ts +17 -3
- package/lib/esm/render/GraphicBuilder.d.ts.map +1 -1
- package/lib/esm/render/GraphicBuilder.js +7 -1
- package/lib/esm/render/GraphicBuilder.js.map +1 -1
- package/lib/esm/render/GraphicTemplate.d.ts +76 -0
- package/lib/esm/render/GraphicTemplate.d.ts.map +1 -0
- package/lib/esm/render/GraphicTemplate.js +37 -0
- package/lib/esm/render/GraphicTemplate.js.map +1 -0
- package/lib/esm/render/MockRender.d.ts +12 -2
- package/lib/esm/render/MockRender.d.ts.map +1 -1
- package/lib/esm/render/MockRender.js +19 -5
- package/lib/esm/render/MockRender.js.map +1 -1
- package/lib/esm/render/RenderSystem.d.ts +58 -10
- package/lib/esm/render/RenderSystem.d.ts.map +1 -1
- package/lib/esm/render/RenderSystem.js +44 -6
- package/lib/esm/render/RenderSystem.js.map +1 -1
- package/lib/esm/render/RenderTarget.d.ts +1 -1
- package/lib/esm/render/RenderTarget.d.ts.map +1 -1
- package/lib/esm/render/RenderTarget.js.map +1 -1
- package/lib/esm/render/webgl/BatchUniforms.js.map +1 -1
- package/lib/esm/render/webgl/EdgeSettings.d.ts +2 -1
- package/lib/esm/render/webgl/EdgeSettings.d.ts.map +1 -1
- package/lib/esm/render/webgl/EdgeSettings.js.map +1 -1
- package/lib/esm/render/webgl/FeatureOverrides.d.ts +1 -0
- package/lib/esm/render/webgl/FeatureOverrides.d.ts.map +1 -1
- package/lib/esm/render/webgl/FeatureOverrides.js +37 -20
- package/lib/esm/render/webgl/FeatureOverrides.js.map +1 -1
- package/lib/esm/render/webgl/InstancedGeometry.d.ts +40 -10
- package/lib/esm/render/webgl/InstancedGeometry.d.ts.map +1 -1
- package/lib/esm/render/webgl/InstancedGeometry.js +97 -30
- package/lib/esm/render/webgl/InstancedGeometry.js.map +1 -1
- package/lib/esm/render/webgl/LineCode.d.ts.map +1 -1
- package/lib/esm/render/webgl/LineCode.js +2 -14
- package/lib/esm/render/webgl/LineCode.js.map +1 -1
- package/lib/esm/render/webgl/Mesh.d.ts +9 -4
- package/lib/esm/render/webgl/Mesh.d.ts.map +1 -1
- package/lib/esm/render/webgl/Mesh.js +19 -17
- package/lib/esm/render/webgl/Mesh.js.map +1 -1
- package/lib/esm/render/webgl/PointCloud.d.ts +5 -1
- package/lib/esm/render/webgl/PointCloud.d.ts.map +1 -1
- package/lib/esm/render/webgl/PointCloud.js +7 -2
- package/lib/esm/render/webgl/PointCloud.js.map +1 -1
- package/lib/esm/render/webgl/PointString.d.ts +5 -1
- package/lib/esm/render/webgl/PointString.d.ts.map +1 -1
- package/lib/esm/render/webgl/PointString.js +8 -3
- package/lib/esm/render/webgl/PointString.js.map +1 -1
- package/lib/esm/render/webgl/Polyline.d.ts +5 -1
- package/lib/esm/render/webgl/Polyline.d.ts.map +1 -1
- package/lib/esm/render/webgl/Polyline.js +7 -2
- package/lib/esm/render/webgl/Polyline.js.map +1 -1
- package/lib/esm/render/webgl/Primitive.d.ts +1 -3
- package/lib/esm/render/webgl/Primitive.d.ts.map +1 -1
- package/lib/esm/render/webgl/Primitive.js +2 -7
- package/lib/esm/render/webgl/Primitive.js.map +1 -1
- package/lib/esm/render/webgl/RealityMesh.d.ts +5 -1
- package/lib/esm/render/webgl/RealityMesh.d.ts.map +1 -1
- package/lib/esm/render/webgl/RealityMesh.js +6 -0
- package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
- package/lib/esm/render/webgl/RenderFlags.d.ts +0 -18
- package/lib/esm/render/webgl/RenderFlags.d.ts.map +1 -1
- package/lib/esm/render/webgl/RenderFlags.js.map +1 -1
- package/lib/esm/render/webgl/System.d.ts +11 -5
- package/lib/esm/render/webgl/System.d.ts.map +1 -1
- package/lib/esm/render/webgl/System.js +82 -14
- package/lib/esm/render/webgl/System.js.map +1 -1
- package/lib/esm/render/webgl/Target.d.ts +6 -2
- package/lib/esm/render/webgl/Target.d.ts.map +1 -1
- package/lib/esm/render/webgl/Target.js +23 -1
- package/lib/esm/render/webgl/Target.js.map +1 -1
- package/lib/esm/render/webgl/Texture.d.ts +2 -1
- package/lib/esm/render/webgl/Texture.d.ts.map +1 -1
- package/lib/esm/render/webgl/Texture.js.map +1 -1
- package/lib/esm/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/FeatureSymbology.js +6 -0
- package/lib/esm/render/webgl/glsl/FeatureSymbology.js.map +1 -1
- package/lib/esm/tile/GltfReader.d.ts +27 -7
- package/lib/esm/tile/GltfReader.d.ts.map +1 -1
- package/lib/esm/tile/GltfReader.js +82 -67
- package/lib/esm/tile/GltfReader.js.map +1 -1
- package/lib/esm/tile/ImdlGraphicsCreator.d.ts +4 -1
- package/lib/esm/tile/ImdlGraphicsCreator.d.ts.map +1 -1
- package/lib/esm/tile/ImdlGraphicsCreator.js +31 -22
- package/lib/esm/tile/ImdlGraphicsCreator.js.map +1 -1
- package/lib/public/scripts/parse-imdl-worker.js +1 -1
- package/lib/workers/webpack/parse-imdl-worker.js +1 -1
- package/package.json +18 -18
|
@@ -2,12 +2,13 @@
|
|
|
2
2
|
* @module Tiles
|
|
3
3
|
*/
|
|
4
4
|
import { UintArray } from "@itwin/core-bentley";
|
|
5
|
-
import {
|
|
5
|
+
import { XYAndZ } from "@itwin/core-geometry";
|
|
6
6
|
import { ColorDefProps, FeatureIndexType, FillFlags, Gradient, LinePixels, PolylineTypeFlags, QParams2dProps, QParams3dProps } from "@itwin/core-common";
|
|
7
7
|
import { EdgeTable } from "../internal/render/EdgeParams";
|
|
8
8
|
import { SurfaceMaterialAtlas, SurfaceType } from "../internal/render/SurfaceParams";
|
|
9
9
|
import { AuxChannelTableProps } from "../internal/render/AuxChannelTable";
|
|
10
10
|
import { ImdlAreaPattern, ImdlDocument } from "./ImdlSchema";
|
|
11
|
+
import { InstancedGraphicProps } from "../render/InstancedGraphicParams";
|
|
11
12
|
/** Types comprising the parsed representation of an ImdlDocument, produced by [[parseImdlDocument]] and consumed by [[decodeImdlGraphics]].
|
|
12
13
|
* All of the types are required to support [structured cloning](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm) so that they
|
|
13
14
|
* can be passed between workers and the main JavaScript thread.
|
|
@@ -100,14 +101,8 @@ export declare namespace ImdlModel {
|
|
|
100
101
|
isPlanar: boolean;
|
|
101
102
|
auxChannels?: AuxChannelTableProps;
|
|
102
103
|
}
|
|
103
|
-
interface Instances {
|
|
104
|
+
interface Instances extends InstancedGraphicProps {
|
|
104
105
|
type: "instances";
|
|
105
|
-
count: number;
|
|
106
|
-
transforms: Float32Array;
|
|
107
|
-
transformCenter: XYAndZ;
|
|
108
|
-
featureIds?: Uint8Array;
|
|
109
|
-
symbologyOverrides?: Uint8Array;
|
|
110
|
-
range?: LowAndHighXYZ;
|
|
111
106
|
}
|
|
112
107
|
interface ViewIndependentOrigin {
|
|
113
108
|
type: "viewIndependentOrigin";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImdlModel.d.ts","sourceRoot":"","sources":["../../../../src/common/imdl/ImdlModel.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ImdlModel.d.ts","sourceRoot":"","sources":["../../../../src/common/imdl/ImdlModel.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImdlModel.js","sourceRoot":"","sources":["../../../../src/common/imdl/ImdlModel.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 Tiles\r\n */\r\n\r\nimport { UintArray } from \"@itwin/core-bentley\";\r\nimport { LowAndHighXYZ, XYAndZ } from \"@itwin/core-geometry\";\r\nimport {\r\n ColorDefProps, FeatureIndexType, FillFlags, Gradient, LinePixels, PolylineTypeFlags, QParams2dProps, QParams3dProps,\r\n} from \"@itwin/core-common\";\r\nimport { EdgeTable } from \"../internal/render/EdgeParams\";\r\nimport { SurfaceMaterialAtlas, SurfaceType } from \"../internal/render/SurfaceParams\";\r\nimport { AuxChannelTableProps } from \"../internal/render/AuxChannelTable\";\r\nimport { ImdlAreaPattern, ImdlDocument } from \"./ImdlSchema\";\r\n\r\n/** Types comprising the parsed representation of an ImdlDocument, produced by [[parseImdlDocument]] and consumed by [[decodeImdlGraphics]].\r\n * All of the types are required to support [structured cloning](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm) so that they\r\n * can be passed between workers and the main JavaScript thread.\r\n * @internal\r\n */\r\nexport namespace ImdlModel {\r\n export interface VertexTable {\r\n data: Uint8Array;\r\n usesUnquantizedPositions?: boolean;\r\n qparams: QParams3dProps;\r\n width: number;\r\n height: number;\r\n hasTranslucency: boolean;\r\n uniformColor?: ColorDefProps;\r\n featureIndexType: FeatureIndexType;\r\n uniformFeatureID?: number;\r\n numVertices: number;\r\n numRgbaPerVertex: number;\r\n uvParams?: QParams2dProps;\r\n }\r\n\r\n export interface PointStringParams {\r\n vertices: VertexTable;\r\n indices: Uint8Array;\r\n weight: number;\r\n }\r\n\r\n export interface TesselatedPolyline {\r\n indices: Uint8Array;\r\n prevIndices: Uint8Array;\r\n nextIndicesAndParams: Uint8Array;\r\n }\r\n\r\n export interface PolylineParams {\r\n vertices: VertexTable;\r\n polyline: TesselatedPolyline;\r\n isPlanar: boolean;\r\n type: PolylineTypeFlags;\r\n weight: number;\r\n linePixels: LinePixels;\r\n }\r\n\r\n export interface SegmentEdgeParams {\r\n indices: Uint8Array;\r\n endPointAndQuadIndices: Uint8Array;\r\n }\r\n\r\n export interface SilhouetteParams extends SegmentEdgeParams {\r\n normalPairs: Uint8Array;\r\n }\r\n\r\n export interface IndexedEdgeParams {\r\n indices: Uint8Array;\r\n edges: EdgeTable;\r\n }\r\n\r\n export interface EdgeParams {\r\n weight: number;\r\n linePixels: LinePixels;\r\n segments?: SegmentEdgeParams;\r\n silhouettes?: SilhouetteParams;\r\n polylines?: TesselatedPolyline;\r\n indexed?: IndexedEdgeParams;\r\n }\r\n\r\n export interface SurfaceMaterialParams {\r\n alpha?: number;\r\n diffuse?: {\r\n color?: ColorDefProps;\r\n weight?: number;\r\n };\r\n specular?: {\r\n color?: ColorDefProps;\r\n weight?: number;\r\n exponent?: number;\r\n };\r\n }\r\n\r\n export interface SurfaceRenderMaterial {\r\n isAtlas: false;\r\n material: string | SurfaceMaterialParams;\r\n }\r\n\r\n export type SurfaceMaterial = SurfaceRenderMaterial | SurfaceMaterialAtlas;\r\n\r\n export interface SurfaceParams {\r\n type: SurfaceType;\r\n indices: Uint8Array;\r\n fillFlags: FillFlags;\r\n hasBakedLighting: boolean;\r\n material?: SurfaceMaterial;\r\n textureMapping?: {\r\n texture: string | Gradient.SymbProps;\r\n alwaysDisplayed: boolean;\r\n };\r\n }\r\n\r\n export interface MeshParams {\r\n vertices: VertexTable;\r\n surface: SurfaceParams;\r\n edges?: EdgeParams;\r\n isPlanar: boolean;\r\n auxChannels?: AuxChannelTableProps;\r\n }\r\n\r\n export interface Instances {\r\n type: \"instances\";\r\n count: number;\r\n transforms: Float32Array;\r\n transformCenter: XYAndZ;\r\n featureIds?: Uint8Array;\r\n symbologyOverrides?: Uint8Array;\r\n range?: LowAndHighXYZ;\r\n }\r\n\r\n export interface ViewIndependentOrigin {\r\n type: \"viewIndependentOrigin\";\r\n origin: XYAndZ;\r\n }\r\n\r\n export type PrimitiveModifier = Instances | ViewIndependentOrigin;\r\n\r\n export type Primitive = {\r\n params: MeshParams;\r\n modifier?: PrimitiveModifier;\r\n type: \"mesh\";\r\n } | {\r\n params: PointStringParams;\r\n modifier?: PrimitiveModifier;\r\n type: \"point\";\r\n } | {\r\n params: PolylineParams;\r\n modifier?: PrimitiveModifier;\r\n type: \"polyline\";\r\n };\r\n\r\n export type AreaPatternParams = Omit<ImdlAreaPattern, \"xyOffsets\"> & {\r\n xyOffsets: Float32Array;\r\n };\r\n\r\n export type NodePrimitive = Primitive | {\r\n params: AreaPatternParams;\r\n modifier?: never;\r\n type: \"pattern\";\r\n };\r\n\r\n export interface BasicNode {\r\n primitives: NodePrimitive[];\r\n animationNodeId?: never;\r\n animationId?: never;\r\n layerId?: never;\r\n groupId?: never;\r\n }\r\n\r\n export interface AnimationNode {\r\n primitives: NodePrimitive[];\r\n animationNodeId: number;\r\n animationId?: string;\r\n layerId?: never;\r\n groupId?: never;\r\n }\r\n\r\n export interface Layer {\r\n primitives: NodePrimitive[];\r\n layerId: string;\r\n groupId?: never;\r\n animationNodeId?: never;\r\n animationId?: never;\r\n }\r\n\r\n /** Nodes that contain primitives. */\r\n export type PrimitivesNode = BasicNode | AnimationNode | Layer;\r\n\r\n /** A grouping node that contains other nodes. These don't nest. */\r\n export interface GroupNode {\r\n groupId: number;\r\n nodes: PrimitivesNode[];\r\n primitives?: never;\r\n animationNodeId?: never;\r\n animationId?: never;\r\n layerId?: never;\r\n }\r\n\r\n export type Node = PrimitivesNode | GroupNode;\r\n\r\n export interface SingleModelFeatureTable {\r\n multiModel: false;\r\n data: Uint32Array;\r\n numFeatures: number;\r\n animationNodeIds?: UintArray;\r\n numSubCategories?: never;\r\n }\r\n\r\n export interface MultiModelFeatureTable {\r\n multiModel: true;\r\n data: Uint32Array;\r\n numFeatures: number;\r\n numSubCategories: number;\r\n animationNodeIds?: UintArray;\r\n }\r\n\r\n export type FeatureTable = SingleModelFeatureTable | MultiModelFeatureTable;\r\n\r\n export interface Document {\r\n featureTable: FeatureTable;\r\n nodes: Node[];\r\n patterns: Map<string, Primitive[]>;\r\n rtcCenter?: XYAndZ;\r\n binaryData: Uint8Array;\r\n json: ImdlDocument;\r\n }\r\n}\r\n\r\nfunction addTransferable(xfers: Set<Transferable>, array: UintArray | Float32Array | undefined): void {\r\n if (array) {\r\n xfers.add(array.buffer);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport function addPrimitiveTransferables(xfers: Set<Transferable>, primitive: ImdlModel.NodePrimitive): void {\r\n if (primitive.type === \"pattern\") {\r\n addTransferable(xfers, primitive.params.xyOffsets);\r\n return;\r\n }\r\n\r\n addTransferable(xfers, primitive.params.vertices.data);\r\n\r\n if (primitive.modifier?.type === \"instances\") {\r\n addTransferable(xfers, primitive.modifier.transforms);\r\n addTransferable(xfers, primitive.modifier.featureIds);\r\n addTransferable(xfers, primitive.modifier.symbologyOverrides);\r\n }\r\n\r\n switch (primitive.type) {\r\n case \"point\":\r\n addTransferable(xfers, primitive.params.indices);\r\n break;\r\n case \"polyline\":\r\n addTransferable(xfers, primitive.params.polyline.indices);\r\n addTransferable(xfers, primitive.params.polyline.prevIndices);\r\n addTransferable(xfers, primitive.params.polyline.nextIndicesAndParams);\r\n break;\r\n case \"mesh\":\r\n addTransferable(xfers, primitive.params.surface.indices);\r\n const edges = primitive.params.edges;\r\n if (edges) {\r\n addTransferable(xfers, edges.segments?.indices);\r\n addTransferable(xfers, edges.segments?.endPointAndQuadIndices);\r\n addTransferable(xfers, edges.silhouettes?.indices);\r\n addTransferable(xfers, edges.silhouettes?.endPointAndQuadIndices);\r\n addTransferable(xfers, edges.silhouettes?.normalPairs);\r\n addTransferable(xfers, edges.polylines?.indices);\r\n addTransferable(xfers, edges.polylines?.prevIndices);\r\n addTransferable(xfers, edges.polylines?.nextIndicesAndParams);\r\n addTransferable(xfers, edges.indexed?.indices);\r\n addTransferable(xfers, edges.indexed?.edges.data);\r\n }\r\n\r\n break;\r\n }\r\n}\r\n\r\n/** Collect an array of all the [transferable objects](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Transferable_objects)\r\n * within the specified document.\r\n * @internal\r\n */\r\nexport function collectTransferables(document: ImdlModel.Document): Transferable[] {\r\n const xfers = new Set<Transferable>();\r\n const add = (array: UintArray | Float32Array | undefined) => {\r\n if (array)\r\n xfers.add(array.buffer);\r\n };\r\n\r\n add(document.binaryData);\r\n add(document.featureTable.data);\r\n add(document.featureTable.animationNodeIds);\r\n\r\n for (const node of document.nodes) {\r\n if (undefined !== node.groupId) {\r\n for (const primNode of node.nodes)\r\n for (const primitive of primNode.primitives)\r\n addPrimitiveTransferables(xfers, primitive);\r\n } else {\r\n for (const primitive of node.primitives)\r\n addPrimitiveTransferables(xfers, primitive);\r\n }\r\n }\r\n\r\n for (const primitives of document.patterns.values())\r\n for (const primitive of primitives)\r\n addPrimitiveTransferables(xfers, primitive);\r\n\r\n return Array.from(xfers);\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"ImdlModel.js","sourceRoot":"","sources":["../../../../src/common/imdl/ImdlModel.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 Tiles\r\n */\r\n\r\nimport { UintArray } from \"@itwin/core-bentley\";\r\nimport { XYAndZ } from \"@itwin/core-geometry\";\r\nimport {\r\n ColorDefProps, FeatureIndexType, FillFlags, Gradient, LinePixels, PolylineTypeFlags, QParams2dProps, QParams3dProps,\r\n} from \"@itwin/core-common\";\r\nimport { EdgeTable } from \"../internal/render/EdgeParams\";\r\nimport { SurfaceMaterialAtlas, SurfaceType } from \"../internal/render/SurfaceParams\";\r\nimport { AuxChannelTableProps } from \"../internal/render/AuxChannelTable\";\r\nimport { ImdlAreaPattern, ImdlDocument } from \"./ImdlSchema\";\r\nimport { InstancedGraphicProps } from \"../render/InstancedGraphicParams\";\r\n\r\n/** Types comprising the parsed representation of an ImdlDocument, produced by [[parseImdlDocument]] and consumed by [[decodeImdlGraphics]].\r\n * All of the types are required to support [structured cloning](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm) so that they\r\n * can be passed between workers and the main JavaScript thread.\r\n * @internal\r\n */\r\nexport namespace ImdlModel {\r\n export interface VertexTable {\r\n data: Uint8Array;\r\n usesUnquantizedPositions?: boolean;\r\n qparams: QParams3dProps;\r\n width: number;\r\n height: number;\r\n hasTranslucency: boolean;\r\n uniformColor?: ColorDefProps;\r\n featureIndexType: FeatureIndexType;\r\n uniformFeatureID?: number;\r\n numVertices: number;\r\n numRgbaPerVertex: number;\r\n uvParams?: QParams2dProps;\r\n }\r\n\r\n export interface PointStringParams {\r\n vertices: VertexTable;\r\n indices: Uint8Array;\r\n weight: number;\r\n }\r\n\r\n export interface TesselatedPolyline {\r\n indices: Uint8Array;\r\n prevIndices: Uint8Array;\r\n nextIndicesAndParams: Uint8Array;\r\n }\r\n\r\n export interface PolylineParams {\r\n vertices: VertexTable;\r\n polyline: TesselatedPolyline;\r\n isPlanar: boolean;\r\n type: PolylineTypeFlags;\r\n weight: number;\r\n linePixels: LinePixels;\r\n }\r\n\r\n export interface SegmentEdgeParams {\r\n indices: Uint8Array;\r\n endPointAndQuadIndices: Uint8Array;\r\n }\r\n\r\n export interface SilhouetteParams extends SegmentEdgeParams {\r\n normalPairs: Uint8Array;\r\n }\r\n\r\n export interface IndexedEdgeParams {\r\n indices: Uint8Array;\r\n edges: EdgeTable;\r\n }\r\n\r\n export interface EdgeParams {\r\n weight: number;\r\n linePixels: LinePixels;\r\n segments?: SegmentEdgeParams;\r\n silhouettes?: SilhouetteParams;\r\n polylines?: TesselatedPolyline;\r\n indexed?: IndexedEdgeParams;\r\n }\r\n\r\n export interface SurfaceMaterialParams {\r\n alpha?: number;\r\n diffuse?: {\r\n color?: ColorDefProps;\r\n weight?: number;\r\n };\r\n specular?: {\r\n color?: ColorDefProps;\r\n weight?: number;\r\n exponent?: number;\r\n };\r\n }\r\n\r\n export interface SurfaceRenderMaterial {\r\n isAtlas: false;\r\n material: string | SurfaceMaterialParams;\r\n }\r\n\r\n export type SurfaceMaterial = SurfaceRenderMaterial | SurfaceMaterialAtlas;\r\n\r\n export interface SurfaceParams {\r\n type: SurfaceType;\r\n indices: Uint8Array;\r\n fillFlags: FillFlags;\r\n hasBakedLighting: boolean;\r\n material?: SurfaceMaterial;\r\n textureMapping?: {\r\n texture: string | Gradient.SymbProps;\r\n alwaysDisplayed: boolean;\r\n };\r\n }\r\n\r\n export interface MeshParams {\r\n vertices: VertexTable;\r\n surface: SurfaceParams;\r\n edges?: EdgeParams;\r\n isPlanar: boolean;\r\n auxChannels?: AuxChannelTableProps;\r\n }\r\n\r\n export interface Instances extends InstancedGraphicProps {\r\n type: \"instances\";\r\n }\r\n\r\n export interface ViewIndependentOrigin {\r\n type: \"viewIndependentOrigin\";\r\n origin: XYAndZ;\r\n }\r\n\r\n export type PrimitiveModifier = Instances | ViewIndependentOrigin;\r\n\r\n export type Primitive = {\r\n params: MeshParams;\r\n modifier?: PrimitiveModifier;\r\n type: \"mesh\";\r\n } | {\r\n params: PointStringParams;\r\n modifier?: PrimitiveModifier;\r\n type: \"point\";\r\n } | {\r\n params: PolylineParams;\r\n modifier?: PrimitiveModifier;\r\n type: \"polyline\";\r\n };\r\n\r\n export type AreaPatternParams = Omit<ImdlAreaPattern, \"xyOffsets\"> & {\r\n xyOffsets: Float32Array;\r\n };\r\n\r\n export type NodePrimitive = Primitive | {\r\n params: AreaPatternParams;\r\n modifier?: never;\r\n type: \"pattern\";\r\n };\r\n\r\n export interface BasicNode {\r\n primitives: NodePrimitive[];\r\n animationNodeId?: never;\r\n animationId?: never;\r\n layerId?: never;\r\n groupId?: never;\r\n }\r\n\r\n export interface AnimationNode {\r\n primitives: NodePrimitive[];\r\n animationNodeId: number;\r\n animationId?: string;\r\n layerId?: never;\r\n groupId?: never;\r\n }\r\n\r\n export interface Layer {\r\n primitives: NodePrimitive[];\r\n layerId: string;\r\n groupId?: never;\r\n animationNodeId?: never;\r\n animationId?: never;\r\n }\r\n\r\n /** Nodes that contain primitives. */\r\n export type PrimitivesNode = BasicNode | AnimationNode | Layer;\r\n\r\n /** A grouping node that contains other nodes. These don't nest. */\r\n export interface GroupNode {\r\n groupId: number;\r\n nodes: PrimitivesNode[];\r\n primitives?: never;\r\n animationNodeId?: never;\r\n animationId?: never;\r\n layerId?: never;\r\n }\r\n\r\n export type Node = PrimitivesNode | GroupNode;\r\n\r\n export interface SingleModelFeatureTable {\r\n multiModel: false;\r\n data: Uint32Array;\r\n numFeatures: number;\r\n animationNodeIds?: UintArray;\r\n numSubCategories?: never;\r\n }\r\n\r\n export interface MultiModelFeatureTable {\r\n multiModel: true;\r\n data: Uint32Array;\r\n numFeatures: number;\r\n numSubCategories: number;\r\n animationNodeIds?: UintArray;\r\n }\r\n\r\n export type FeatureTable = SingleModelFeatureTable | MultiModelFeatureTable;\r\n\r\n export interface Document {\r\n featureTable: FeatureTable;\r\n nodes: Node[];\r\n patterns: Map<string, Primitive[]>;\r\n rtcCenter?: XYAndZ;\r\n binaryData: Uint8Array;\r\n json: ImdlDocument;\r\n }\r\n}\r\n\r\nfunction addTransferable(xfers: Set<Transferable>, array: UintArray | Float32Array | undefined): void {\r\n if (array) {\r\n xfers.add(array.buffer);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport function addPrimitiveTransferables(xfers: Set<Transferable>, primitive: ImdlModel.NodePrimitive): void {\r\n if (primitive.type === \"pattern\") {\r\n addTransferable(xfers, primitive.params.xyOffsets);\r\n return;\r\n }\r\n\r\n addTransferable(xfers, primitive.params.vertices.data);\r\n\r\n if (primitive.modifier?.type === \"instances\") {\r\n addTransferable(xfers, primitive.modifier.transforms);\r\n addTransferable(xfers, primitive.modifier.featureIds);\r\n addTransferable(xfers, primitive.modifier.symbologyOverrides);\r\n }\r\n\r\n switch (primitive.type) {\r\n case \"point\":\r\n addTransferable(xfers, primitive.params.indices);\r\n break;\r\n case \"polyline\":\r\n addTransferable(xfers, primitive.params.polyline.indices);\r\n addTransferable(xfers, primitive.params.polyline.prevIndices);\r\n addTransferable(xfers, primitive.params.polyline.nextIndicesAndParams);\r\n break;\r\n case \"mesh\":\r\n addTransferable(xfers, primitive.params.surface.indices);\r\n const edges = primitive.params.edges;\r\n if (edges) {\r\n addTransferable(xfers, edges.segments?.indices);\r\n addTransferable(xfers, edges.segments?.endPointAndQuadIndices);\r\n addTransferable(xfers, edges.silhouettes?.indices);\r\n addTransferable(xfers, edges.silhouettes?.endPointAndQuadIndices);\r\n addTransferable(xfers, edges.silhouettes?.normalPairs);\r\n addTransferable(xfers, edges.polylines?.indices);\r\n addTransferable(xfers, edges.polylines?.prevIndices);\r\n addTransferable(xfers, edges.polylines?.nextIndicesAndParams);\r\n addTransferable(xfers, edges.indexed?.indices);\r\n addTransferable(xfers, edges.indexed?.edges.data);\r\n }\r\n\r\n break;\r\n }\r\n}\r\n\r\n/** Collect an array of all the [transferable objects](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Transferable_objects)\r\n * within the specified document.\r\n * @internal\r\n */\r\nexport function collectTransferables(document: ImdlModel.Document): Transferable[] {\r\n const xfers = new Set<Transferable>();\r\n const add = (array: UintArray | Float32Array | undefined) => {\r\n if (array)\r\n xfers.add(array.buffer);\r\n };\r\n\r\n add(document.binaryData);\r\n add(document.featureTable.data);\r\n add(document.featureTable.animationNodeIds);\r\n\r\n for (const node of document.nodes) {\r\n if (undefined !== node.groupId) {\r\n for (const primNode of node.nodes)\r\n for (const primitive of primNode.primitives)\r\n addPrimitiveTransferables(xfers, primitive);\r\n } else {\r\n for (const primitive of node.primitives)\r\n addPrimitiveTransferables(xfers, primitive);\r\n }\r\n }\r\n\r\n for (const primitives of document.patterns.values())\r\n for (const primitive of primitives)\r\n addPrimitiveTransferables(xfers, primitive);\r\n\r\n return Array.from(xfers);\r\n}\r\n"]}
|
|
@@ -3,8 +3,15 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export declare const _implementationProhibited: unique symbol;
|
|
5
5
|
export declare const _accumulator: unique symbol;
|
|
6
|
+
export declare const _batch: unique symbol;
|
|
7
|
+
export declare const _branch: unique symbol;
|
|
6
8
|
/** @internal */
|
|
7
9
|
export declare const _callIpcChannel: unique symbol;
|
|
10
|
+
export declare const _featureTable: unique symbol;
|
|
11
|
+
export declare const _nodes: unique symbol;
|
|
8
12
|
export declare const _requestSnap: unique symbol;
|
|
13
|
+
export declare const _renderSystem: unique symbol;
|
|
9
14
|
export declare const _textures: unique symbol;
|
|
15
|
+
export declare const _transformCenter: unique symbol;
|
|
16
|
+
export declare const _transforms: unique symbol;
|
|
10
17
|
//# sourceMappingURL=Symbols.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Symbols.d.ts","sourceRoot":"","sources":["../../../../src/common/internal/Symbols.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,eAAO,MAAM,yBAAyB,eAAmG,CAAC;AAM1I,eAAO,MAAM,YAAY,eAAiC,CAAC;AAC3D,gBAAgB;AAChB,eAAO,MAAM,eAAe,eAAoC,CAAC;AACjE,eAAO,MAAM,YAAY,eAAiC,CAAC;AAC3D,eAAO,MAAM,SAAS,eAA8B,CAAC"}
|
|
1
|
+
{"version":3,"file":"Symbols.d.ts","sourceRoot":"","sources":["../../../../src/common/internal/Symbols.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,eAAO,MAAM,yBAAyB,eAAmG,CAAC;AAM1I,eAAO,MAAM,YAAY,eAAiC,CAAC;AAC3D,eAAO,MAAM,MAAM,eAA2B,CAAC;AAC/C,eAAO,MAAM,OAAO,eAA4B,CAAC;AACjD,gBAAgB;AAChB,eAAO,MAAM,eAAe,eAAoC,CAAC;AACjE,eAAO,MAAM,aAAa,eAAkC,CAAC;AAC7D,eAAO,MAAM,MAAM,eAA2B,CAAC;AAC/C,eAAO,MAAM,YAAY,eAAiC,CAAC;AAC3D,eAAO,MAAM,aAAa,eAAkC,CAAC;AAC7D,eAAO,MAAM,SAAS,eAA8B,CAAC;AACrD,eAAO,MAAM,gBAAgB,eAAqC,CAAC;AACnE,eAAO,MAAM,WAAW,eAAgC,CAAC"}
|
|
@@ -7,14 +7,21 @@
|
|
|
7
7
|
* @module Utils
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports._textures = exports._requestSnap = exports._callIpcChannel = exports._accumulator = exports._implementationProhibited = void 0;
|
|
10
|
+
exports._transforms = exports._transformCenter = exports._textures = exports._renderSystem = exports._requestSnap = exports._nodes = exports._featureTable = exports._callIpcChannel = exports._branch = exports._batch = exports._accumulator = exports._implementationProhibited = void 0;
|
|
11
11
|
exports._implementationProhibited = Symbol.for("Implementations of this interface can only be obtained from the containing package");
|
|
12
12
|
function sym(name) {
|
|
13
13
|
return `${name}_core-frontend_INTERNAL_ONLY_DO_NOT_USE`;
|
|
14
14
|
}
|
|
15
15
|
exports._accumulator = Symbol.for(sym("accumulator"));
|
|
16
|
+
exports._batch = Symbol.for(sym("batch"));
|
|
17
|
+
exports._branch = Symbol.for(sym("branch"));
|
|
16
18
|
/** @internal */
|
|
17
19
|
exports._callIpcChannel = Symbol.for(sym("callIpcChannel"));
|
|
20
|
+
exports._featureTable = Symbol.for(sym("featureTable"));
|
|
21
|
+
exports._nodes = Symbol.for(sym("nodes"));
|
|
18
22
|
exports._requestSnap = Symbol.for(sym("requestSnap"));
|
|
23
|
+
exports._renderSystem = Symbol.for(sym("renderSystem"));
|
|
19
24
|
exports._textures = Symbol.for(sym("textures"));
|
|
25
|
+
exports._transformCenter = Symbol.for(sym("transformCenter"));
|
|
26
|
+
exports._transforms = Symbol.for(sym("transforms"));
|
|
20
27
|
//# sourceMappingURL=Symbols.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Symbols.js","sourceRoot":"","sources":["../../../../src/common/internal/Symbols.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEU,QAAA,yBAAyB,GAAG,MAAM,CAAC,GAAG,CAAC,oFAAoF,CAAC,CAAC;AAE1I,SAAS,GAAG,CAAC,IAAY;IACvB,OAAO,GAAG,IAAI,yCAAyC,CAAC;AAC1D,CAAC;AAEY,QAAA,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"Symbols.js","sourceRoot":"","sources":["../../../../src/common/internal/Symbols.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEU,QAAA,yBAAyB,GAAG,MAAM,CAAC,GAAG,CAAC,oFAAoF,CAAC,CAAC;AAE1I,SAAS,GAAG,CAAC,IAAY;IACvB,OAAO,GAAG,IAAI,yCAAyC,CAAC;AAC1D,CAAC;AAEY,QAAA,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;AAC9C,QAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAClC,QAAA,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;AACjD,gBAAgB;AACH,QAAA,eAAe,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;AACpD,QAAA,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;AAChD,QAAA,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAClC,QAAA,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;AAC9C,QAAA,aAAa,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;AAChD,QAAA,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;AACxC,QAAA,gBAAgB,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC;AACtD,QAAA,WAAW,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,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 Utils\r\n */\r\n\r\nexport const _implementationProhibited = Symbol.for(\"Implementations of this interface can only be obtained from the containing package\");\r\n\r\nfunction sym(name: string): string {\r\n return `${name}_core-frontend_INTERNAL_ONLY_DO_NOT_USE`;\r\n}\r\n\r\nexport const _accumulator = Symbol.for(sym(\"accumulator\"));\r\nexport const _batch = Symbol.for(sym(\"batch\"));\r\nexport const _branch = Symbol.for(sym(\"branch\"));\r\n/** @internal */\r\nexport const _callIpcChannel = Symbol.for(sym(\"callIpcChannel\"));\r\nexport const _featureTable = Symbol.for(sym(\"featureTable\"));\r\nexport const _nodes = Symbol.for(sym(\"nodes\"));\r\nexport const _requestSnap = Symbol.for(sym(\"requestSnap\"));\r\nexport const _renderSystem = Symbol.for(sym(\"renderSystem\"));\r\nexport const _textures = Symbol.for(sym(\"textures\"));\r\nexport const _transformCenter = Symbol.for(sym(\"transformCenter\"));\r\nexport const _transforms = Symbol.for(sym(\"transforms\"));\r\n"]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Instance } from "../../render/RenderInstancesParams";
|
|
2
|
+
import { FeatureTable } from "@itwin/core-common";
|
|
3
|
+
import { InstancedGraphicProps } from "../../render/InstancedGraphicParams";
|
|
4
|
+
/** Used internally by [[RenderInstancesParamsBuilder]] to produce an InstancedGraphicProps.
|
|
5
|
+
* Use [[add]] to append [[Instance]]s, then [[finish]] to obtain an InstancedGraphicProps.
|
|
6
|
+
*/
|
|
7
|
+
export declare class InstancedGraphicPropsBuilder {
|
|
8
|
+
private readonly _instances;
|
|
9
|
+
private readonly _transformRange;
|
|
10
|
+
private _haveSymbology;
|
|
11
|
+
add(instance: Instance): void;
|
|
12
|
+
get length(): number;
|
|
13
|
+
finish(featureTable: FeatureTable | undefined): InstancedGraphicProps;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=InstancedGraphicPropsBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InstancedGraphicPropsBuilder.d.ts","sourceRoot":"","sources":["../../../../../src/common/internal/render/InstancedGraphicPropsBuilder.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAC9D,OAAO,EAAW,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAM5E;;GAEG;AACH,qBAAa,4BAA4B;IACvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,cAAc,CAAS;IAExB,GAAG,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAQpC,IAAW,MAAM,WAAqC;IAE/C,MAAM,CAAC,YAAY,EAAE,YAAY,GAAG,SAAS,GAAG,qBAAqB;CA6E7E"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*---------------------------------------------------------------------------------------------
|
|
3
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
|
+
*--------------------------------------------------------------------------------------------*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.InstancedGraphicPropsBuilder = void 0;
|
|
8
|
+
const core_geometry_1 = require("@itwin/core-geometry");
|
|
9
|
+
const core_common_1 = require("@itwin/core-common");
|
|
10
|
+
const LineCode_1 = require("./LineCode");
|
|
11
|
+
const invalidFeature = new core_common_1.Feature();
|
|
12
|
+
/** Used internally by [[RenderInstancesParamsBuilder]] to produce an InstancedGraphicProps.
|
|
13
|
+
* Use [[add]] to append [[Instance]]s, then [[finish]] to obtain an InstancedGraphicProps.
|
|
14
|
+
*/
|
|
15
|
+
class InstancedGraphicPropsBuilder {
|
|
16
|
+
constructor() {
|
|
17
|
+
this._instances = [];
|
|
18
|
+
this._transformRange = new core_geometry_1.Range3d();
|
|
19
|
+
this._haveSymbology = false;
|
|
20
|
+
}
|
|
21
|
+
add(instance) {
|
|
22
|
+
this._instances.push(instance);
|
|
23
|
+
this._transformRange.extendXYZ(instance.transform.origin.x, instance.transform.origin.y, instance.transform.origin.z);
|
|
24
|
+
if (instance.symbology) {
|
|
25
|
+
this._haveSymbology = true;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
get length() { return this._instances.length; }
|
|
29
|
+
finish(featureTable) {
|
|
30
|
+
const count = this.length;
|
|
31
|
+
if (0 === count) {
|
|
32
|
+
throw new Error("No instances defined");
|
|
33
|
+
}
|
|
34
|
+
const tfc = this._transformRange.center;
|
|
35
|
+
const transformCenter = { x: tfc.x, y: tfc.y, z: tfc.z };
|
|
36
|
+
const transforms = new Float32Array(count * 12);
|
|
37
|
+
const featureIds = featureTable ? new Uint8Array(count * 3) : undefined;
|
|
38
|
+
const symbologyOverrides = this._haveSymbology ? new Uint8Array(count * 8) : undefined;
|
|
39
|
+
for (let i = 0; i < count; i++) {
|
|
40
|
+
const instance = this._instances[i];
|
|
41
|
+
if (featureIds) {
|
|
42
|
+
const feature = typeof instance.feature === "string" ? new core_common_1.Feature(instance.feature) : instance.feature;
|
|
43
|
+
const featureIndex = featureTable.insert(feature ?? invalidFeature);
|
|
44
|
+
featureIds[i * 3 + 0] = featureIndex & 0xff;
|
|
45
|
+
featureIds[i * 3 + 1] = (featureIndex & 0xff00) >> 8;
|
|
46
|
+
featureIds[i * 3 + 2] = (featureIndex & 0xff0000) >> 16;
|
|
47
|
+
}
|
|
48
|
+
const symb = instance.symbology;
|
|
49
|
+
if (symbologyOverrides && symb) {
|
|
50
|
+
const ovrIdx = i * 8;
|
|
51
|
+
let flags = 0 /* OvrFlags.None */;
|
|
52
|
+
const weight = symb.weight;
|
|
53
|
+
if (undefined !== weight) {
|
|
54
|
+
symbologyOverrides[ovrIdx + 1] = Math.max(1, Math.min(31, weight));
|
|
55
|
+
flags |= 128 /* OvrFlags.Weight */;
|
|
56
|
+
}
|
|
57
|
+
if (undefined !== symb.linePixels) {
|
|
58
|
+
symbologyOverrides[ovrIdx + 2] = (0, LineCode_1.lineCodeFromLinePixels)(symb.linePixels);
|
|
59
|
+
flags |= 64 /* OvrFlags.LineCode */;
|
|
60
|
+
}
|
|
61
|
+
if (undefined !== symb.color) {
|
|
62
|
+
symbologyOverrides[ovrIdx + 4] = Math.max(0, Math.min(symb.color.r, 255));
|
|
63
|
+
symbologyOverrides[ovrIdx + 5] = Math.max(0, Math.min(symb.color.g, 255));
|
|
64
|
+
symbologyOverrides[ovrIdx + 6] = Math.max(0, Math.min(symb.color.b, 255));
|
|
65
|
+
flags |= 2 /* OvrFlags.Rgb */;
|
|
66
|
+
}
|
|
67
|
+
symbologyOverrides[ovrIdx] = flags;
|
|
68
|
+
}
|
|
69
|
+
const tf = instance.transform;
|
|
70
|
+
const org = [tf.origin.x - tfc.x, tf.origin.y - tfc.y, tf.origin.z - tfc.z];
|
|
71
|
+
const tfIdx = i * 12;
|
|
72
|
+
transforms[tfIdx + 0] = tf.matrix.coffs[0];
|
|
73
|
+
transforms[tfIdx + 1] = tf.matrix.coffs[1];
|
|
74
|
+
transforms[tfIdx + 2] = tf.matrix.coffs[2];
|
|
75
|
+
transforms[tfIdx + 3] = org[0];
|
|
76
|
+
transforms[tfIdx + 4] = tf.matrix.coffs[3];
|
|
77
|
+
transforms[tfIdx + 5] = tf.matrix.coffs[4];
|
|
78
|
+
transforms[tfIdx + 6] = tf.matrix.coffs[5];
|
|
79
|
+
transforms[tfIdx + 7] = org[1];
|
|
80
|
+
transforms[tfIdx + 8] = tf.matrix.coffs[6];
|
|
81
|
+
transforms[tfIdx + 9] = tf.matrix.coffs[7];
|
|
82
|
+
transforms[tfIdx + 10] = tf.matrix.coffs[8];
|
|
83
|
+
transforms[tfIdx + 11] = org[2];
|
|
84
|
+
}
|
|
85
|
+
return {
|
|
86
|
+
count,
|
|
87
|
+
transforms,
|
|
88
|
+
transformCenter,
|
|
89
|
+
featureIds,
|
|
90
|
+
symbologyOverrides,
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
exports.InstancedGraphicPropsBuilder = InstancedGraphicPropsBuilder;
|
|
95
|
+
//# sourceMappingURL=InstancedGraphicPropsBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InstancedGraphicPropsBuilder.js","sourceRoot":"","sources":["../../../../../src/common/internal/render/InstancedGraphicPropsBuilder.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\r\nimport { Range3d } from \"@itwin/core-geometry\";\r\nimport { Instance } from \"../../render/RenderInstancesParams\";\r\nimport { Feature, FeatureTable } from \"@itwin/core-common\";\r\nimport { InstancedGraphicProps } from \"../../render/InstancedGraphicParams\";\r\nimport { OvrFlags } from \"./OvrFlags\";\r\nimport { lineCodeFromLinePixels } from \"./LineCode\";\r\n\r\nconst invalidFeature = new Feature();\r\n\r\n/** Used internally by [[RenderInstancesParamsBuilder]] to produce an InstancedGraphicProps.\r\n * Use [[add]] to append [[Instance]]s, then [[finish]] to obtain an InstancedGraphicProps.\r\n */\r\nexport class InstancedGraphicPropsBuilder {\r\n private readonly _instances: Instance[] = [];\r\n private readonly _transformRange = new Range3d();\r\n private _haveSymbology = false;\r\n\r\n public add(instance: Instance): void {\r\n this._instances.push(instance);\r\n this._transformRange.extendXYZ(instance.transform.origin.x, instance.transform.origin.y, instance.transform.origin.z);\r\n if (instance.symbology) {\r\n this._haveSymbology = true;\r\n }\r\n }\r\n\r\n public get length() { return this._instances.length; }\r\n\r\n public finish(featureTable: FeatureTable | undefined): InstancedGraphicProps {\r\n const count = this.length;\r\n if (0 === count) {\r\n throw new Error(\"No instances defined\");\r\n }\r\n\r\n const tfc = this._transformRange.center;\r\n const transformCenter = { x: tfc.x, y: tfc.y, z: tfc.z };\r\n\r\n const transforms = new Float32Array(count * 12);\r\n const featureIds = featureTable ? new Uint8Array(count * 3) : undefined;\r\n const symbologyOverrides = this._haveSymbology ? new Uint8Array(count * 8) : undefined;\r\n\r\n for (let i = 0; i < count; i++) {\r\n const instance = this._instances[i];\r\n if (featureIds) {\r\n const feature = typeof instance.feature === \"string\" ? new Feature(instance.feature) : instance.feature;\r\n const featureIndex = featureTable!.insert(feature ?? invalidFeature);\r\n featureIds[i * 3 + 0] = featureIndex & 0xff;\r\n featureIds[i * 3 + 1] = (featureIndex & 0xff00) >> 8;\r\n featureIds[i * 3 + 2] = (featureIndex & 0xff0000) >> 16;\r\n }\r\n\r\n const symb = instance.symbology;\r\n if (symbologyOverrides && symb) {\r\n const ovrIdx = i * 8;\r\n let flags = OvrFlags.None;\r\n\r\n const weight = symb.weight;\r\n if (undefined !== weight) {\r\n symbologyOverrides[ovrIdx + 1] = Math.max(1, Math.min(31, weight));\r\n flags |= OvrFlags.Weight;\r\n }\r\n\r\n if (undefined !== symb.linePixels) {\r\n symbologyOverrides[ovrIdx + 2] = lineCodeFromLinePixels(symb.linePixels);\r\n flags |= OvrFlags.LineCode;\r\n }\r\n\r\n if (undefined !== symb.color) {\r\n symbologyOverrides[ovrIdx + 4] = Math.max(0, Math.min(symb.color.r, 255));\r\n symbologyOverrides[ovrIdx + 5] = Math.max(0, Math.min(symb.color.g, 255));\r\n symbologyOverrides[ovrIdx + 6] = Math.max(0, Math.min(symb.color.b, 255));\r\n flags |= OvrFlags.Rgb;\r\n }\r\n\r\n symbologyOverrides[ovrIdx] = flags;\r\n }\r\n\r\n const tf = instance.transform;\r\n const org = [tf.origin.x - tfc.x, tf.origin.y - tfc.y, tf.origin.z - tfc.z];\r\n const tfIdx = i * 12;\r\n\r\n transforms[tfIdx + 0] = tf.matrix.coffs[0];\r\n transforms[tfIdx + 1] = tf.matrix.coffs[1];\r\n transforms[tfIdx + 2] = tf.matrix.coffs[2];\r\n transforms[tfIdx + 3] = org[0];\r\n\r\n transforms[tfIdx + 4] = tf.matrix.coffs[3];\r\n transforms[tfIdx + 5] = tf.matrix.coffs[4];\r\n transforms[tfIdx + 6] = tf.matrix.coffs[5];\r\n transforms[tfIdx + 7] = org[1];\r\n\r\n transforms[tfIdx + 8] = tf.matrix.coffs[6];\r\n transforms[tfIdx + 9] = tf.matrix.coffs[7];\r\n transforms[tfIdx + 10] = tf.matrix.coffs[8];\r\n transforms[tfIdx + 11] = org[2];\r\n }\r\n\r\n return {\r\n count,\r\n transforms,\r\n transformCenter,\r\n featureIds,\r\n symbologyOverrides,\r\n };\r\n }\r\n}\r\n\r\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** @packageDocumentation
|
|
2
|
+
* @module WebGL
|
|
3
|
+
*/
|
|
4
|
+
import { LinePixels } from "@itwin/core-common";
|
|
5
|
+
/** Map a LinePixels value to an integer in [0..9] that can be used by shaders to index into the corresponding pixel pattern.
|
|
6
|
+
* This is used for feature overrides, including those defined by InstancedGraphicParams.
|
|
7
|
+
*/
|
|
8
|
+
export declare function lineCodeFromLinePixels(pixels: LinePixels): number;
|
|
9
|
+
//# sourceMappingURL=LineCode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LineCode.d.ts","sourceRoot":"","sources":["../../../../../src/common/internal/render/LineCode.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAcjE"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*---------------------------------------------------------------------------------------------
|
|
3
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
|
+
*--------------------------------------------------------------------------------------------*/
|
|
6
|
+
/** @packageDocumentation
|
|
7
|
+
* @module WebGL
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.lineCodeFromLinePixels = void 0;
|
|
11
|
+
const core_common_1 = require("@itwin/core-common");
|
|
12
|
+
/** Map a LinePixels value to an integer in [0..9] that can be used by shaders to index into the corresponding pixel pattern.
|
|
13
|
+
* This is used for feature overrides, including those defined by InstancedGraphicParams.
|
|
14
|
+
*/
|
|
15
|
+
function lineCodeFromLinePixels(pixels) {
|
|
16
|
+
switch (pixels) {
|
|
17
|
+
case core_common_1.LinePixels.Code0: return 0;
|
|
18
|
+
case core_common_1.LinePixels.Code1: return 1;
|
|
19
|
+
case core_common_1.LinePixels.Code2: return 2;
|
|
20
|
+
case core_common_1.LinePixels.Code3: return 3;
|
|
21
|
+
case core_common_1.LinePixels.Code4: return 4;
|
|
22
|
+
case core_common_1.LinePixels.Code5: return 5;
|
|
23
|
+
case core_common_1.LinePixels.Code6: return 6;
|
|
24
|
+
case core_common_1.LinePixels.Code7: return 7;
|
|
25
|
+
case core_common_1.LinePixels.HiddenLine: return 8;
|
|
26
|
+
case core_common_1.LinePixels.Invisible: return 9;
|
|
27
|
+
default: return 0;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.lineCodeFromLinePixels = lineCodeFromLinePixels;
|
|
31
|
+
//# sourceMappingURL=LineCode.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LineCode.js","sourceRoot":"","sources":["../../../../../src/common/internal/render/LineCode.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,oDAAgD;AAEhD;;GAEG;AACH,SAAgB,sBAAsB,CAAC,MAAkB;IACvD,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,wBAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;QAChC,KAAK,wBAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;QAChC,KAAK,wBAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;QAChC,KAAK,wBAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;QAChC,KAAK,wBAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;QAChC,KAAK,wBAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;QAChC,KAAK,wBAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;QAChC,KAAK,wBAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;QAChC,KAAK,wBAAU,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC;QACrC,KAAK,wBAAU,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC;QACpC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAdD,wDAcC","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 WebGL\r\n */\r\n\r\nimport { LinePixels } from \"@itwin/core-common\";\r\n\r\n/** Map a LinePixels value to an integer in [0..9] that can be used by shaders to index into the corresponding pixel pattern.\r\n * This is used for feature overrides, including those defined by InstancedGraphicParams.\r\n */\r\nexport function lineCodeFromLinePixels(pixels: LinePixels): number {\r\n switch (pixels) {\r\n case LinePixels.Code0: return 0;\r\n case LinePixels.Code1: return 1;\r\n case LinePixels.Code2: return 2;\r\n case LinePixels.Code3: return 3;\r\n case LinePixels.Code4: return 4;\r\n case LinePixels.Code5: return 5;\r\n case LinePixels.Code6: return 6;\r\n case LinePixels.Code7: return 7;\r\n case LinePixels.HiddenLine: return 8;\r\n case LinePixels.Invisible: return 9;\r\n default: return 0;\r\n }\r\n}\r\n"]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/** @packageDocumentation
|
|
2
|
+
* @module WebGL
|
|
3
|
+
*/
|
|
4
|
+
/** 16-bit flags indicating what aspects of a feature's symbology are overridden.
|
|
5
|
+
* These are used for FeatureOverrides and InstancedGraphicParams.
|
|
6
|
+
* The flags are interpreted in the vertex shader.
|
|
7
|
+
*/
|
|
8
|
+
export declare const enum OvrFlags {
|
|
9
|
+
None = 0,
|
|
10
|
+
Visibility = 1,
|
|
11
|
+
Rgb = 2,
|
|
12
|
+
Alpha = 4,
|
|
13
|
+
/** ignore material color, specular properties, and texture. */
|
|
14
|
+
IgnoreMaterial = 8,
|
|
15
|
+
Flashed = 16,
|
|
16
|
+
NonLocatable = 32,
|
|
17
|
+
LineCode = 64,
|
|
18
|
+
Weight = 128,
|
|
19
|
+
Hilited = 256,
|
|
20
|
+
Emphasized = 512,
|
|
21
|
+
ViewIndependentTransparency = 1024,
|
|
22
|
+
InvisibleDuringPick = 2048,
|
|
23
|
+
Rgba = 6
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=OvrFlags.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OvrFlags.d.ts","sourceRoot":"","sources":["../../../../../src/common/internal/render/OvrFlags.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH;;;GAGG;AACH,0BAAkB,QAAQ;IACxB,IAAI,IAAI;IACR,UAAU,IAAS;IACnB,GAAG,IAAS;IACZ,KAAK,IAAS;IACd,+DAA+D;IAC/D,cAAc,IAAS;IACvB,OAAO,KAAS;IAEhB,YAAY,KAAS;IACrB,QAAQ,KAAS;IACjB,MAAM,MAAS;IACf,OAAO,MAAS;IAEhB,UAAU,MAAS;IACnB,2BAA2B,OAAU;IAOrC,mBAAmB,OAAU;IAE7B,IAAI,IAAc;CACnB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*---------------------------------------------------------------------------------------------
|
|
3
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
4
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
5
|
+
*--------------------------------------------------------------------------------------------*/
|
|
6
|
+
/** @packageDocumentation
|
|
7
|
+
* @module WebGL
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
//# sourceMappingURL=OvrFlags.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OvrFlags.js","sourceRoot":"","sources":["../../../../../src/common/internal/render/OvrFlags.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG","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 WebGL\r\n */\r\n\r\n/** 16-bit flags indicating what aspects of a feature's symbology are overridden.\r\n * These are used for FeatureOverrides and InstancedGraphicParams.\r\n * The flags are interpreted in the vertex shader.\r\n */\r\nexport const enum OvrFlags { // eslint-disable-line no-restricted-syntax\r\n None = 0,\r\n Visibility = 1 << 0,\r\n Rgb = 1 << 1,\r\n Alpha = 1 << 2,\r\n /** ignore material color, specular properties, and texture. */\r\n IgnoreMaterial = 1 << 3,\r\n Flashed = 1 << 4,\r\n /* do not draw during pick - allows geometry beneath to be picked. */\r\n NonLocatable = 1 << 5,\r\n LineCode = 1 << 6,\r\n Weight = 1 << 7,\r\n Hilited = 1 << 8,\r\n /* rendered with \"emphasis\" hilite settings (silhouette etc). */\r\n Emphasized = 1 << 9,\r\n ViewIndependentTransparency = 1 << 10,\r\n /* Different from both NonLocatable and Visibility, but with the same effect as NonLocatable - don't draw during pick.\r\n * It's a separate flag because it is temporarily set during readPixels if a list of elements to hide is supplied, and then reset\r\n * immediately afterward.\r\n * We want to be able to efficiently change just that flag in the FeatureOverrides texture, and then flip it back off without worrying about\r\n * interfering with the other 2 flags.\r\n */\r\n InvisibleDuringPick = 1 << 11,\r\n\r\n Rgba = Rgb | Alpha,\r\n}\r\n\r\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/** @packageDocumentation
|
|
2
2
|
* @module Rendering
|
|
3
3
|
*/
|
|
4
|
-
import { Point2d, Point3d, Range3d, Transform } from "@itwin/core-geometry";
|
|
4
|
+
import { LowAndHighXYZ, Point2d, Point3d, Range3d, Transform, XYAndZ } from "@itwin/core-geometry";
|
|
5
5
|
/** Parameters for creating a [[RenderGraphic]] representing a collection of instances of shared geometry.
|
|
6
6
|
* Each instance is drawn using the same graphics, but with its own transform and (optionally) [[Feature]] Id.
|
|
7
7
|
* @public
|
|
@@ -32,6 +32,30 @@ export interface InstancedGraphicParams {
|
|
|
32
32
|
/** If defined, the combined range of all instances of the geometry. */
|
|
33
33
|
readonly range?: Range3d;
|
|
34
34
|
}
|
|
35
|
+
/** A representation of an [[InstancedGraphicParams]] that can be copied using [structured cloning](https://developer.mozilla.org/en-US/docs/Web/API/structuredClone),
|
|
36
|
+
* e.g., when transferring between Workers. This representation is used by [[RenderInstancesParams]].
|
|
37
|
+
* @see [[InstancedGraphicParams.toProps]] and [[InstancedGraphicParams.fromProps]] to convert between representations.
|
|
38
|
+
* @see [[InstancedGraphicProps.collectTransferables]] to extract Transferable objects for structured clone.
|
|
39
|
+
* @public
|
|
40
|
+
*/
|
|
41
|
+
export type InstancedGraphicProps = Omit<InstancedGraphicParams, "transformCenter" | "range"> & {
|
|
42
|
+
transformCenter: XYAndZ;
|
|
43
|
+
range?: LowAndHighXYZ;
|
|
44
|
+
};
|
|
45
|
+
/** @public */
|
|
46
|
+
export declare namespace InstancedGraphicProps {
|
|
47
|
+
/** Add all [Transferable objects](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Transferable_objects) from `props`
|
|
48
|
+
* into `xfers`.
|
|
49
|
+
*/
|
|
50
|
+
function collectTransferables(xfers: Set<Transferable>, props: InstancedGraphicProps): void;
|
|
51
|
+
}
|
|
52
|
+
/** @public */
|
|
53
|
+
export declare namespace InstancedGraphicParams {
|
|
54
|
+
/** Convert `params` to a representation that can be copied using [structured cloning](https://developer.mozilla.org/en-US/docs/Web/API/structuredClone). */
|
|
55
|
+
function toProps(params: InstancedGraphicParams): InstancedGraphicProps;
|
|
56
|
+
/** Create an [[InstancedGraphicParams]] from an [[InstancedGraphicProps]]. */
|
|
57
|
+
function fromProps(props: InstancedGraphicProps): InstancedGraphicParams;
|
|
58
|
+
}
|
|
35
59
|
/** Parameters for creating a [[RenderGraphic]] representing a patterned area.
|
|
36
60
|
* A patterned area is a planar region filled with a pattern symbol repeated in
|
|
37
61
|
* a regular grid and clipped by the region's boundary.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InstancedGraphicParams.d.ts","sourceRoot":"","sources":["../../../../src/common/render/InstancedGraphicParams.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"InstancedGraphicParams.d.ts","sourceRoot":"","sources":["../../../../src/common/render/InstancedGraphicParams.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAEnG;;;GAGG;AACH,MAAM,WAAW,sBAAsB;IACrC;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC;IAElC;;OAEG;IACH,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAElC,iHAAiH;IACjH,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;IAEjC;;OAEG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,UAAU,CAAC;IAEzC,uEAAuE;IACvE,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;GAKG;AACH,MAAM,MAAM,qBAAqB,GAAG,IAAI,CAAC,sBAAsB,EAAE,iBAAiB,GAAG,OAAO,CAAC,GAAG;IAC9F,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB,CAAC;AAEF,cAAc;AACd,yBAAiB,qBAAqB,CAAC;IACrC;;OAEG;IACH,SAAgB,oBAAoB,CAAC,KAAK,EAAE,GAAG,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,qBAAqB,GAAG,IAAI,CASjG;CACF;AAED,cAAc;AACd,yBAAiB,sBAAsB,CAAC;IACtC,4JAA4J;IAC5J,SAAgB,OAAO,CAAC,MAAM,EAAE,sBAAsB,GAAG,qBAAqB,CA0B7E;IAED,8EAA8E;IAC9E,SAAgB,SAAS,CAAC,KAAK,EAAE,qBAAqB,GAAG,sBAAsB,CAM9E;CACF;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,SAAS,CAAC;IACjC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,yCAAyC;IACzC,QAAQ,CAAC,cAAc,EAAE,SAAS,CAAC;IACnC,2EAA2E;IAC3E,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;CAC1C"}
|
|
@@ -7,4 +7,63 @@
|
|
|
7
7
|
* @module Rendering
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.InstancedGraphicParams = exports.InstancedGraphicProps = void 0;
|
|
11
|
+
const core_geometry_1 = require("@itwin/core-geometry");
|
|
12
|
+
/** @public */
|
|
13
|
+
var InstancedGraphicProps;
|
|
14
|
+
(function (InstancedGraphicProps) {
|
|
15
|
+
/** Add all [Transferable objects](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Transferable_objects) from `props`
|
|
16
|
+
* into `xfers`.
|
|
17
|
+
*/
|
|
18
|
+
function collectTransferables(xfers, props) {
|
|
19
|
+
xfers.add(props.transforms.buffer);
|
|
20
|
+
if (props.featureIds) {
|
|
21
|
+
xfers.add(props.featureIds.buffer);
|
|
22
|
+
}
|
|
23
|
+
if (props.symbologyOverrides) {
|
|
24
|
+
xfers.add(props.symbologyOverrides.buffer);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
InstancedGraphicProps.collectTransferables = collectTransferables;
|
|
28
|
+
})(InstancedGraphicProps || (exports.InstancedGraphicProps = InstancedGraphicProps = {}));
|
|
29
|
+
/** @public */
|
|
30
|
+
var InstancedGraphicParams;
|
|
31
|
+
(function (InstancedGraphicParams) {
|
|
32
|
+
/** Convert `params` to a representation that can be copied using [structured cloning](https://developer.mozilla.org/en-US/docs/Web/API/structuredClone). */
|
|
33
|
+
function toProps(params) {
|
|
34
|
+
const props = {
|
|
35
|
+
...params,
|
|
36
|
+
transformCenter: {
|
|
37
|
+
x: params.transformCenter.x,
|
|
38
|
+
y: params.transformCenter.y,
|
|
39
|
+
z: params.transformCenter.z,
|
|
40
|
+
},
|
|
41
|
+
};
|
|
42
|
+
if (params.range) {
|
|
43
|
+
props.range = {
|
|
44
|
+
low: {
|
|
45
|
+
x: params.range.low.x,
|
|
46
|
+
y: params.range.low.y,
|
|
47
|
+
z: params.range.low.z,
|
|
48
|
+
},
|
|
49
|
+
high: {
|
|
50
|
+
x: params.range.high.x,
|
|
51
|
+
y: params.range.high.y,
|
|
52
|
+
z: params.range.high.z,
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
return props;
|
|
57
|
+
}
|
|
58
|
+
InstancedGraphicParams.toProps = toProps;
|
|
59
|
+
/** Create an [[InstancedGraphicParams]] from an [[InstancedGraphicProps]]. */
|
|
60
|
+
function fromProps(props) {
|
|
61
|
+
return {
|
|
62
|
+
...props,
|
|
63
|
+
transformCenter: core_geometry_1.Point3d.fromJSON(props.transformCenter),
|
|
64
|
+
range: props.range ? core_geometry_1.Range3d.fromJSON(props.range) : undefined,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
InstancedGraphicParams.fromProps = fromProps;
|
|
68
|
+
})(InstancedGraphicParams || (exports.InstancedGraphicParams = InstancedGraphicParams = {}));
|
|
10
69
|
//# sourceMappingURL=InstancedGraphicParams.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InstancedGraphicParams.js","sourceRoot":"","sources":["../../../../src/common/render/InstancedGraphicParams.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG","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 Rendering\r\n */\r\n\r\nimport {
|
|
1
|
+
{"version":3,"file":"InstancedGraphicParams.js","sourceRoot":"","sources":["../../../../src/common/render/InstancedGraphicParams.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,wDAAmG;AAiDnG,cAAc;AACd,IAAiB,qBAAqB,CAcrC;AAdD,WAAiB,qBAAqB;IACpC;;OAEG;IACH,SAAgB,oBAAoB,CAAC,KAAwB,EAAE,KAA4B;QACzF,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;YACrB,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC;QAED,IAAI,KAAK,CAAC,kBAAkB,EAAE,CAAC;YAC7B,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IATe,0CAAoB,uBASnC,CAAA;AACH,CAAC,EAdgB,qBAAqB,qCAArB,qBAAqB,QAcrC;AAED,cAAc;AACd,IAAiB,sBAAsB,CAsCtC;AAtCD,WAAiB,sBAAsB;IACrC,4JAA4J;IAC5J,SAAgB,OAAO,CAAC,MAA8B;QACpD,MAAM,KAAK,GAA0B;YACnC,GAAG,MAAM;YACT,eAAe,EAAE;gBACf,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;gBAC3B,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;gBAC3B,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;aAC5B;SACF,CAAC;QAEF,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,KAAK,CAAC,KAAK,GAAG;gBACZ,GAAG,EAAE;oBACH,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACrB,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACrB,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;iBACtB;gBACD,IAAI,EAAE;oBACJ,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACtB,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACtB,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;iBACvB;aACF,CAAC;QACJ,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IA1Be,8BAAO,UA0BtB,CAAA;IAED,8EAA8E;IAC9E,SAAgB,SAAS,CAAC,KAA4B;QACpD,OAAO;YACL,GAAG,KAAK;YACR,eAAe,EAAE,uBAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC;YACxD,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,uBAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;SAC/D,CAAC;IACJ,CAAC;IANe,gCAAS,YAMxB,CAAA;AACH,CAAC,EAtCgB,sBAAsB,sCAAtB,sBAAsB,QAsCtC","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 Rendering\r\n */\r\n\r\nimport { LowAndHighXYZ, Point2d, Point3d, Range3d, Transform, XYAndZ } from \"@itwin/core-geometry\";\r\n\r\n/** Parameters for creating a [[RenderGraphic]] representing a collection of instances of shared geometry.\r\n * Each instance is drawn using the same graphics, but with its own transform and (optionally) [[Feature]] Id.\r\n * @public\r\n */\r\nexport interface InstancedGraphicParams {\r\n /** The number of instances.\r\n * Must be greater than zero.\r\n * Must be equal to (transforms.length / 12)\r\n * If featureIds is defined, must be equal to (featureIds.length / 3)\r\n * If symbologyOverrides is defined, must be equal to (symbologyOverrides.length / 8)\r\n */\r\n readonly count: number;\r\n\r\n /** An array of instance-to-model transforms.\r\n * Each transform consists of 3 rows of 4 columns where the 4th column holds the translation.\r\n * The translations are relative to the [[transformCenter]] property.\r\n */\r\n readonly transforms: Float32Array;\r\n\r\n /** A point roughly in the center of the range of all of the instances, to which each instance's translation is relative.\r\n * This is used to reduce precision errors when transforming the instances in shader code.\r\n */\r\n readonly transformCenter: Point3d;\r\n\r\n /** If defined, an array of little-endian 24-bit unsigned integers containing the feature ID of each instance. */\r\n readonly featureIds?: Uint8Array;\r\n\r\n /** If defined, as array of bytes (8 per instance) encoding the symbology overrides for each instance.\r\n * The encoding matches that used by FeatureOverrides, though only the RGB, alpha, line weight, and line code are used.\r\n */\r\n readonly symbologyOverrides?: Uint8Array;\r\n\r\n /** If defined, the combined range of all instances of the geometry. */\r\n readonly range?: Range3d;\r\n}\r\n\r\n/** A representation of an [[InstancedGraphicParams]] that can be copied using [structured cloning](https://developer.mozilla.org/en-US/docs/Web/API/structuredClone),\r\n * e.g., when transferring between Workers. This representation is used by [[RenderInstancesParams]].\r\n * @see [[InstancedGraphicParams.toProps]] and [[InstancedGraphicParams.fromProps]] to convert between representations.\r\n * @see [[InstancedGraphicProps.collectTransferables]] to extract Transferable objects for structured clone.\r\n * @public\r\n */\r\nexport type InstancedGraphicProps = Omit<InstancedGraphicParams, \"transformCenter\" | \"range\"> & {\r\n transformCenter: XYAndZ;\r\n range?: LowAndHighXYZ;\r\n};\r\n\r\n/** @public */\r\nexport namespace InstancedGraphicProps { // eslint-disable-line @typescript-eslint/no-redeclare\r\n /** Add all [Transferable objects](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Transferable_objects) from `props`\r\n * into `xfers`.\r\n */\r\n export function collectTransferables(xfers: Set<Transferable>, props: InstancedGraphicProps): void {\r\n xfers.add(props.transforms.buffer);\r\n if (props.featureIds) {\r\n xfers.add(props.featureIds.buffer);\r\n }\r\n\r\n if (props.symbologyOverrides) {\r\n xfers.add(props.symbologyOverrides.buffer);\r\n }\r\n }\r\n}\r\n\r\n/** @public */\r\nexport namespace InstancedGraphicParams { // eslint-disable-line @typescript-eslint/no-redeclare\r\n /** Convert `params` to a representation that can be copied using [structured cloning](https://developer.mozilla.org/en-US/docs/Web/API/structuredClone). */\r\n export function toProps(params: InstancedGraphicParams): InstancedGraphicProps {\r\n const props: InstancedGraphicProps = {\r\n ...params,\r\n transformCenter: {\r\n x: params.transformCenter.x,\r\n y: params.transformCenter.y,\r\n z: params.transformCenter.z,\r\n },\r\n };\r\n\r\n if (params.range) {\r\n props.range = {\r\n low: {\r\n x: params.range.low.x,\r\n y: params.range.low.y,\r\n z: params.range.low.z,\r\n },\r\n high: {\r\n x: params.range.high.x,\r\n y: params.range.high.y,\r\n z: params.range.high.z,\r\n },\r\n };\r\n }\r\n\r\n return props;\r\n }\r\n\r\n /** Create an [[InstancedGraphicParams]] from an [[InstancedGraphicProps]]. */\r\n export function fromProps(props: InstancedGraphicProps): InstancedGraphicParams {\r\n return {\r\n ...props,\r\n transformCenter: Point3d.fromJSON(props.transformCenter),\r\n range: props.range ? Range3d.fromJSON(props.range) : undefined,\r\n };\r\n }\r\n}\r\n\r\n/** Parameters for creating a [[RenderGraphic]] representing a patterned area.\r\n * A patterned area is a planar region filled with a pattern symbol repeated in\r\n * a regular grid and clipped by the region's boundary.\r\n * @internal\r\n */\r\nexport interface PatternGraphicParams {\r\n readonly xyOffsets: Float32Array;\r\n readonly featureId?: number;\r\n readonly orgTransform: Transform;\r\n readonly scale: number;\r\n readonly spacing: Point2d;\r\n readonly origin: Point2d;\r\n /** Usually, to tile tree coordinates. */\r\n readonly patternToModel: Transform;\r\n /** Range of pattern boundary in model (tile tree, usually) coordinates. */\r\n readonly range: Range3d;\r\n readonly symbolTranslation: Point3d;\r\n readonly viewIndependentOrigin?: Point3d;\r\n}\r\n"]}
|