@itwin/core-frontend 3.0.0-dev.177 → 3.0.0-dev.181
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/IModelApp.d.ts +1 -1
- package/lib/cjs/IModelApp.d.ts.map +1 -1
- package/lib/cjs/IModelApp.js.map +1 -1
- package/lib/cjs/Viewport.d.ts +1 -0
- package/lib/cjs/Viewport.d.ts.map +1 -1
- package/lib/cjs/Viewport.js +10 -2
- package/lib/cjs/Viewport.js.map +1 -1
- package/lib/cjs/render/webgl/CachedGeometry.d.ts +7 -6
- package/lib/cjs/render/webgl/CachedGeometry.d.ts.map +1 -1
- package/lib/cjs/render/webgl/CachedGeometry.js +7 -6
- package/lib/cjs/render/webgl/CachedGeometry.js.map +1 -1
- package/lib/cjs/render/webgl/DrawCommand.d.ts +2 -2
- package/lib/cjs/render/webgl/DrawCommand.d.ts.map +1 -1
- package/lib/cjs/render/webgl/DrawCommand.js +2 -2
- package/lib/cjs/render/webgl/DrawCommand.js.map +1 -1
- package/lib/cjs/render/webgl/EdgeGeometry.d.ts +3 -3
- package/lib/cjs/render/webgl/EdgeGeometry.d.ts.map +1 -1
- package/lib/cjs/render/webgl/EdgeGeometry.js +2 -2
- package/lib/cjs/render/webgl/EdgeGeometry.js.map +1 -1
- package/lib/cjs/render/webgl/IndexedEdgeGeometry.d.ts +1 -1
- package/lib/cjs/render/webgl/IndexedEdgeGeometry.d.ts.map +1 -1
- package/lib/cjs/render/webgl/IndexedEdgeGeometry.js +1 -1
- package/lib/cjs/render/webgl/IndexedEdgeGeometry.js.map +1 -1
- package/lib/cjs/render/webgl/InstancedGeometry.d.ts +1 -1
- package/lib/cjs/render/webgl/InstancedGeometry.d.ts.map +1 -1
- package/lib/cjs/render/webgl/InstancedGeometry.js +1 -1
- package/lib/cjs/render/webgl/InstancedGeometry.js.map +1 -1
- package/lib/cjs/render/webgl/MeshGeometry.d.ts +2 -2
- package/lib/cjs/render/webgl/MeshGeometry.d.ts.map +1 -1
- package/lib/cjs/render/webgl/MeshGeometry.js +4 -5
- package/lib/cjs/render/webgl/MeshGeometry.js.map +1 -1
- package/lib/cjs/render/webgl/PlanarGrid.d.ts +2 -3
- package/lib/cjs/render/webgl/PlanarGrid.d.ts.map +1 -1
- package/lib/cjs/render/webgl/PlanarGrid.js +1 -1
- package/lib/cjs/render/webgl/PlanarGrid.js.map +1 -1
- package/lib/cjs/render/webgl/PointCloud.d.ts +2 -2
- package/lib/cjs/render/webgl/PointCloud.d.ts.map +1 -1
- package/lib/cjs/render/webgl/PointCloud.js +2 -2
- package/lib/cjs/render/webgl/PointCloud.js.map +1 -1
- package/lib/cjs/render/webgl/PointString.d.ts +2 -2
- package/lib/cjs/render/webgl/PointString.d.ts.map +1 -1
- package/lib/cjs/render/webgl/PointString.js +1 -1
- package/lib/cjs/render/webgl/PointString.js.map +1 -1
- package/lib/cjs/render/webgl/Polyline.d.ts +2 -2
- package/lib/cjs/render/webgl/Polyline.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Polyline.js +6 -6
- package/lib/cjs/render/webgl/Polyline.js.map +1 -1
- package/lib/cjs/render/webgl/Primitive.d.ts +2 -2
- package/lib/cjs/render/webgl/Primitive.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Primitive.js +5 -5
- package/lib/cjs/render/webgl/Primitive.js.map +1 -1
- package/lib/cjs/render/webgl/RealityMesh.d.ts +2 -2
- package/lib/cjs/render/webgl/RealityMesh.d.ts.map +1 -1
- package/lib/cjs/render/webgl/RealityMesh.js +4 -4
- package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
- package/lib/cjs/render/webgl/RenderCommands.d.ts +2 -2
- package/lib/cjs/render/webgl/RenderCommands.d.ts.map +1 -1
- package/lib/cjs/render/webgl/RenderCommands.js +49 -42
- package/lib/cjs/render/webgl/RenderCommands.js.map +1 -1
- package/lib/cjs/render/webgl/RenderFlags.d.ts +43 -0
- package/lib/cjs/render/webgl/RenderFlags.d.ts.map +1 -1
- package/lib/cjs/render/webgl/RenderFlags.js +58 -1
- package/lib/cjs/render/webgl/RenderFlags.js.map +1 -1
- package/lib/cjs/render/webgl/SceneCompositor.js +3 -3
- package/lib/cjs/render/webgl/SceneCompositor.js.map +1 -1
- package/lib/cjs/render/webgl/ShaderProgram.d.ts +1 -1
- package/lib/cjs/render/webgl/ShaderProgram.d.ts.map +1 -1
- package/lib/cjs/render/webgl/ShaderProgram.js +4 -4
- package/lib/cjs/render/webgl/ShaderProgram.js.map +1 -1
- package/lib/cjs/render/webgl/SurfaceGeometry.d.ts +2 -2
- package/lib/cjs/render/webgl/SurfaceGeometry.d.ts.map +1 -1
- package/lib/cjs/render/webgl/SurfaceGeometry.js +16 -8
- package/lib/cjs/render/webgl/SurfaceGeometry.js.map +1 -1
- package/lib/cjs/render/webgl/Technique.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Technique.js +1 -68
- package/lib/cjs/render/webgl/Technique.js.map +1 -1
- package/lib/cjs/render/webgl/Texture.d.ts +0 -1
- package/lib/cjs/render/webgl/Texture.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Texture.js +0 -1
- package/lib/cjs/render/webgl/Texture.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/AmbientOcclusion.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js +82 -17
- package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/FeatureSymbology.js +9 -5
- package/lib/cjs/render/webgl/glsl/FeatureSymbology.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Surface.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Surface.js +29 -7
- package/lib/cjs/render/webgl/glsl/Surface.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Vertex.js +1 -1
- package/lib/cjs/render/webgl/glsl/Vertex.js.map +1 -1
- package/lib/esm/IModelApp.d.ts +1 -1
- package/lib/esm/IModelApp.d.ts.map +1 -1
- package/lib/esm/IModelApp.js.map +1 -1
- package/lib/esm/Viewport.d.ts +1 -0
- package/lib/esm/Viewport.d.ts.map +1 -1
- package/lib/esm/Viewport.js +10 -2
- package/lib/esm/Viewport.js.map +1 -1
- package/lib/esm/render/webgl/CachedGeometry.d.ts +7 -6
- package/lib/esm/render/webgl/CachedGeometry.d.ts.map +1 -1
- package/lib/esm/render/webgl/CachedGeometry.js +7 -6
- package/lib/esm/render/webgl/CachedGeometry.js.map +1 -1
- package/lib/esm/render/webgl/DrawCommand.d.ts +2 -2
- package/lib/esm/render/webgl/DrawCommand.d.ts.map +1 -1
- package/lib/esm/render/webgl/DrawCommand.js +2 -2
- package/lib/esm/render/webgl/DrawCommand.js.map +1 -1
- package/lib/esm/render/webgl/EdgeGeometry.d.ts +3 -3
- package/lib/esm/render/webgl/EdgeGeometry.d.ts.map +1 -1
- package/lib/esm/render/webgl/EdgeGeometry.js +2 -2
- package/lib/esm/render/webgl/EdgeGeometry.js.map +1 -1
- package/lib/esm/render/webgl/IndexedEdgeGeometry.d.ts +1 -1
- package/lib/esm/render/webgl/IndexedEdgeGeometry.d.ts.map +1 -1
- package/lib/esm/render/webgl/IndexedEdgeGeometry.js +1 -1
- package/lib/esm/render/webgl/IndexedEdgeGeometry.js.map +1 -1
- package/lib/esm/render/webgl/InstancedGeometry.d.ts +1 -1
- package/lib/esm/render/webgl/InstancedGeometry.d.ts.map +1 -1
- package/lib/esm/render/webgl/InstancedGeometry.js +1 -1
- package/lib/esm/render/webgl/InstancedGeometry.js.map +1 -1
- package/lib/esm/render/webgl/MeshGeometry.d.ts +2 -2
- package/lib/esm/render/webgl/MeshGeometry.d.ts.map +1 -1
- package/lib/esm/render/webgl/MeshGeometry.js +4 -5
- package/lib/esm/render/webgl/MeshGeometry.js.map +1 -1
- package/lib/esm/render/webgl/PlanarGrid.d.ts +2 -3
- package/lib/esm/render/webgl/PlanarGrid.d.ts.map +1 -1
- package/lib/esm/render/webgl/PlanarGrid.js +1 -1
- package/lib/esm/render/webgl/PlanarGrid.js.map +1 -1
- package/lib/esm/render/webgl/PointCloud.d.ts +2 -2
- package/lib/esm/render/webgl/PointCloud.d.ts.map +1 -1
- package/lib/esm/render/webgl/PointCloud.js +2 -2
- package/lib/esm/render/webgl/PointCloud.js.map +1 -1
- package/lib/esm/render/webgl/PointString.d.ts +2 -2
- package/lib/esm/render/webgl/PointString.d.ts.map +1 -1
- package/lib/esm/render/webgl/PointString.js +1 -1
- package/lib/esm/render/webgl/PointString.js.map +1 -1
- package/lib/esm/render/webgl/Polyline.d.ts +2 -2
- package/lib/esm/render/webgl/Polyline.d.ts.map +1 -1
- package/lib/esm/render/webgl/Polyline.js +6 -6
- package/lib/esm/render/webgl/Polyline.js.map +1 -1
- package/lib/esm/render/webgl/Primitive.d.ts +2 -2
- package/lib/esm/render/webgl/Primitive.d.ts.map +1 -1
- package/lib/esm/render/webgl/Primitive.js +5 -5
- package/lib/esm/render/webgl/Primitive.js.map +1 -1
- package/lib/esm/render/webgl/RealityMesh.d.ts +2 -2
- package/lib/esm/render/webgl/RealityMesh.d.ts.map +1 -1
- package/lib/esm/render/webgl/RealityMesh.js +4 -4
- package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
- package/lib/esm/render/webgl/RenderCommands.d.ts +2 -2
- package/lib/esm/render/webgl/RenderCommands.d.ts.map +1 -1
- package/lib/esm/render/webgl/RenderCommands.js +49 -42
- package/lib/esm/render/webgl/RenderCommands.js.map +1 -1
- package/lib/esm/render/webgl/RenderFlags.d.ts +43 -0
- package/lib/esm/render/webgl/RenderFlags.d.ts.map +1 -1
- package/lib/esm/render/webgl/RenderFlags.js +57 -0
- package/lib/esm/render/webgl/RenderFlags.js.map +1 -1
- package/lib/esm/render/webgl/SceneCompositor.js +3 -3
- package/lib/esm/render/webgl/SceneCompositor.js.map +1 -1
- package/lib/esm/render/webgl/ShaderProgram.d.ts +1 -1
- package/lib/esm/render/webgl/ShaderProgram.d.ts.map +1 -1
- package/lib/esm/render/webgl/ShaderProgram.js +4 -4
- package/lib/esm/render/webgl/ShaderProgram.js.map +1 -1
- package/lib/esm/render/webgl/SurfaceGeometry.d.ts +2 -2
- package/lib/esm/render/webgl/SurfaceGeometry.d.ts.map +1 -1
- package/lib/esm/render/webgl/SurfaceGeometry.js +17 -9
- package/lib/esm/render/webgl/SurfaceGeometry.js.map +1 -1
- package/lib/esm/render/webgl/Technique.d.ts.map +1 -1
- package/lib/esm/render/webgl/Technique.js +1 -68
- package/lib/esm/render/webgl/Technique.js.map +1 -1
- package/lib/esm/render/webgl/Texture.d.ts +0 -1
- package/lib/esm/render/webgl/Texture.d.ts.map +1 -1
- package/lib/esm/render/webgl/Texture.js +0 -1
- package/lib/esm/render/webgl/Texture.js.map +1 -1
- package/lib/esm/render/webgl/glsl/AmbientOcclusion.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/AmbientOcclusion.js +83 -18
- package/lib/esm/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
- package/lib/esm/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/FeatureSymbology.js +10 -6
- package/lib/esm/render/webgl/glsl/FeatureSymbology.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Surface.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Surface.js +31 -9
- package/lib/esm/render/webgl/glsl/Surface.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Vertex.js +2 -2
- package/lib/esm/render/webgl/glsl/Vertex.js.map +1 -1
- package/package.json +22 -22
|
@@ -7,12 +7,11 @@ import { RenderMemory } from "../RenderMemory";
|
|
|
7
7
|
import { PlanarGridProps, RenderSystem } from "../RenderSystem";
|
|
8
8
|
import { QBufferHandle2d } from "./AttributeBuffers";
|
|
9
9
|
import { IndexedGeometry } from "./CachedGeometry";
|
|
10
|
-
import {
|
|
11
|
-
import { Target } from "./Target";
|
|
10
|
+
import { Pass, RenderOrder } from "./RenderFlags";
|
|
12
11
|
import { TechniqueId } from "./TechniqueId";
|
|
13
12
|
export declare class PlanarGridGeometry extends IndexedGeometry {
|
|
14
13
|
get techniqueId(): TechniqueId;
|
|
15
|
-
|
|
14
|
+
getPass(): Pass;
|
|
16
15
|
collectStatistics(_stats: RenderMemory.Statistics): void;
|
|
17
16
|
get renderOrder(): RenderOrder;
|
|
18
17
|
readonly uvParams: QBufferHandle2d;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlanarGrid.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/PlanarGrid.ts"],"names":[],"mappings":"AAIA;;GAEG;AAIH,OAAO,EAAE,OAAO,EAA8B,MAAM,oBAAoB,CAAC;AAEzE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAkC,eAAe,EAAmB,MAAM,oBAAoB,CAAC;AAEtG,OAAO,EAAE,eAAe,EAAyB,MAAM,kBAAkB,CAAC;AAG1E,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"PlanarGrid.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/PlanarGrid.ts"],"names":[],"mappings":"AAIA;;GAEG;AAIH,OAAO,EAAE,OAAO,EAA8B,MAAM,oBAAoB,CAAC;AAEzE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAkC,eAAe,EAAmB,MAAM,oBAAoB,CAAC;AAEtG,OAAO,EAAE,eAAe,EAAyB,MAAM,kBAAkB,CAAC;AAG1E,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAe5C,qBAAa,kBAAmB,SAAQ,eAAe;IACrD,IAAW,WAAW,IAAI,WAAW,CAAmC;IACxD,OAAO,IAAI,IAAI;IACxB,iBAAiB,CAAC,MAAM,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI;IAC/D,IAAW,WAAW,IAAI,WAAW,CAAqC;IAC1E,SAAgB,QAAQ,EAAE,eAAe,CAAC;IAC1C,SAAgB,KAAK,EAAE,eAAe,CAAC;IACvC,IAAoB,YAAY,IAAI,kBAAkB,GAAG,SAAS,CAAiB;IAEnF,OAAO;WAMO,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,YAAY,GAAG,aAAa,GAAG,SAAS;CA4D/G"}
|
|
@@ -34,7 +34,7 @@ class PlanarGridGeometry extends CachedGeometry_1.IndexedGeometry {
|
|
|
34
34
|
this.props = params.props;
|
|
35
35
|
}
|
|
36
36
|
get techniqueId() { return 8 /* PlanarGrid */; }
|
|
37
|
-
|
|
37
|
+
getPass() { return "translucent"; }
|
|
38
38
|
collectStatistics(_stats) { }
|
|
39
39
|
get renderOrder() { return 3 /* UnlitSurface */; }
|
|
40
40
|
get asPlanarGrid() { return this; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlanarGrid.js","sourceRoot":"","sources":["../../../../src/render/webgl/PlanarGrid.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,sDAA6C;AAC7C,wDAAwF;AACxF,oDAAyE;AACzE,oDAAiD;AAIjD,yDAAsG;AACtG,iDAA8C;AAC9C,qDAA0E;AAC1E,6BAA0B;AAC1B,2CAAwC;
|
|
1
|
+
{"version":3,"file":"PlanarGrid.js","sourceRoot":"","sources":["../../../../src/render/webgl/PlanarGrid.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 WebGL\r\n */\r\n\r\nimport { assert } from \"@itwin/core-bentley\";\r\nimport { Plane3dByOriginAndUnitNormal, Point2d, Transform } from \"@itwin/core-geometry\";\r\nimport { Frustum, QPoint2dList, QPoint3dList } from \"@itwin/core-common\";\r\nimport { GraphicBranch } from \"../GraphicBranch\";\r\nimport { RenderGraphic } from \"../RenderGraphic\";\r\nimport { RenderMemory } from \"../RenderMemory\";\r\nimport { PlanarGridProps, RenderSystem } from \"../RenderSystem\";\r\nimport { BufferHandle, BufferParameters, QBufferHandle2d, QBufferHandle3d } from \"./AttributeBuffers\";\r\nimport { AttributeMap } from \"./AttributeMap\";\r\nimport { IndexedGeometry, IndexedGeometryParams } from \"./CachedGeometry\";\r\nimport { GL } from \"./GL\";\r\nimport { Primitive } from \"./Primitive\";\r\nimport { Pass, RenderOrder } from \"./RenderFlags\";\r\nimport { TechniqueId } from \"./TechniqueId\";\r\n\r\nclass PlanarGridGeometryParams extends IndexedGeometryParams {\r\n\r\n public readonly uvParams: QBufferHandle2d;\r\n\r\n public constructor(positions: QBufferHandle3d, uvParams: QBufferHandle2d, indices: BufferHandle, numIndices: number, public readonly props: PlanarGridProps) {\r\n super(positions, indices, numIndices);\r\n const attrParams = AttributeMap.findAttribute(\"a_uvParam\", TechniqueId.PlanarGrid, false);\r\n assert(attrParams !== undefined);\r\n this.buffers.addBuffer(uvParams, [BufferParameters.create(attrParams.location, 2, GL.DataType.UnsignedShort, false, 0, 0, false)]);\r\n this.uvParams = uvParams;\r\n }\r\n}\r\n\r\nexport class PlanarGridGeometry extends IndexedGeometry {\r\n public get techniqueId(): TechniqueId { return TechniqueId.PlanarGrid; }\r\n public override getPass(): Pass { return \"translucent\"; }\r\n public collectStatistics(_stats: RenderMemory.Statistics): void { }\r\n public get renderOrder(): RenderOrder { return RenderOrder.UnlitSurface; }\r\n public readonly uvParams: QBufferHandle2d;\r\n public readonly props: PlanarGridProps;\r\n public override get asPlanarGrid(): PlanarGridGeometry | undefined { return this; }\r\n\r\n private constructor(params: PlanarGridGeometryParams) {\r\n super(params);\r\n this.uvParams = params.uvParams;\r\n this.props = params.props;\r\n }\r\n\r\n public static create(frustum: Frustum, grid: PlanarGridProps, system: RenderSystem): RenderGraphic | undefined {\r\n const plane = Plane3dByOriginAndUnitNormal.create(grid.origin, grid.rMatrix.rowZ())!;\r\n const polygon = frustum.getIntersectionWithPlane(plane);\r\n\r\n if (!polygon || polygon.length < 3)\r\n return undefined;\r\n\r\n const xVector = grid.rMatrix.rowX();\r\n const yVector = grid.rMatrix.rowY();\r\n const gridsPerRef = Math.max(1, grid.gridsPerRef);\r\n const xOrigin = xVector.dotProduct(grid.origin);\r\n const yOrigin = yVector.dotProduct(grid.origin);\r\n const params = [];\r\n for (const polygonPoint of polygon) {\r\n const x = (xVector.dotProduct(polygonPoint) - xOrigin) / grid.spacing.x;\r\n const y = (yVector.dotProduct(polygonPoint) - yOrigin) / grid.spacing.y;\r\n params.push(Point2d.create(x, y));\r\n }\r\n\r\n const qPoints = QPoint3dList.fromPoints(polygon);\r\n const qParams = QPoint2dList.fromPoints(params);\r\n\r\n qParams.params.origin.x = qParams.params.origin.x % gridsPerRef;\r\n qParams.params.origin.y = qParams.params.origin.y % gridsPerRef;\r\n\r\n let transform;\r\n // If the grid is far from the origin, create a branch to avoid large coordinate accuracy issues. (Reality models).\r\n if (qPoints.params.origin.magnitude() > 1.0E4) {\r\n transform = Transform.createTranslationXYZ(qPoints.params.origin.x, qPoints.params.origin.y, qPoints.params.origin.z);\r\n qPoints.params.origin.setZero();\r\n }\r\n\r\n const nTriangles = polygon.length - 2;\r\n const indices = new Uint32Array(3 * nTriangles);\r\n for (let i = 0, j = 0; i < nTriangles; i++) {\r\n indices[j++] = 0;\r\n indices[j++] = i + 1;\r\n indices[j++] = i + 2;\r\n }\r\n const pointBuffer = QBufferHandle3d.create(qPoints.params, qPoints.toTypedArray());\r\n const paramBuffer = QBufferHandle2d.create(qParams.params, qParams.toTypedArray());\r\n const indBuffer = BufferHandle.createBuffer(GL.Buffer.Target.ElementArrayBuffer, indices);\r\n if (!pointBuffer || !paramBuffer || !indBuffer)\r\n return undefined;\r\n\r\n const geomParams = new PlanarGridGeometryParams(pointBuffer, paramBuffer, indBuffer, indices.length, grid);\r\n if (!geomParams)\r\n return undefined;\r\n\r\n const geom = new PlanarGridGeometry(geomParams);\r\n let graphic: RenderGraphic | undefined = Primitive.create(geom);\r\n\r\n if (transform && graphic) {\r\n const branch = new GraphicBranch(true);\r\n branch.add(graphic);\r\n graphic = system.createBranch(branch, transform);\r\n }\r\n\r\n return graphic;\r\n }\r\n}\r\n\r\n"]}
|
|
@@ -3,7 +3,7 @@ import { RenderMemory } from "../RenderMemory";
|
|
|
3
3
|
import { CachedGeometry } from "./CachedGeometry";
|
|
4
4
|
import { ShaderProgramParams } from "./DrawCommand";
|
|
5
5
|
import { BufferHandle, BuffersContainer } from "./AttributeBuffers";
|
|
6
|
-
import { RenderOrder
|
|
6
|
+
import { RenderOrder } from "./RenderFlags";
|
|
7
7
|
import { Target } from "./Target";
|
|
8
8
|
import { TechniqueId } from "./TechniqueId";
|
|
9
9
|
/** @internal */
|
|
@@ -25,7 +25,7 @@ export declare class PointCloudGeometry extends CachedGeometry {
|
|
|
25
25
|
collectStatistics(stats: RenderMemory.Statistics): void;
|
|
26
26
|
protected _wantWoWReversal(_target: Target): boolean;
|
|
27
27
|
get techniqueId(): TechniqueId;
|
|
28
|
-
|
|
28
|
+
getPass(target: Target): "none" | "opaque";
|
|
29
29
|
get renderOrder(): RenderOrder;
|
|
30
30
|
get qOrigin(): Float32Array;
|
|
31
31
|
get qScale(): Float32Array;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PointCloud.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/PointCloud.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAoB,gBAAgB,EAAmB,MAAM,oBAAoB,CAAC;AACvG,OAAO,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"PointCloud.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/PointCloud.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAoB,gBAAgB,EAAmB,MAAM,oBAAoB,CAAC;AACvG,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,gBAAgB;AAChB,qBAAa,kBAAmB,SAAQ,cAAc;IACpD,SAAgB,OAAO,EAAE,gBAAgB,CAAC;IAC1C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAkB;IAC5C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAuC;IACpE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IAEvC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,SAAgB,UAAU,EAAE,OAAO,CAAC;IACpC,SAAgB,gBAAgB,EAAE,MAAM,CAAC;IAEzC,IAAW,UAAU,IAAI,OAAO,CAAiE;IACjG,IAAoB,YAAY,IAAI,kBAAkB,GAAG,SAAS,CAAiB;IACnF,IAAoB,uBAAuB,YAAmB;IAC9D,IAAW,gBAAgB,WAAiB;IAErC,OAAO;gBAKF,UAAU,EAAE,cAAc;IAsB/B,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI;IAK9D,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAEpD,IAAW,WAAW,IAAI,WAAW,CAAmC;IACxD,OAAO,CAAC,MAAM,EAAE,MAAM;IAItC,IAAW,WAAW,IAAI,WAAW,CAA+B;IACpE,IAAW,OAAO,IAAI,YAAY,CAAkC;IACpE,IAAW,MAAM,IAAI,YAAY,CAAiC;IAClE,IAAW,MAAM,IAAI,YAAY,GAAG,SAAS,CAA8B;IAC3E,IAAoB,WAAW,YAAgC;IAC/D,IAAoB,gBAAgB,YAAmB;IAEhD,IAAI,IAAI,IAAI;IAKH,aAAa,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM;CAIpE"}
|
|
@@ -52,9 +52,9 @@ class PointCloudGeometry extends CachedGeometry_1.CachedGeometry {
|
|
|
52
52
|
}
|
|
53
53
|
_wantWoWReversal(_target) { return false; }
|
|
54
54
|
get techniqueId() { return 2 /* PointCloud */; }
|
|
55
|
-
|
|
55
|
+
getPass(target) {
|
|
56
56
|
// Point clouds don't cast shadows.
|
|
57
|
-
return target.isDrawingShadowMap ?
|
|
57
|
+
return target.isDrawingShadowMap ? "none" : "opaque";
|
|
58
58
|
}
|
|
59
59
|
get renderOrder() { return 5 /* Linear */; }
|
|
60
60
|
get qOrigin() { return this._vertices.origin; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PointCloud.js","sourceRoot":"","sources":["../../../../src/render/webgl/PointCloud.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"PointCloud.js","sourceRoot":"","sources":["../../../../src/render/webgl/PointCloud.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\n/** @packageDocumentation\r\n * @module WebGL\r\n */\r\n\r\nimport { assert, dispose } from \"@itwin/core-bentley\";\r\nimport { FeatureIndexType } from \"@itwin/core-common\";\r\nimport { PointCloudArgs } from \"../primitives/PointCloudPrimitive\";\r\nimport { RenderMemory } from \"../RenderMemory\";\r\nimport { AttributeMap } from \"./AttributeMap\";\r\nimport { CachedGeometry } from \"./CachedGeometry\";\r\nimport { ShaderProgramParams } from \"./DrawCommand\";\r\nimport { GL } from \"./GL\";\r\nimport { BufferHandle, BufferParameters, BuffersContainer, QBufferHandle3d } from \"./AttributeBuffers\";\r\nimport { RenderOrder } from \"./RenderFlags\";\r\nimport { System } from \"./System\";\r\nimport { Target } from \"./Target\";\r\nimport { TechniqueId } from \"./TechniqueId\";\r\n\r\n/** @internal */\r\nexport class PointCloudGeometry extends CachedGeometry {\r\n public readonly buffers: BuffersContainer;\r\n private readonly _vertices: QBufferHandle3d;\r\n private readonly _vertexCount: number;\r\n private readonly _colorHandle: BufferHandle | undefined = undefined;\r\n private readonly _hasFeatures: boolean;\r\n\r\n private readonly _voxelSize: number;\r\n public readonly colorIsBgr: boolean;\r\n public readonly minimumPointSize: number;\r\n\r\n public get isDisposed(): boolean { return this.buffers.isDisposed && this._vertices.isDisposed; }\r\n public override get asPointCloud(): PointCloudGeometry | undefined { return this; }\r\n public override get supportsThematicDisplay() { return true; }\r\n public get overrideColorMix() { return .5; } // This could be a setting from either the mesh or the override if required.\r\n\r\n public dispose() {\r\n dispose(this.buffers);\r\n dispose(this._vertices);\r\n }\r\n\r\n constructor(pointCloud: PointCloudArgs) {\r\n super();\r\n this.buffers = BuffersContainer.create();\r\n this._vertices = QBufferHandle3d.create(pointCloud.pointParams, pointCloud.points) as QBufferHandle3d;\r\n const attrPos = AttributeMap.findAttribute(\"a_pos\", TechniqueId.PointCloud, false);\r\n assert(undefined !== attrPos);\r\n const vertexDataType = (pointCloud.points instanceof Uint8Array) ? GL.DataType.UnsignedByte : GL.DataType.UnsignedShort;\r\n this.buffers.addBuffer(this._vertices, [BufferParameters.create(attrPos.location, 3, vertexDataType, false, 0, 0, false)]);\r\n this._vertexCount = pointCloud.points.length / 3;\r\n this._hasFeatures = FeatureIndexType.Empty !== pointCloud.features.type;\r\n this._voxelSize = pointCloud.voxelSize;\r\n this.colorIsBgr = pointCloud.colorIsBgr;\r\n this.minimumPointSize = pointCloud.minimumPointSize;\r\n\r\n if (undefined !== pointCloud.colors) {\r\n this._colorHandle = BufferHandle.createArrayBuffer(pointCloud.colors);\r\n const attrColor = AttributeMap.findAttribute(\"a_color\", TechniqueId.PointCloud, false);\r\n assert(undefined !== attrColor);\r\n this.buffers.addBuffer(this._colorHandle!, [BufferParameters.create(attrColor.location, 3, GL.DataType.UnsignedByte, true, 0, 0, false)]);\r\n }\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n const bytesUsed = this._vertices.bytesUsed + (undefined !== this._colorHandle ? this._colorHandle.bytesUsed : 0);\r\n stats.addPointCloud(bytesUsed);\r\n }\r\n\r\n protected _wantWoWReversal(_target: Target): boolean { return false; }\r\n\r\n public get techniqueId(): TechniqueId { return TechniqueId.PointCloud; }\r\n public override getPass(target: Target) {\r\n // Point clouds don't cast shadows.\r\n return target.isDrawingShadowMap ? \"none\" : \"opaque\";\r\n }\r\n public get renderOrder(): RenderOrder { return RenderOrder.Linear; }\r\n public get qOrigin(): Float32Array { return this._vertices.origin; }\r\n public get qScale(): Float32Array { return this._vertices.scale; }\r\n public get colors(): BufferHandle | undefined { return this._colorHandle; }\r\n public override get hasFeatures() { return this._hasFeatures; }\r\n public override get hasBakedLighting() { return true; }\r\n\r\n public draw(): void {\r\n this.buffers.bind();\r\n System.instance.context.drawArrays(GL.PrimitiveType.Points, 0, this._vertexCount);\r\n this.buffers.unbind();\r\n }\r\n public override getLineWeight(_params: ShaderProgramParams): number {\r\n // If line weight < 0 it is real size in meters (voxel size).\r\n return (this._voxelSize > 0) ? - this._voxelSize : 1;\r\n }\r\n}\r\n"]}
|
|
@@ -8,7 +8,7 @@ import { RenderMemory } from "../RenderMemory";
|
|
|
8
8
|
import { LUTGeometry } from "./CachedGeometry";
|
|
9
9
|
import { ShaderProgramParams } from "./DrawCommand";
|
|
10
10
|
import { BufferHandle, BuffersContainer } from "./AttributeBuffers";
|
|
11
|
-
import {
|
|
11
|
+
import { Pass, RenderOrder } from "./RenderFlags";
|
|
12
12
|
import { Target } from "./Target";
|
|
13
13
|
import { TechniqueId } from "./TechniqueId";
|
|
14
14
|
import { VertexLUT } from "./VertexLUT";
|
|
@@ -25,7 +25,7 @@ export declare class PointStringGeometry extends LUTGeometry {
|
|
|
25
25
|
private constructor();
|
|
26
26
|
protected _wantWoWReversal(_target: Target): boolean;
|
|
27
27
|
get techniqueId(): TechniqueId;
|
|
28
|
-
|
|
28
|
+
getPass(): Pass;
|
|
29
29
|
get hasFeatures(): boolean;
|
|
30
30
|
get renderOrder(): RenderOrder;
|
|
31
31
|
protected _getLineWeight(_params: ShaderProgramParams): number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PointString.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/PointString.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAoB,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAoB,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"PointString.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/PointString.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAoB,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAoB,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtF,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,gBAAgB;AAChB,qBAAa,mBAAoB,SAAQ,WAAW;IAClD,SAAgB,OAAO,EAAE,gBAAgB,CAAC;IAC1C,SAAgB,YAAY,EAAE,SAAS,CAAC;IACxC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IACvC,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,GAAG,EAAE,SAAS,CAAC;IAC/B,SAAgB,OAAO,EAAE,YAAY,CAAC;IACtC,SAAgB,UAAU,EAAE,MAAM,CAAC;IAEnC,IAAW,UAAU,qBAA2B;IAEhD,OAAO;IAcP,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAEpD,IAAW,WAAW,IAAI,WAAW,CAAoC;IACzD,OAAO,IAAI,IAAI;IAC/B,IAAoB,WAAW,YAAgC;IAC/D,IAAW,WAAW,IAAI,WAAW,CAAqC;cACvD,cAAc,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM;IAEvE,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,wBAAwB,CAAC,EAAE,gBAAgB,GAAG,IAAI;WAS1E,MAAM,CAAC,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,mBAAmB,GAAG,SAAS;IAa/G,IAAW,UAAU,IAAI,OAAO,CAI/B;IAEM,OAAO;IAMP,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI;CAI/D"}
|
|
@@ -34,7 +34,7 @@ class PointStringGeometry extends CachedGeometry_1.LUTGeometry {
|
|
|
34
34
|
get lutBuffers() { return this.buffers; }
|
|
35
35
|
_wantWoWReversal(_target) { return true; }
|
|
36
36
|
get techniqueId() { return 3 /* PointString */; }
|
|
37
|
-
|
|
37
|
+
getPass() { return "opaque-linear"; }
|
|
38
38
|
get hasFeatures() { return this._hasFeatures; }
|
|
39
39
|
get renderOrder() { return 13 /* PlanarLinear */; }
|
|
40
40
|
_getLineWeight(_params) { return this.weight; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PointString.js","sourceRoot":"","sources":["../../../../src/render/webgl/PointString.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,sDAAsD;AAEtD,oDAAiE;AAGjE,iDAA8C;AAC9C,qDAA+C;AAE/C,6BAA0B;AAC1B,yDAAsF;AAEtF,qCAAkC;AAGlC,2CAAwC;AAExC,gBAAgB;AAChB,MAAa,mBAAoB,SAAQ,4BAAW;IAWlD,YAAoB,OAAqB,EAAE,UAAkB,EAAE,GAAc,EAAE,OAAkB,EAAE,MAAc,EAAE,WAAoB,EAAE,QAA6B;QACpK,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChB,IAAI,CAAC,OAAO,GAAG,mCAAgB,CAAC,MAAM,EAAE,CAAC;QACzC,MAAM,OAAO,GAAG,2BAAY,CAAC,aAAa,CAAC,OAAO,uBAA2B,KAAK,CAAC,CAAC;QACpF,IAAA,qBAAM,EAAC,SAAS,KAAK,OAAO,CAAC,CAAC;QAC9B,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,mCAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE,OAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAC9H,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;IAClC,CAAC;IAdD,IAAW,UAAU,KAAK,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAgBtC,gBAAgB,CAAC,OAAe,IAAa,OAAO,IAAI,CAAC,CAAC,CAAC;IAErE,IAAW,WAAW,KAAkB,2BAA+B,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"PointString.js","sourceRoot":"","sources":["../../../../src/render/webgl/PointString.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 WebGL\r\n */\r\n\r\nimport { assert, dispose } from \"@itwin/core-bentley\";\r\nimport { Point3d } from \"@itwin/core-geometry\";\r\nimport { FeatureIndexType, QParams3d } from \"@itwin/core-common\";\r\nimport { PointStringParams } from \"../primitives/PointStringParams\";\r\nimport { RenderMemory } from \"../RenderMemory\";\r\nimport { AttributeMap } from \"./AttributeMap\";\r\nimport { LUTGeometry } from \"./CachedGeometry\";\r\nimport { ShaderProgramParams } from \"./DrawCommand\";\r\nimport { GL } from \"./GL\";\r\nimport { BufferHandle, BufferParameters, BuffersContainer } from \"./AttributeBuffers\";\r\nimport { Pass, RenderOrder } from \"./RenderFlags\";\r\nimport { System } from \"./System\";\r\nimport { Target } from \"./Target\";\r\nimport { TechniqueId } from \"./TechniqueId\";\r\nimport { VertexLUT } from \"./VertexLUT\";\r\n\r\n/** @internal */\r\nexport class PointStringGeometry extends LUTGeometry {\r\n public readonly buffers: BuffersContainer;\r\n public readonly vertexParams: QParams3d;\r\n private readonly _hasFeatures: boolean;\r\n public readonly weight: number;\r\n public readonly lut: VertexLUT;\r\n public readonly indices: BufferHandle;\r\n public readonly numIndices: number;\r\n\r\n public get lutBuffers() { return this.buffers; }\r\n\r\n private constructor(indices: BufferHandle, numIndices: number, lut: VertexLUT, qparams: QParams3d, weight: number, hasFeatures: boolean, viOrigin: Point3d | undefined) {\r\n super(viOrigin);\r\n this.buffers = BuffersContainer.create();\r\n const attrPos = AttributeMap.findAttribute(\"a_pos\", TechniqueId.PointString, false);\r\n assert(undefined !== attrPos);\r\n this.buffers.addBuffer(indices, [BufferParameters.create(attrPos.location, 3, GL.DataType.UnsignedByte, false, 0, 0, false)]);\r\n this.numIndices = numIndices;\r\n this.indices = indices;\r\n this.lut = lut;\r\n this.vertexParams = qparams;\r\n this.weight = weight;\r\n this._hasFeatures = hasFeatures;\r\n }\r\n\r\n protected _wantWoWReversal(_target: Target): boolean { return true; }\r\n\r\n public get techniqueId(): TechniqueId { return TechniqueId.PointString; }\r\n public override getPass(): Pass { return \"opaque-linear\"; }\r\n public override get hasFeatures() { return this._hasFeatures; }\r\n public get renderOrder(): RenderOrder { return RenderOrder.PlanarLinear; }\r\n protected override _getLineWeight(_params: ShaderProgramParams): number { return this.weight; }\r\n\r\n protected _draw(numInstances: number, instanceBuffersContainer?: BuffersContainer): void {\r\n const gl = System.instance;\r\n const bufs = instanceBuffersContainer !== undefined ? instanceBuffersContainer : this.buffers;\r\n\r\n bufs.bind();\r\n gl.drawArrays(GL.PrimitiveType.Points, 0, this.numIndices, numInstances);\r\n bufs.unbind();\r\n }\r\n\r\n public static create(params: PointStringParams, viOrigin: Point3d | undefined): PointStringGeometry | undefined {\r\n const indices = BufferHandle.createArrayBuffer(params.indices.data);\r\n if (undefined === indices)\r\n return undefined;\r\n\r\n const lut = VertexLUT.createFromVertexTable(params.vertices);\r\n if (undefined === lut)\r\n return undefined;\r\n\r\n const hasFeatures = FeatureIndexType.Empty !== params.vertices.featureIndexType;\r\n return new PointStringGeometry(indices, params.indices.length, lut, params.vertices.qparams, params.weight, hasFeatures, viOrigin);\r\n }\r\n\r\n public get isDisposed(): boolean {\r\n return this.buffers.isDisposed\r\n && this.lut.isDisposed\r\n && this.indices.isDisposed;\r\n }\r\n\r\n public dispose() {\r\n dispose(this.buffers);\r\n dispose(this.lut);\r\n dispose(this.indices);\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n stats.addVertexTable(this.lut.bytesUsed);\r\n stats.addPointString(this.indices.bytesUsed);\r\n }\r\n}\r\n"]}
|
|
@@ -9,7 +9,7 @@ import { LUTGeometry, PolylineBuffers } from "./CachedGeometry";
|
|
|
9
9
|
import { ColorInfo } from "./ColorInfo";
|
|
10
10
|
import { ShaderProgramParams } from "./DrawCommand";
|
|
11
11
|
import { BuffersContainer } from "./AttributeBuffers";
|
|
12
|
-
import {
|
|
12
|
+
import { Pass, RenderOrder } from "./RenderFlags";
|
|
13
13
|
import { Target } from "./Target";
|
|
14
14
|
import { TechniqueId } from "./TechniqueId";
|
|
15
15
|
import { VertexLUT } from "./VertexLUT";
|
|
@@ -36,7 +36,7 @@ export declare class PolylineGeometry extends LUTGeometry {
|
|
|
36
36
|
protected _wantWoWReversal(_target: Target): boolean;
|
|
37
37
|
get polylineBuffers(): PolylineBuffers | undefined;
|
|
38
38
|
private _computeEdgePass;
|
|
39
|
-
|
|
39
|
+
getPass(target: Target): Pass;
|
|
40
40
|
get techniqueId(): TechniqueId;
|
|
41
41
|
get isPlanar(): boolean;
|
|
42
42
|
get isEdge(): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Polyline.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/Polyline.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAoB,iBAAiB,EAAE,SAAS,EAAc,MAAM,oBAAoB,CAAC;AAChG,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAGpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Polyline.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/Polyline.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAoB,iBAAiB,EAAE,SAAS,EAAc,MAAM,oBAAoB,CAAC;AAChG,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAGpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,gBAAgB;AAChB,qBAAa,gBAAiB,SAAQ,WAAW;IACxC,YAAY,EAAE,SAAS,CAAC;IAC/B,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,iBAAiB,CAAC;IAC/B,OAAO,CAAC,SAAS,CAAU;IACpB,GAAG,EAAE,SAAS,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,QAAQ,CAAkB;IAElC,IAAW,UAAU,qBAAoC;IAEzD,OAAO;IAaP,IAAW,UAAU,IAAI,OAAO,CAA4D;IAErF,OAAO;IAKP,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI;IAK9D,IAAW,SAAS,IAAI,OAAO,CAAmD;IAClF,IAAW,YAAY,IAAI,OAAO,CAAiD;IACnF,IAAW,aAAa,IAAI,OAAO,CAAoD;IAEvF,IAAW,WAAW,IAAI,WAAW,CAKpC;IAED,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAEpD,IAAoB,eAAe,IAAI,eAAe,GAAG,SAAS,CAA0B;IAE5F,OAAO,CAAC,gBAAgB;IAUR,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAe7C,IAAW,WAAW,IAAI,WAAW,CAAiC;IACtE,IAAW,QAAQ,IAAI,OAAO,CAA2B;IACzD,IAAoB,MAAM,IAAI,OAAO,CAA2B;IAChE,IAAoB,OAAO,IAAI,YAAY,CAA6B;IACxE,IAAoB,MAAM,IAAI,YAAY,CAA4B;IACtE,IAAW,gBAAgB,IAAI,MAAM,CAAsC;IAC3E,IAAoB,WAAW,YAAgC;cAE5C,cAAc,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM;cAGnD,YAAY,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM;IAGpD,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS;IAInD,SAAS,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,wBAAwB,CAAC,EAAE,gBAAgB,GAAG,IAAI;WAS1E,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,qBAAqB,EAAE,OAAO,GAAG,SAAS,GAAG,gBAAgB,GAAG,SAAS;CAWvH"}
|
|
@@ -54,22 +54,22 @@ class PolylineGeometry extends CachedGeometry_1.LUTGeometry {
|
|
|
54
54
|
_computeEdgePass(target, colorInfo) {
|
|
55
55
|
const vf = target.currentViewFlags;
|
|
56
56
|
if (core_common_1.RenderMode.SmoothShade === vf.renderMode && !vf.visibleEdges)
|
|
57
|
-
return
|
|
57
|
+
return "none";
|
|
58
58
|
// Only want to return Translucent for edges if rendering in Wireframe mode ###TODO: what about overrides?
|
|
59
59
|
const isTranslucent = core_common_1.RenderMode.Wireframe === vf.renderMode && vf.transparency && colorInfo.hasTranslucency;
|
|
60
|
-
return isTranslucent ?
|
|
60
|
+
return isTranslucent ? "translucent" : "opaque-linear";
|
|
61
61
|
}
|
|
62
|
-
|
|
62
|
+
getPass(target) {
|
|
63
63
|
const vf = target.currentViewFlags;
|
|
64
64
|
if (this.isEdge) {
|
|
65
65
|
let pass = this._computeEdgePass(target, this.lut.colorInfo);
|
|
66
66
|
// Only display the outline in wireframe if Fill is off...
|
|
67
|
-
if (
|
|
68
|
-
pass =
|
|
67
|
+
if ("none" !== pass && this.isOutlineEdge && core_common_1.RenderMode.Wireframe === vf.renderMode && vf.fill)
|
|
68
|
+
pass = "none";
|
|
69
69
|
return pass;
|
|
70
70
|
}
|
|
71
71
|
const isTranslucent = vf.transparency && this.lut.colorInfo.hasTranslucency;
|
|
72
|
-
return isTranslucent ?
|
|
72
|
+
return isTranslucent ? "translucent" : "opaque-linear";
|
|
73
73
|
}
|
|
74
74
|
get techniqueId() { return 1 /* Polyline */; }
|
|
75
75
|
get isPlanar() { return this._isPlanar; }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Polyline.js","sourceRoot":"","sources":["../../../../src/render/webgl/Polyline.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,sDAA8C;AAE9C,oDAAgG;AAEhG,kDAA+C;AAC/C,qDAAgE;AAGhE,yCAAsC;AACtC,6BAA0B;AAG1B,qCAAkC;AAGlC,2CAAwC;AAExC,gBAAgB;AAChB,MAAa,gBAAiB,SAAQ,4BAAW;IAa/C,YAAoB,GAAc,EAAE,OAAwB,EAAE,MAAsB,EAAE,QAA6B;QACjH,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChB,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;QAC5C,IAAI,CAAC,YAAY,GAAG,8BAAgB,CAAC,KAAK,KAAK,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAChF,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;QAChC,IAAI,CAAC,QAAQ,GAAG,mBAAQ,CAAC,mBAAmB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAChE,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;QACjD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAbD,IAAW,UAAU,KAAK,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IAezD,IAAW,UAAU,KAAc,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;IAErF,OAAO;QACZ,IAAA,sBAAO,EAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClB,IAAA,sBAAO,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC;IAEM,iBAAiB,CAAC,KAA8B;QACrD,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,KAAK,EAAE,2BAAY,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC1E,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;IAED,IAAW,SAAS,KAAc,OAAO,+BAAiB,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAClF,IAAW,YAAY,KAAc,OAAO,+BAAiB,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACnF,IAAW,aAAa,KAAc,OAAO,+BAAiB,CAAC,OAAO,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAEvF,IAAW,WAAW;QACpB,IAAI,IAAI,CAAC,SAAS;YAChB,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,qBAAwB,CAAC,aAAiB,CAAC;;YAEjE,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,uBAA0B,CAAC,eAAmB,CAAC;IACzE,CAAC;IAES,gBAAgB,CAAC,OAAe,IAAa,OAAO,IAAI,CAAC,CAAC,CAAC;IAErE,IAAoB,eAAe,KAAkC,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEpF,gBAAgB,CAAC,MAAc,EAAE,SAAoB;QAC3D,MAAM,EAAE,GAAG,MAAM,CAAC,gBAAgB,CAAC;QACnC,IAAI,wBAAU,CAAC,WAAW,KAAK,EAAE,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC,YAAY;YAC9D,sBAAuB;QAEzB,0GAA0G;QAC1G,MAAM,aAAa,GAAY,wBAAU,CAAC,SAAS,KAAK,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC,YAAY,IAAI,SAAS,CAAC,eAAe,CAAC;QACtH,OAAO,aAAa,CAAC,CAAC,qBAAwB,CAAC,qBAAwB,CAAC;IAC1E,CAAC;IAEM,aAAa,CAAC,MAAc;QACjC,MAAM,EAAE,GAAG,MAAM,CAAC,gBAAgB,CAAC;QACnC,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,IAAI,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC7D,0DAA0D;YAC1D,IAAI,mBAAoB,IAAI,IAAI,IAAI,CAAC,aAAa,IAAI,wBAAU,CAAC,SAAS,KAAK,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC,IAAI;gBACrG,IAAI,iBAAkB,CAAC;YACzB,OAAO,IAAI,CAAC;SACb;QACD,MAAM,aAAa,GAAY,EAAE,CAAC,YAAY,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,eAAe,CAAC;QACrF,OAAO,aAAa,CAAC,CAAC,qBAAwB,CAAC,qBAAwB,CAAC;IAC1E,CAAC;IAED,IAAW,WAAW,KAAkB,wBAA4B,CAAC,CAAC;IACtE,IAAW,QAAQ,KAAc,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IACzD,IAAoB,MAAM,KAAc,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAChE,IAAoB,OAAO,KAAmB,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IACxE,IAAoB,MAAM,KAAmB,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACtE,IAAW,gBAAgB,KAAa,OAAO,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC3E,IAAoB,WAAW,KAAK,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAE5C,cAAc,CAAC,MAA2B;QAC3D,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;IAC7G,CAAC;IACkB,YAAY,CAAC,MAA2B;QACzD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;IAC3G,CAAC;IACe,QAAQ,CAAC,MAAc;QACrC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;IACxF,CAAC;IAES,KAAK,CAAC,YAAoB,EAAE,wBAA2C;QAC/E,MAAM,EAAE,GAAG,eAAM,CAAC,QAAQ,CAAC;QAC3B,MAAM,IAAI,GAAG,wBAAwB,KAAK,SAAS,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;QAEvG,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,EAAE,CAAC,UAAU,CAAC,OAAE,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;QAC5E,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,MAAsB,EAAE,qBAA0C;QACrF,MAAM,GAAG,GAAG,qBAAS,CAAC,qBAAqB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC7D,IAAI,SAAS,KAAK,GAAG;YACnB,OAAO,SAAS,CAAC;QAEnB,MAAM,OAAO,GAAG,gCAAe,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACxD,IAAI,SAAS,KAAK,OAAO;YACvB,OAAO,SAAS,CAAC;QAEnB,OAAO,IAAI,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAC3E,CAAC;CACF;AAlHD,4CAkHC","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 { dispose } from \"@itwin/core-bentley\";\r\nimport { Point3d } from \"@itwin/core-geometry\";\r\nimport { FeatureIndexType, PolylineTypeFlags, QParams3d, RenderMode } from \"@itwin/core-common\";\r\nimport { PolylineParams } from \"../primitives/PolylineParams\";\r\nimport { RenderMemory } from \"../RenderMemory\";\r\nimport { LUTGeometry, PolylineBuffers } from \"./CachedGeometry\";\r\nimport { ColorInfo } from \"./ColorInfo\";\r\nimport { ShaderProgramParams } from \"./DrawCommand\";\r\nimport { LineCode } from \"./LineCode\";\r\nimport { GL } from \"./GL\";\r\nimport { BuffersContainer } from \"./AttributeBuffers\";\r\nimport { RenderOrder, RenderPass } from \"./RenderFlags\";\r\nimport { System } from \"./System\";\r\nimport { Target } from \"./Target\";\r\nimport { TechniqueId } from \"./TechniqueId\";\r\nimport { VertexLUT } from \"./VertexLUT\";\r\n\r\n/** @internal */\r\nexport class PolylineGeometry extends LUTGeometry {\r\n public vertexParams: QParams3d;\r\n private readonly _hasFeatures: boolean;\r\n public lineWeight: number;\r\n public lineCode: number;\r\n public type: PolylineTypeFlags;\r\n private _isPlanar: boolean;\r\n public lut: VertexLUT;\r\n public numIndices: number;\r\n private _buffers: PolylineBuffers;\r\n\r\n public get lutBuffers() { return this._buffers.buffers; }\r\n\r\n private constructor(lut: VertexLUT, buffers: PolylineBuffers, params: PolylineParams, viOrigin: Point3d | undefined) {\r\n super(viOrigin);\r\n this.vertexParams = params.vertices.qparams;\r\n this._hasFeatures = FeatureIndexType.Empty !== params.vertices.featureIndexType;\r\n this.lineWeight = params.weight;\r\n this.lineCode = LineCode.valueFromLinePixels(params.linePixels);\r\n this.type = params.type;\r\n this._isPlanar = params.isPlanar;\r\n this.lut = lut;\r\n this.numIndices = params.polyline.indices.length;\r\n this._buffers = buffers;\r\n }\r\n\r\n public get isDisposed(): boolean { return this._buffers.isDisposed && this.lut.isDisposed; }\r\n\r\n public dispose() {\r\n dispose(this.lut);\r\n dispose(this._buffers);\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n this._buffers.collectStatistics(stats, RenderMemory.BufferType.Polylines);\r\n stats.addVertexTable(this.lut.bytesUsed);\r\n }\r\n\r\n public get isAnyEdge(): boolean { return PolylineTypeFlags.Normal !== this.type; }\r\n public get isNormalEdge(): boolean { return PolylineTypeFlags.Edge === this.type; }\r\n public get isOutlineEdge(): boolean { return PolylineTypeFlags.Outline === this.type; }\r\n\r\n public get renderOrder(): RenderOrder {\r\n if (this.isAnyEdge)\r\n return this.isPlanar ? RenderOrder.PlanarEdge : RenderOrder.Edge;\r\n else\r\n return this.isPlanar ? RenderOrder.PlanarLinear : RenderOrder.Linear;\r\n }\r\n\r\n protected _wantWoWReversal(_target: Target): boolean { return true; }\r\n\r\n public override get polylineBuffers(): PolylineBuffers | undefined { return this._buffers; }\r\n\r\n private _computeEdgePass(target: Target, colorInfo: ColorInfo): RenderPass {\r\n const vf = target.currentViewFlags;\r\n if (RenderMode.SmoothShade === vf.renderMode && !vf.visibleEdges)\r\n return RenderPass.None;\r\n\r\n // Only want to return Translucent for edges if rendering in Wireframe mode ###TODO: what about overrides?\r\n const isTranslucent: boolean = RenderMode.Wireframe === vf.renderMode && vf.transparency && colorInfo.hasTranslucency;\r\n return isTranslucent ? RenderPass.Translucent : RenderPass.OpaqueLinear;\r\n }\r\n\r\n public getRenderPass(target: Target): RenderPass {\r\n const vf = target.currentViewFlags;\r\n if (this.isEdge) {\r\n let pass = this._computeEdgePass(target, this.lut.colorInfo);\r\n // Only display the outline in wireframe if Fill is off...\r\n if (RenderPass.None !== pass && this.isOutlineEdge && RenderMode.Wireframe === vf.renderMode && vf.fill)\r\n pass = RenderPass.None;\r\n return pass;\r\n }\r\n const isTranslucent: boolean = vf.transparency && this.lut.colorInfo.hasTranslucency;\r\n return isTranslucent ? RenderPass.Translucent : RenderPass.OpaqueLinear;\r\n }\r\n\r\n public get techniqueId(): TechniqueId { return TechniqueId.Polyline; }\r\n public get isPlanar(): boolean { return this._isPlanar; }\r\n public override get isEdge(): boolean { return this.isAnyEdge; }\r\n public override get qOrigin(): Float32Array { return this.lut.qOrigin; }\r\n public override get qScale(): Float32Array { return this.lut.qScale; }\r\n public get numRgbaPerVertex(): number { return this.lut.numRgbaPerVertex; }\r\n public override get hasFeatures() { return this._hasFeatures; }\r\n\r\n protected override _getLineWeight(params: ShaderProgramParams): number {\r\n return this.isEdge ? params.target.computeEdgeWeight(params.renderPass, this.lineWeight) : this.lineWeight;\r\n }\r\n protected override _getLineCode(params: ShaderProgramParams): number {\r\n return this.isEdge ? params.target.computeEdgeLineCode(params.renderPass, this.lineCode) : this.lineCode;\r\n }\r\n public override getColor(target: Target): ColorInfo {\r\n return this.isEdge ? target.computeEdgeColor(this.lut.colorInfo) : this.lut.colorInfo;\r\n }\r\n\r\n protected _draw(numInstances: number, instanceBuffersContainer?: BuffersContainer): void {\r\n const gl = System.instance;\r\n const bufs = instanceBuffersContainer !== undefined ? instanceBuffersContainer : this._buffers.buffers;\r\n\r\n bufs.bind();\r\n gl.drawArrays(GL.PrimitiveType.Triangles, 0, this.numIndices, numInstances);\r\n bufs.unbind();\r\n }\r\n\r\n public static create(params: PolylineParams, viewIndependentOrigin: Point3d | undefined): PolylineGeometry | undefined {\r\n const lut = VertexLUT.createFromVertexTable(params.vertices);\r\n if (undefined === lut)\r\n return undefined;\r\n\r\n const buffers = PolylineBuffers.create(params.polyline);\r\n if (undefined === buffers)\r\n return undefined;\r\n\r\n return new PolylineGeometry(lut, buffers, params, viewIndependentOrigin);\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"Polyline.js","sourceRoot":"","sources":["../../../../src/render/webgl/Polyline.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 WebGL\r\n */\r\n\r\nimport { dispose } from \"@itwin/core-bentley\";\r\nimport { Point3d } from \"@itwin/core-geometry\";\r\nimport { FeatureIndexType, PolylineTypeFlags, QParams3d, RenderMode } from \"@itwin/core-common\";\r\nimport { PolylineParams } from \"../primitives/PolylineParams\";\r\nimport { RenderMemory } from \"../RenderMemory\";\r\nimport { LUTGeometry, PolylineBuffers } from \"./CachedGeometry\";\r\nimport { ColorInfo } from \"./ColorInfo\";\r\nimport { ShaderProgramParams } from \"./DrawCommand\";\r\nimport { LineCode } from \"./LineCode\";\r\nimport { GL } from \"./GL\";\r\nimport { BuffersContainer } from \"./AttributeBuffers\";\r\nimport { Pass, RenderOrder } from \"./RenderFlags\";\r\nimport { System } from \"./System\";\r\nimport { Target } from \"./Target\";\r\nimport { TechniqueId } from \"./TechniqueId\";\r\nimport { VertexLUT } from \"./VertexLUT\";\r\n\r\n/** @internal */\r\nexport class PolylineGeometry extends LUTGeometry {\r\n public vertexParams: QParams3d;\r\n private readonly _hasFeatures: boolean;\r\n public lineWeight: number;\r\n public lineCode: number;\r\n public type: PolylineTypeFlags;\r\n private _isPlanar: boolean;\r\n public lut: VertexLUT;\r\n public numIndices: number;\r\n private _buffers: PolylineBuffers;\r\n\r\n public get lutBuffers() { return this._buffers.buffers; }\r\n\r\n private constructor(lut: VertexLUT, buffers: PolylineBuffers, params: PolylineParams, viOrigin: Point3d | undefined) {\r\n super(viOrigin);\r\n this.vertexParams = params.vertices.qparams;\r\n this._hasFeatures = FeatureIndexType.Empty !== params.vertices.featureIndexType;\r\n this.lineWeight = params.weight;\r\n this.lineCode = LineCode.valueFromLinePixels(params.linePixels);\r\n this.type = params.type;\r\n this._isPlanar = params.isPlanar;\r\n this.lut = lut;\r\n this.numIndices = params.polyline.indices.length;\r\n this._buffers = buffers;\r\n }\r\n\r\n public get isDisposed(): boolean { return this._buffers.isDisposed && this.lut.isDisposed; }\r\n\r\n public dispose() {\r\n dispose(this.lut);\r\n dispose(this._buffers);\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n this._buffers.collectStatistics(stats, RenderMemory.BufferType.Polylines);\r\n stats.addVertexTable(this.lut.bytesUsed);\r\n }\r\n\r\n public get isAnyEdge(): boolean { return PolylineTypeFlags.Normal !== this.type; }\r\n public get isNormalEdge(): boolean { return PolylineTypeFlags.Edge === this.type; }\r\n public get isOutlineEdge(): boolean { return PolylineTypeFlags.Outline === this.type; }\r\n\r\n public get renderOrder(): RenderOrder {\r\n if (this.isAnyEdge)\r\n return this.isPlanar ? RenderOrder.PlanarEdge : RenderOrder.Edge;\r\n else\r\n return this.isPlanar ? RenderOrder.PlanarLinear : RenderOrder.Linear;\r\n }\r\n\r\n protected _wantWoWReversal(_target: Target): boolean { return true; }\r\n\r\n public override get polylineBuffers(): PolylineBuffers | undefined { return this._buffers; }\r\n\r\n private _computeEdgePass(target: Target, colorInfo: ColorInfo): Pass {\r\n const vf = target.currentViewFlags;\r\n if (RenderMode.SmoothShade === vf.renderMode && !vf.visibleEdges)\r\n return \"none\";\r\n\r\n // Only want to return Translucent for edges if rendering in Wireframe mode ###TODO: what about overrides?\r\n const isTranslucent: boolean = RenderMode.Wireframe === vf.renderMode && vf.transparency && colorInfo.hasTranslucency;\r\n return isTranslucent ? \"translucent\" : \"opaque-linear\";\r\n }\r\n\r\n public override getPass(target: Target): Pass {\r\n const vf = target.currentViewFlags;\r\n if (this.isEdge) {\r\n let pass = this._computeEdgePass(target, this.lut.colorInfo);\r\n // Only display the outline in wireframe if Fill is off...\r\n if (\"none\" !== pass && this.isOutlineEdge && RenderMode.Wireframe === vf.renderMode && vf.fill)\r\n pass = \"none\";\r\n\r\n return pass;\r\n }\r\n\r\n const isTranslucent: boolean = vf.transparency && this.lut.colorInfo.hasTranslucency;\r\n return isTranslucent ? \"translucent\" : \"opaque-linear\";\r\n }\r\n\r\n public get techniqueId(): TechniqueId { return TechniqueId.Polyline; }\r\n public get isPlanar(): boolean { return this._isPlanar; }\r\n public override get isEdge(): boolean { return this.isAnyEdge; }\r\n public override get qOrigin(): Float32Array { return this.lut.qOrigin; }\r\n public override get qScale(): Float32Array { return this.lut.qScale; }\r\n public get numRgbaPerVertex(): number { return this.lut.numRgbaPerVertex; }\r\n public override get hasFeatures() { return this._hasFeatures; }\r\n\r\n protected override _getLineWeight(params: ShaderProgramParams): number {\r\n return this.isEdge ? params.target.computeEdgeWeight(params.renderPass, this.lineWeight) : this.lineWeight;\r\n }\r\n protected override _getLineCode(params: ShaderProgramParams): number {\r\n return this.isEdge ? params.target.computeEdgeLineCode(params.renderPass, this.lineCode) : this.lineCode;\r\n }\r\n public override getColor(target: Target): ColorInfo {\r\n return this.isEdge ? target.computeEdgeColor(this.lut.colorInfo) : this.lut.colorInfo;\r\n }\r\n\r\n protected _draw(numInstances: number, instanceBuffersContainer?: BuffersContainer): void {\r\n const gl = System.instance;\r\n const bufs = instanceBuffersContainer !== undefined ? instanceBuffersContainer : this._buffers.buffers;\r\n\r\n bufs.bind();\r\n gl.drawArrays(GL.PrimitiveType.Triangles, 0, this.numIndices, numInstances);\r\n bufs.unbind();\r\n }\r\n\r\n public static create(params: PolylineParams, viewIndependentOrigin: Point3d | undefined): PolylineGeometry | undefined {\r\n const lut = VertexLUT.createFromVertexTable(params.vertices);\r\n if (undefined === lut)\r\n return undefined;\r\n\r\n const buffers = PolylineBuffers.create(params.polyline);\r\n if (undefined === buffers)\r\n return undefined;\r\n\r\n return new PolylineGeometry(lut, buffers, params, viewIndependentOrigin);\r\n }\r\n}\r\n"]}
|
|
@@ -8,7 +8,7 @@ import { CachedGeometry } from "./CachedGeometry";
|
|
|
8
8
|
import { Graphic } from "./Graphic";
|
|
9
9
|
import { InstanceBuffers, PatternBuffers } from "./InstancedGeometry";
|
|
10
10
|
import { RenderCommands } from "./RenderCommands";
|
|
11
|
-
import { RenderOrder, RenderPass } from "./RenderFlags";
|
|
11
|
+
import { Pass, RenderOrder, RenderPass } from "./RenderFlags";
|
|
12
12
|
import { ShaderProgramExecutor } from "./ShaderProgram";
|
|
13
13
|
import { Target } from "./Target";
|
|
14
14
|
import { TechniqueId } from "./TechniqueId";
|
|
@@ -23,7 +23,7 @@ export declare class Primitive extends Graphic {
|
|
|
23
23
|
get isPickable(): boolean;
|
|
24
24
|
dispose(): void;
|
|
25
25
|
collectStatistics(stats: RenderMemory.Statistics): void;
|
|
26
|
-
|
|
26
|
+
getPass(target: Target): Pass;
|
|
27
27
|
get hasFeatures(): boolean;
|
|
28
28
|
addCommands(commands: RenderCommands): void;
|
|
29
29
|
addHiliteCommands(commands: RenderCommands, pass: RenderPass): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Primitive.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/Primitive.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,cAAc,EAA8C,MAAM,kBAAkB,CAAC;AAE9F,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAA+C,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACnH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"Primitive.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/Primitive.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,cAAc,EAA8C,MAAM,kBAAkB,CAAC;AAE9F,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAA+C,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACnH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,gBAAgB;AAChB,qBAAa,SAAU,SAAQ,OAAO;IAC7B,cAAc,EAAE,cAAc,CAAC;IAC/B,WAAW,EAAE,OAAO,CAAS;IAEpC,SAAS,aAAa,UAAU,EAAE,cAAc;WAElC,MAAM,CAAC,IAAI,EAAE,cAAc,GAAG,SAAS,EAAE,SAAS,CAAC,EAAE,sBAAsB,GAAG,iBAAiB,GAAG,SAAS,GAAG,SAAS;WAsBvH,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,SAAS,EAAE,SAAS,CAAC,EAAE,eAAe,GAAG,cAAc,GAAG,SAAS,GAAG,SAAS;IAejI,IAAW,UAAU,IAAI,OAAO,CAA2C;IAC3E,IAAW,UAAU,YAAoB;IAElC,OAAO;IAIP,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI;IAIvD,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAkBpC,IAAW,WAAW,IAAI,OAAO,CAA4C;IAEtE,WAAW,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI;IAElC,iBAAiB,CAAC,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI;IAOnF,IAAW,YAAY,IAAI,OAAO,CAA6C;IAC/E,IAAW,WAAW,IAAI,OAAO,CAA4C;IAC7E,IAAW,KAAK,IAAI,OAAO,CAA6C;IACxE,IAAW,MAAM,IAAI,OAAO,CAAuC;IACnE,IAAW,WAAW,IAAI,WAAW,CAA4C;IACjF,IAAW,gBAAgB,IAAI,OAAO,CAAiD;IAEvE,WAAW,IAAI,SAAS;IAExC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAa;WAE1B,UAAU,IAAI,IAAI;IAEzB,IAAI,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI;IAUhD,IAAW,WAAW,IAAI,WAAW,CAA4C;CAClF;AAED,gBAAgB;AAChB,qBAAa,gBAAiB,SAAQ,SAAS;gBAC1B,UAAU,EAAE,cAAc;IAE7B,IAAI,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI;CAa1D;AAED,gBAAgB;AAChB,qBAAa,kBAAmB,SAAQ,SAAS;gBAC5B,UAAU,EAAE,cAAc;IAK7B,IAAI,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI;CAI1D"}
|
|
@@ -61,20 +61,20 @@ class Primitive extends Graphic_1.Graphic {
|
|
|
61
61
|
collectStatistics(stats) {
|
|
62
62
|
this.cachedGeometry.collectStatistics(stats);
|
|
63
63
|
}
|
|
64
|
-
|
|
64
|
+
getPass(target) {
|
|
65
65
|
if (this.isPixelMode)
|
|
66
|
-
return
|
|
66
|
+
return "view-overlay";
|
|
67
67
|
switch (target.primitiveVisibility) {
|
|
68
68
|
case RenderTarget_1.PrimitiveVisibility.Uninstanced:
|
|
69
69
|
if (this.cachedGeometry.isInstanced)
|
|
70
|
-
return
|
|
70
|
+
return "none";
|
|
71
71
|
break;
|
|
72
72
|
case RenderTarget_1.PrimitiveVisibility.Instanced:
|
|
73
73
|
if (!this.cachedGeometry.isInstanced)
|
|
74
|
-
return
|
|
74
|
+
return "none";
|
|
75
75
|
break;
|
|
76
76
|
}
|
|
77
|
-
return this.cachedGeometry.
|
|
77
|
+
return this.cachedGeometry.getPass(target);
|
|
78
78
|
}
|
|
79
79
|
get hasFeatures() { return this.cachedGeometry.hasFeatures; }
|
|
80
80
|
addCommands(commands) { commands.addPrimitive(this); }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Primitive.js","sourceRoot":"","sources":["../../../../src/render/webgl/Primitive.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 WebGL\r\n */\r\n\r\nimport { assert, dispose } from \"@itwin/core-bentley\";\r\nimport { InstancedGraphicParams } from \"../InstancedGraphicParams\";\r\nimport { RenderMemory } from \"../RenderMemory\";\r\nimport { PrimitiveVisibility } from \"../RenderTarget\";\r\nimport { RenderAreaPattern } from \"../RenderSystem\";\r\nimport { CachedGeometry, LUTGeometry, SkySphereViewportQuadGeometry } from \"./CachedGeometry\";\r\nimport { DrawParams, PrimitiveCommand } from \"./DrawCommand\";\r\nimport { Graphic } from \"./Graphic\";\r\nimport { InstanceBuffers, InstancedGeometry, isInstancedGraphicParams, PatternBuffers } from \"./InstancedGeometry\";\r\nimport { RenderCommands } from \"./RenderCommands\";\r\nimport { RenderOrder, RenderPass } from \"./RenderFlags\";\r\nimport { ShaderProgramExecutor } from \"./ShaderProgram\";\r\nimport { System } from \"./System\";\r\nimport { Target } from \"./Target\";\r\nimport { TechniqueId } from \"./TechniqueId\";\r\n\r\n/** @internal */\r\nexport class Primitive extends Graphic {\r\n public cachedGeometry: CachedGeometry;\r\n public isPixelMode: boolean = false;\r\n\r\n protected constructor(cachedGeom: CachedGeometry) { super(); this.cachedGeometry = cachedGeom; }\r\n\r\n public static create(geom: CachedGeometry | undefined, instances?: InstancedGraphicParams | RenderAreaPattern): Primitive | undefined {\r\n if (!geom)\r\n return undefined;\r\n\r\n if (instances) {\r\n assert(geom instanceof LUTGeometry, \"Invalid geometry type for instancing\");\r\n if (instances instanceof PatternBuffers) {\r\n geom = InstancedGeometry.createPattern(geom, true, instances);\r\n } else {\r\n assert(isInstancedGraphicParams(instances));\r\n const range = InstanceBuffers.computeRange(geom.computeRange(), instances.transforms, instances.transformCenter);\r\n const instanceBuffers = InstanceBuffers.create(instances, range);\r\n if (!instanceBuffers)\r\n return undefined;\r\n\r\n geom = InstancedGeometry.create(geom, true, instanceBuffers);\r\n }\r\n }\r\n\r\n return new this(geom);\r\n }\r\n\r\n public static createShared(geom: CachedGeometry | undefined, instances?: InstanceBuffers | PatternBuffers): Primitive | undefined {\r\n if (!geom)\r\n return undefined;\r\n\r\n if (instances) {\r\n assert(geom instanceof LUTGeometry, \"Invalid geometry type for instancing\");\r\n if (instances instanceof InstanceBuffers)\r\n geom = InstancedGeometry.create(geom, false, instances);\r\n else\r\n geom = InstancedGeometry.createPattern(geom, false, instances);\r\n }\r\n\r\n return new this(geom);\r\n }\r\n\r\n public get isDisposed(): boolean { return this.cachedGeometry.isDisposed; }\r\n public get isPickable() { return false; }\r\n\r\n public dispose() {\r\n dispose(this.cachedGeometry);\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n this.cachedGeometry.collectStatistics(stats);\r\n }\r\n\r\n public getRenderPass(target: Target) {\r\n if (this.isPixelMode)\r\n return RenderPass.ViewOverlay;\r\n\r\n switch (target.primitiveVisibility) {\r\n case PrimitiveVisibility.Uninstanced:\r\n if (this.cachedGeometry.isInstanced)\r\n return RenderPass.None;\r\n break;\r\n case PrimitiveVisibility.Instanced:\r\n if (!this.cachedGeometry.isInstanced)\r\n return RenderPass.None;\r\n break;\r\n }\r\n\r\n return this.cachedGeometry.getRenderPass(target);\r\n }\r\n\r\n public get hasFeatures(): boolean { return this.cachedGeometry.hasFeatures; }\r\n\r\n public addCommands(commands: RenderCommands): void { commands.addPrimitive(this); }\r\n\r\n public override addHiliteCommands(commands: RenderCommands, pass: RenderPass): void {\r\n // Edges do not contribute to hilite pass.\r\n // Note that IsEdge() does not imply geom->ToEdge() => true...polylines can be edges too...\r\n if (!this.isEdge)\r\n commands.getCommands(pass).push(new PrimitiveCommand(this));\r\n }\r\n\r\n public get hasAnimation(): boolean { return this.cachedGeometry.hasAnimation; }\r\n public get isInstanced(): boolean { return this.cachedGeometry.isInstanced; }\r\n public get isLit(): boolean { return this.cachedGeometry.isLitSurface; }\r\n public get isEdge(): boolean { return this.cachedGeometry.isEdge; }\r\n public get renderOrder(): RenderOrder { return this.cachedGeometry.renderOrder; }\r\n public get hasMaterialAtlas(): boolean { return this.cachedGeometry.hasMaterialAtlas; }\r\n\r\n public override toPrimitive(): Primitive { return this; }\r\n\r\n private static _drawParams?: DrawParams;\r\n\r\n public static freeParams(): void { Primitive._drawParams = undefined; }\r\n\r\n public draw(shader: ShaderProgramExecutor): void {\r\n // ###TODO: local to world should be pushed before we're invoked...we shouldn't need to pass (or copy) it\r\n if (undefined === Primitive._drawParams)\r\n Primitive._drawParams = new DrawParams();\r\n\r\n const drawParams = Primitive._drawParams;\r\n drawParams.init(shader.params, this.cachedGeometry);\r\n shader.draw(drawParams);\r\n }\r\n\r\n public get techniqueId(): TechniqueId { return this.cachedGeometry.techniqueId; }\r\n}\r\n\r\n/** @internal */\r\nexport class SkyCubePrimitive extends Primitive {\r\n public constructor(cachedGeom: CachedGeometry) { super(cachedGeom); }\r\n\r\n public override draw(shader: ShaderProgramExecutor): void {\r\n // Alter viewport to maintain square aspect ratio of skybox images even as viewRect resizes\r\n const vh = shader.target.viewRect.height;\r\n const vw = shader.target.viewRect.width;\r\n if (vw > vh)\r\n System.instance.context.viewport(0, -(vw - vh) / 2, vw, vw);\r\n else\r\n System.instance.context.viewport(-(vh - vw) / 2, 0, vh, vh);\r\n\r\n super.draw(shader); // Draw the skybox cubemap\r\n\r\n System.instance.context.viewport(0, 0, vw, vh); // Restore viewport\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class SkySpherePrimitive extends Primitive {\r\n public constructor(cachedGeom: CachedGeometry) {\r\n super(cachedGeom);\r\n assert(cachedGeom instanceof SkySphereViewportQuadGeometry);\r\n }\r\n\r\n public override draw(shader: ShaderProgramExecutor): void {\r\n (this.cachedGeometry as SkySphereViewportQuadGeometry).initWorldPos(shader.target);\r\n super.draw(shader); // Draw the skybox sphere\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"Primitive.js","sourceRoot":"","sources":["../../../../src/render/webgl/Primitive.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 WebGL\r\n */\r\n\r\nimport { assert, dispose } from \"@itwin/core-bentley\";\r\nimport { InstancedGraphicParams } from \"../InstancedGraphicParams\";\r\nimport { RenderMemory } from \"../RenderMemory\";\r\nimport { PrimitiveVisibility } from \"../RenderTarget\";\r\nimport { RenderAreaPattern } from \"../RenderSystem\";\r\nimport { CachedGeometry, LUTGeometry, SkySphereViewportQuadGeometry } from \"./CachedGeometry\";\r\nimport { DrawParams, PrimitiveCommand } from \"./DrawCommand\";\r\nimport { Graphic } from \"./Graphic\";\r\nimport { InstanceBuffers, InstancedGeometry, isInstancedGraphicParams, PatternBuffers } from \"./InstancedGeometry\";\r\nimport { RenderCommands } from \"./RenderCommands\";\r\nimport { Pass, RenderOrder, RenderPass } from \"./RenderFlags\";\r\nimport { ShaderProgramExecutor } from \"./ShaderProgram\";\r\nimport { System } from \"./System\";\r\nimport { Target } from \"./Target\";\r\nimport { TechniqueId } from \"./TechniqueId\";\r\n\r\n/** @internal */\r\nexport class Primitive extends Graphic {\r\n public cachedGeometry: CachedGeometry;\r\n public isPixelMode: boolean = false;\r\n\r\n protected constructor(cachedGeom: CachedGeometry) { super(); this.cachedGeometry = cachedGeom; }\r\n\r\n public static create(geom: CachedGeometry | undefined, instances?: InstancedGraphicParams | RenderAreaPattern): Primitive | undefined {\r\n if (!geom)\r\n return undefined;\r\n\r\n if (instances) {\r\n assert(geom instanceof LUTGeometry, \"Invalid geometry type for instancing\");\r\n if (instances instanceof PatternBuffers) {\r\n geom = InstancedGeometry.createPattern(geom, true, instances);\r\n } else {\r\n assert(isInstancedGraphicParams(instances));\r\n const range = InstanceBuffers.computeRange(geom.computeRange(), instances.transforms, instances.transformCenter);\r\n const instanceBuffers = InstanceBuffers.create(instances, range);\r\n if (!instanceBuffers)\r\n return undefined;\r\n\r\n geom = InstancedGeometry.create(geom, true, instanceBuffers);\r\n }\r\n }\r\n\r\n return new this(geom);\r\n }\r\n\r\n public static createShared(geom: CachedGeometry | undefined, instances?: InstanceBuffers | PatternBuffers): Primitive | undefined {\r\n if (!geom)\r\n return undefined;\r\n\r\n if (instances) {\r\n assert(geom instanceof LUTGeometry, \"Invalid geometry type for instancing\");\r\n if (instances instanceof InstanceBuffers)\r\n geom = InstancedGeometry.create(geom, false, instances);\r\n else\r\n geom = InstancedGeometry.createPattern(geom, false, instances);\r\n }\r\n\r\n return new this(geom);\r\n }\r\n\r\n public get isDisposed(): boolean { return this.cachedGeometry.isDisposed; }\r\n public get isPickable() { return false; }\r\n\r\n public dispose() {\r\n dispose(this.cachedGeometry);\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n this.cachedGeometry.collectStatistics(stats);\r\n }\r\n\r\n public getPass(target: Target): Pass {\r\n if (this.isPixelMode)\r\n return \"view-overlay\";\r\n\r\n switch (target.primitiveVisibility) {\r\n case PrimitiveVisibility.Uninstanced:\r\n if (this.cachedGeometry.isInstanced)\r\n return \"none\";\r\n break;\r\n case PrimitiveVisibility.Instanced:\r\n if (!this.cachedGeometry.isInstanced)\r\n return \"none\";\r\n break;\r\n }\r\n\r\n return this.cachedGeometry.getPass(target);\r\n }\r\n\r\n public get hasFeatures(): boolean { return this.cachedGeometry.hasFeatures; }\r\n\r\n public addCommands(commands: RenderCommands): void { commands.addPrimitive(this); }\r\n\r\n public override addHiliteCommands(commands: RenderCommands, pass: RenderPass): void {\r\n // Edges do not contribute to hilite pass.\r\n // Note that IsEdge() does not imply geom->ToEdge() => true...polylines can be edges too...\r\n if (!this.isEdge)\r\n commands.getCommands(pass).push(new PrimitiveCommand(this));\r\n }\r\n\r\n public get hasAnimation(): boolean { return this.cachedGeometry.hasAnimation; }\r\n public get isInstanced(): boolean { return this.cachedGeometry.isInstanced; }\r\n public get isLit(): boolean { return this.cachedGeometry.isLitSurface; }\r\n public get isEdge(): boolean { return this.cachedGeometry.isEdge; }\r\n public get renderOrder(): RenderOrder { return this.cachedGeometry.renderOrder; }\r\n public get hasMaterialAtlas(): boolean { return this.cachedGeometry.hasMaterialAtlas; }\r\n\r\n public override toPrimitive(): Primitive { return this; }\r\n\r\n private static _drawParams?: DrawParams;\r\n\r\n public static freeParams(): void { Primitive._drawParams = undefined; }\r\n\r\n public draw(shader: ShaderProgramExecutor): void {\r\n // ###TODO: local to world should be pushed before we're invoked...we shouldn't need to pass (or copy) it\r\n if (undefined === Primitive._drawParams)\r\n Primitive._drawParams = new DrawParams();\r\n\r\n const drawParams = Primitive._drawParams;\r\n drawParams.init(shader.params, this.cachedGeometry);\r\n shader.draw(drawParams);\r\n }\r\n\r\n public get techniqueId(): TechniqueId { return this.cachedGeometry.techniqueId; }\r\n}\r\n\r\n/** @internal */\r\nexport class SkyCubePrimitive extends Primitive {\r\n public constructor(cachedGeom: CachedGeometry) { super(cachedGeom); }\r\n\r\n public override draw(shader: ShaderProgramExecutor): void {\r\n // Alter viewport to maintain square aspect ratio of skybox images even as viewRect resizes\r\n const vh = shader.target.viewRect.height;\r\n const vw = shader.target.viewRect.width;\r\n if (vw > vh)\r\n System.instance.context.viewport(0, -(vw - vh) / 2, vw, vw);\r\n else\r\n System.instance.context.viewport(-(vh - vw) / 2, 0, vh, vh);\r\n\r\n super.draw(shader); // Draw the skybox cubemap\r\n\r\n System.instance.context.viewport(0, 0, vw, vh); // Restore viewport\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class SkySpherePrimitive extends Primitive {\r\n public constructor(cachedGeom: CachedGeometry) {\r\n super(cachedGeom);\r\n assert(cachedGeom instanceof SkySphereViewportQuadGeometry);\r\n }\r\n\r\n public override draw(shader: ShaderProgramExecutor): void {\r\n (this.cachedGeometry as SkySphereViewportQuadGeometry).initWorldPos(shader.target);\r\n super.draw(shader); // Draw the skybox sphere\r\n }\r\n}\r\n"]}
|
|
@@ -12,7 +12,7 @@ import { TerrainMeshPrimitive } from "../primitives/mesh/TerrainMeshPrimitive";
|
|
|
12
12
|
import { RenderGraphic } from "../RenderGraphic";
|
|
13
13
|
import { RenderMemory } from "../RenderMemory";
|
|
14
14
|
import { RenderSystem, TerrainTexture } from "../RenderSystem";
|
|
15
|
-
import { RenderOrder
|
|
15
|
+
import { RenderOrder } from "./RenderFlags";
|
|
16
16
|
import { Target } from "./Target";
|
|
17
17
|
import { TechniqueId } from "./TechniqueId";
|
|
18
18
|
/** @internal */
|
|
@@ -56,7 +56,7 @@ export declare class RealityMeshGeometry extends IndexedGeometry implements IDis
|
|
|
56
56
|
static createGraphic(system: RenderSystem, realityMesh: RealityMeshGeometry, featureTable: PackedFeatureTable, tileId: string | undefined, baseColor: ColorDef | undefined, baseTransparent: boolean, textures?: TerrainTexture[]): RenderGraphic | undefined;
|
|
57
57
|
collectStatistics(stats: RenderMemory.Statistics): void;
|
|
58
58
|
get techniqueId(): TechniqueId;
|
|
59
|
-
|
|
59
|
+
getPass(target: Target): "none" | "opaque" | "translucent";
|
|
60
60
|
get renderOrder(): RenderOrder;
|
|
61
61
|
draw(): void;
|
|
62
62
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RealityMesh.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/RealityMesh.ts"],"names":[],"mappings":"AAKA;;GAEG;AAEH,OAAO,EAAmB,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAW,OAAO,EAAE,SAAS,EAAY,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAgB,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAE/F,OAAO,EAAE,YAAY,EAAoB,eAAe,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACtG,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAG/D,OAAO,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"RealityMesh.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/RealityMesh.ts"],"names":[],"mappings":"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"}
|
|
@@ -201,12 +201,12 @@ class RealityMeshGeometry extends CachedGeometry_1.IndexedGeometry {
|
|
|
201
201
|
this._isTerrain ? stats.addTerrain(this._realityMeshParams.bytesUsed) : stats.addRealityMesh(this._realityMeshParams.bytesUsed);
|
|
202
202
|
}
|
|
203
203
|
get techniqueId() { return 7 /* RealityMesh */; }
|
|
204
|
-
|
|
204
|
+
getPass(target) {
|
|
205
205
|
if (target.isDrawingShadowMap)
|
|
206
|
-
return
|
|
206
|
+
return "none";
|
|
207
207
|
if (this._baseIsTransparent || (target.wantThematicDisplay && target.uniforms.thematic.wantIsoLines))
|
|
208
|
-
return
|
|
209
|
-
return
|
|
208
|
+
return "translucent";
|
|
209
|
+
return "opaque";
|
|
210
210
|
}
|
|
211
211
|
get renderOrder() { return 3 /* UnlitSurface */; }
|
|
212
212
|
draw() {
|