@itwin/core-frontend 4.10.0-dev.2 → 4.10.0-dev.22
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/CHANGELOG.md +33 -1
- package/lib/cjs/AccuSnap.d.ts.map +1 -1
- package/lib/cjs/AccuSnap.js +9 -5
- package/lib/cjs/AccuSnap.js.map +1 -1
- 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/HitDetail.d.ts +4 -0
- package/lib/cjs/HitDetail.d.ts.map +1 -1
- package/lib/cjs/HitDetail.js +3 -0
- package/lib/cjs/HitDetail.js.map +1 -1
- package/lib/cjs/IModelConnection.d.ts +1 -0
- package/lib/cjs/IModelConnection.d.ts.map +1 -1
- package/lib/cjs/IModelConnection.js +2 -1
- package/lib/cjs/IModelConnection.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/SheetViewState.d.ts +0 -1
- package/lib/cjs/SheetViewState.d.ts.map +1 -1
- package/lib/cjs/SheetViewState.js +0 -1
- package/lib/cjs/SheetViewState.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/WorkerProxy.d.ts +8 -4
- package/lib/cjs/common/WorkerProxy.d.ts.map +1 -1
- package/lib/cjs/common/WorkerProxy.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 +27 -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/internal/render/VertexTable.d.ts.map +1 -1
- package/lib/cjs/common/internal/render/VertexTable.js +3 -5
- package/lib/cjs/common/internal/render/VertexTable.js.map +1 -1
- 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/GraphicBranch.d.ts +10 -1
- package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
- package/lib/cjs/render/GraphicBranch.js.map +1 -1
- 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/Pixel.d.ts +6 -0
- package/lib/cjs/render/Pixel.d.ts.map +1 -1
- package/lib/cjs/render/Pixel.js +2 -0
- package/lib/cjs/render/Pixel.js.map +1 -1
- package/lib/cjs/render/RealityMeshGraphicParams.d.ts +1 -0
- package/lib/cjs/render/RealityMeshGraphicParams.d.ts.map +1 -1
- package/lib/cjs/render/RealityMeshGraphicParams.js.map +1 -1
- package/lib/cjs/render/RenderMemory.d.ts +2 -0
- package/lib/cjs/render/RenderMemory.d.ts.map +1 -1
- package/lib/cjs/render/RenderMemory.js +2 -0
- package/lib/cjs/render/RenderMemory.js.map +1 -1
- package/lib/cjs/render/RenderPlan.d.ts +2 -1
- package/lib/cjs/render/RenderPlan.d.ts.map +1 -1
- package/lib/cjs/render/RenderPlan.js +2 -0
- package/lib/cjs/render/RenderPlan.js.map +1 -1
- package/lib/cjs/render/RenderSystem.d.ts +59 -11
- package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
- package/lib/cjs/render/RenderSystem.js +44 -6
- 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.d.ts +4 -0
- package/lib/cjs/render/webgl/BatchUniforms.d.ts.map +1 -1
- package/lib/cjs/render/webgl/BatchUniforms.js +18 -0
- package/lib/cjs/render/webgl/BatchUniforms.js.map +1 -1
- package/lib/cjs/render/webgl/BranchState.d.ts +7 -0
- package/lib/cjs/render/webgl/BranchState.d.ts.map +1 -1
- package/lib/cjs/render/webgl/BranchState.js +4 -0
- package/lib/cjs/render/webgl/BranchState.js.map +1 -1
- package/lib/cjs/render/webgl/BranchUniforms.d.ts +1 -0
- package/lib/cjs/render/webgl/BranchUniforms.d.ts.map +1 -1
- package/lib/cjs/render/webgl/BranchUniforms.js +14 -1
- package/lib/cjs/render/webgl/BranchUniforms.js.map +1 -1
- package/lib/cjs/render/webgl/ContourUniforms.d.ts +22 -0
- package/lib/cjs/render/webgl/ContourUniforms.d.ts.map +1 -0
- package/lib/cjs/render/webgl/ContourUniforms.js +98 -0
- package/lib/cjs/render/webgl/ContourUniforms.js.map +1 -0
- package/lib/cjs/render/webgl/Contours.d.ts +34 -0
- package/lib/cjs/render/webgl/Contours.d.ts.map +1 -0
- package/lib/cjs/render/webgl/Contours.js +127 -0
- package/lib/cjs/render/webgl/Contours.js.map +1 -0
- 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 +1 -1
- package/lib/cjs/render/webgl/EdgeSettings.js.map +1 -1
- package/lib/cjs/render/webgl/FeatureOverrides.d.ts +2 -0
- package/lib/cjs/render/webgl/FeatureOverrides.d.ts.map +1 -1
- package/lib/cjs/render/webgl/FeatureOverrides.js +83 -69
- package/lib/cjs/render/webgl/FeatureOverrides.js.map +1 -1
- package/lib/cjs/render/webgl/GL.d.ts +2 -1
- package/lib/cjs/render/webgl/GL.d.ts.map +1 -1
- package/lib/cjs/render/webgl/GL.js +1 -0
- package/lib/cjs/render/webgl/GL.js.map +1 -1
- package/lib/cjs/render/webgl/Graphic.d.ts +9 -0
- package/lib/cjs/render/webgl/Graphic.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Graphic.js +27 -0
- package/lib/cjs/render/webgl/Graphic.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 +7 -1
- package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
- package/lib/cjs/render/webgl/RenderFlags.d.ts +2 -19
- package/lib/cjs/render/webgl/RenderFlags.d.ts.map +1 -1
- package/lib/cjs/render/webgl/RenderFlags.js +2 -0
- package/lib/cjs/render/webgl/RenderFlags.js.map +1 -1
- package/lib/cjs/render/webgl/SceneCompositor.d.ts.map +1 -1
- package/lib/cjs/render/webgl/SceneCompositor.js +12 -3
- package/lib/cjs/render/webgl/SceneCompositor.js.map +1 -1
- package/lib/cjs/render/webgl/ShaderBuilder.d.ts +15 -13
- package/lib/cjs/render/webgl/ShaderBuilder.d.ts.map +1 -1
- package/lib/cjs/render/webgl/ShaderBuilder.js +18 -10
- package/lib/cjs/render/webgl/ShaderBuilder.js.map +1 -1
- package/lib/cjs/render/webgl/ShaderProgram.d.ts.map +1 -1
- package/lib/cjs/render/webgl/ShaderProgram.js +26 -0
- package/lib/cjs/render/webgl/ShaderProgram.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 +24 -1
- package/lib/cjs/render/webgl/Target.js.map +1 -1
- package/lib/cjs/render/webgl/TargetUniforms.d.ts +2 -0
- package/lib/cjs/render/webgl/TargetUniforms.d.ts.map +1 -1
- package/lib/cjs/render/webgl/TargetUniforms.js +2 -0
- package/lib/cjs/render/webgl/TargetUniforms.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/AmbientOcclusion.js +1 -1
- package/lib/cjs/render/webgl/glsl/Atmosphere.js +1 -1
- package/lib/cjs/render/webgl/glsl/Blur.js +1 -1
- package/lib/cjs/render/webgl/glsl/ClearPickAndColor.js +1 -1
- package/lib/cjs/render/webgl/glsl/ClearTranslucent.js +1 -1
- package/lib/cjs/render/webgl/glsl/Clipping.js +1 -1
- package/lib/cjs/render/webgl/glsl/Combine3Textures.js +1 -1
- package/lib/cjs/render/webgl/glsl/CombineTextures.js +1 -1
- package/lib/cjs/render/webgl/glsl/Composite.js +1 -1
- package/lib/cjs/render/webgl/glsl/Contours.d.ts +4 -0
- package/lib/cjs/render/webgl/glsl/Contours.d.ts.map +1 -0
- package/lib/cjs/render/webgl/glsl/Contours.js +138 -0
- package/lib/cjs/render/webgl/glsl/Contours.js.map +1 -0
- package/lib/cjs/render/webgl/glsl/CopyColor.js +1 -1
- package/lib/cjs/render/webgl/glsl/CopyPickBuffers.js +1 -1
- package/lib/cjs/render/webgl/glsl/CopyStencil.js +5 -5
- package/lib/cjs/render/webgl/glsl/EDL.js +4 -4
- package/lib/cjs/render/webgl/glsl/EVSMFromDepth.js +1 -1
- package/lib/cjs/render/webgl/glsl/Edge.js +1 -1
- package/lib/cjs/render/webgl/glsl/FeatureSymbology.d.ts +2 -1
- package/lib/cjs/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/FeatureSymbology.js +28 -15
- package/lib/cjs/render/webgl/glsl/FeatureSymbology.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Fragment.js +9 -9
- package/lib/cjs/render/webgl/glsl/LogarithmicDepthBuffer.js +1 -1
- package/lib/cjs/render/webgl/glsl/PlanarClassification.js +4 -4
- package/lib/cjs/render/webgl/glsl/PointCloud.js +1 -1
- package/lib/cjs/render/webgl/glsl/RealityMesh.js +3 -3
- package/lib/cjs/render/webgl/glsl/ScreenSpaceEffect.js +1 -1
- package/lib/cjs/render/webgl/glsl/SkyBox.js +1 -1
- package/lib/cjs/render/webgl/glsl/SkySphere.js +1 -1
- package/lib/cjs/render/webgl/glsl/SolarShadowMapping.js +1 -1
- package/lib/cjs/render/webgl/glsl/Surface.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Surface.js +5 -3
- package/lib/cjs/render/webgl/glsl/Surface.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Translucency.js +1 -1
- package/lib/cjs/render/webgl/glsl/Wiremesh.js +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/cjs/tile/TileDrawArgs.d.ts +4 -0
- package/lib/cjs/tile/TileDrawArgs.d.ts.map +1 -1
- package/lib/cjs/tile/TileDrawArgs.js +2 -0
- package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
- package/lib/cjs/tile/TileTreeReference.d.ts +2 -0
- package/lib/cjs/tile/TileTreeReference.d.ts.map +1 -1
- package/lib/cjs/tile/TileTreeReference.js +3 -0
- package/lib/cjs/tile/TileTreeReference.js.map +1 -1
- package/lib/cjs/tile/map/MapTile.js +1 -1
- package/lib/cjs/tile/map/MapTile.js.map +1 -1
- package/lib/esm/AccuSnap.d.ts.map +1 -1
- package/lib/esm/AccuSnap.js +9 -5
- package/lib/esm/AccuSnap.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/HitDetail.d.ts +4 -0
- package/lib/esm/HitDetail.d.ts.map +1 -1
- package/lib/esm/HitDetail.js +3 -0
- package/lib/esm/HitDetail.js.map +1 -1
- package/lib/esm/IModelConnection.d.ts +1 -0
- package/lib/esm/IModelConnection.d.ts.map +1 -1
- package/lib/esm/IModelConnection.js +2 -1
- package/lib/esm/IModelConnection.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/SheetViewState.d.ts +0 -1
- package/lib/esm/SheetViewState.d.ts.map +1 -1
- package/lib/esm/SheetViewState.js +0 -1
- package/lib/esm/SheetViewState.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/WorkerProxy.d.ts +8 -4
- package/lib/esm/common/WorkerProxy.d.ts.map +1 -1
- package/lib/esm/common/WorkerProxy.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 +27 -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/internal/render/VertexTable.d.ts.map +1 -1
- package/lib/esm/common/internal/render/VertexTable.js +3 -5
- package/lib/esm/common/internal/render/VertexTable.js.map +1 -1
- 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/GraphicBranch.d.ts +10 -1
- package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
- package/lib/esm/render/GraphicBranch.js.map +1 -1
- 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/Pixel.d.ts +6 -0
- package/lib/esm/render/Pixel.d.ts.map +1 -1
- package/lib/esm/render/Pixel.js +2 -0
- package/lib/esm/render/Pixel.js.map +1 -1
- package/lib/esm/render/RealityMeshGraphicParams.d.ts +1 -0
- package/lib/esm/render/RealityMeshGraphicParams.d.ts.map +1 -1
- package/lib/esm/render/RealityMeshGraphicParams.js.map +1 -1
- package/lib/esm/render/RenderMemory.d.ts +2 -0
- package/lib/esm/render/RenderMemory.d.ts.map +1 -1
- package/lib/esm/render/RenderMemory.js +2 -0
- package/lib/esm/render/RenderMemory.js.map +1 -1
- package/lib/esm/render/RenderPlan.d.ts +2 -1
- package/lib/esm/render/RenderPlan.d.ts.map +1 -1
- package/lib/esm/render/RenderPlan.js +2 -0
- package/lib/esm/render/RenderPlan.js.map +1 -1
- package/lib/esm/render/RenderSystem.d.ts +59 -11
- package/lib/esm/render/RenderSystem.d.ts.map +1 -1
- package/lib/esm/render/RenderSystem.js +46 -8
- 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.d.ts +4 -0
- package/lib/esm/render/webgl/BatchUniforms.d.ts.map +1 -1
- package/lib/esm/render/webgl/BatchUniforms.js +18 -0
- package/lib/esm/render/webgl/BatchUniforms.js.map +1 -1
- package/lib/esm/render/webgl/BranchState.d.ts +7 -0
- package/lib/esm/render/webgl/BranchState.d.ts.map +1 -1
- package/lib/esm/render/webgl/BranchState.js +4 -0
- package/lib/esm/render/webgl/BranchState.js.map +1 -1
- package/lib/esm/render/webgl/BranchUniforms.d.ts +1 -0
- package/lib/esm/render/webgl/BranchUniforms.d.ts.map +1 -1
- package/lib/esm/render/webgl/BranchUniforms.js +14 -1
- package/lib/esm/render/webgl/BranchUniforms.js.map +1 -1
- package/lib/esm/render/webgl/ContourUniforms.d.ts +22 -0
- package/lib/esm/render/webgl/ContourUniforms.d.ts.map +1 -0
- package/lib/esm/render/webgl/ContourUniforms.js +94 -0
- package/lib/esm/render/webgl/ContourUniforms.js.map +1 -0
- package/lib/esm/render/webgl/Contours.d.ts +34 -0
- package/lib/esm/render/webgl/Contours.d.ts.map +1 -0
- package/lib/esm/render/webgl/Contours.js +123 -0
- package/lib/esm/render/webgl/Contours.js.map +1 -0
- 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 +1 -1
- package/lib/esm/render/webgl/EdgeSettings.js.map +1 -1
- package/lib/esm/render/webgl/FeatureOverrides.d.ts +2 -0
- package/lib/esm/render/webgl/FeatureOverrides.d.ts.map +1 -1
- package/lib/esm/render/webgl/FeatureOverrides.js +83 -69
- package/lib/esm/render/webgl/FeatureOverrides.js.map +1 -1
- package/lib/esm/render/webgl/GL.d.ts +2 -1
- package/lib/esm/render/webgl/GL.d.ts.map +1 -1
- package/lib/esm/render/webgl/GL.js +1 -0
- package/lib/esm/render/webgl/GL.js.map +1 -1
- package/lib/esm/render/webgl/Graphic.d.ts +9 -0
- package/lib/esm/render/webgl/Graphic.d.ts.map +1 -1
- package/lib/esm/render/webgl/Graphic.js +27 -0
- package/lib/esm/render/webgl/Graphic.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 +7 -1
- package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
- package/lib/esm/render/webgl/RenderFlags.d.ts +2 -19
- package/lib/esm/render/webgl/RenderFlags.d.ts.map +1 -1
- package/lib/esm/render/webgl/RenderFlags.js +2 -0
- package/lib/esm/render/webgl/RenderFlags.js.map +1 -1
- package/lib/esm/render/webgl/SceneCompositor.d.ts.map +1 -1
- package/lib/esm/render/webgl/SceneCompositor.js +12 -3
- package/lib/esm/render/webgl/SceneCompositor.js.map +1 -1
- package/lib/esm/render/webgl/ShaderBuilder.d.ts +15 -13
- package/lib/esm/render/webgl/ShaderBuilder.d.ts.map +1 -1
- package/lib/esm/render/webgl/ShaderBuilder.js +18 -10
- package/lib/esm/render/webgl/ShaderBuilder.js.map +1 -1
- package/lib/esm/render/webgl/ShaderProgram.d.ts.map +1 -1
- package/lib/esm/render/webgl/ShaderProgram.js +26 -0
- package/lib/esm/render/webgl/ShaderProgram.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 +24 -1
- package/lib/esm/render/webgl/Target.js.map +1 -1
- package/lib/esm/render/webgl/TargetUniforms.d.ts +2 -0
- package/lib/esm/render/webgl/TargetUniforms.d.ts.map +1 -1
- package/lib/esm/render/webgl/TargetUniforms.js +2 -0
- package/lib/esm/render/webgl/TargetUniforms.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/AmbientOcclusion.js +1 -1
- package/lib/esm/render/webgl/glsl/Atmosphere.js +1 -1
- package/lib/esm/render/webgl/glsl/Blur.js +1 -1
- package/lib/esm/render/webgl/glsl/ClearPickAndColor.js +1 -1
- package/lib/esm/render/webgl/glsl/ClearTranslucent.js +1 -1
- package/lib/esm/render/webgl/glsl/Clipping.js +1 -1
- package/lib/esm/render/webgl/glsl/Combine3Textures.js +1 -1
- package/lib/esm/render/webgl/glsl/CombineTextures.js +1 -1
- package/lib/esm/render/webgl/glsl/Composite.js +1 -1
- package/lib/esm/render/webgl/glsl/Contours.d.ts +4 -0
- package/lib/esm/render/webgl/glsl/Contours.d.ts.map +1 -0
- package/lib/esm/render/webgl/glsl/Contours.js +134 -0
- package/lib/esm/render/webgl/glsl/Contours.js.map +1 -0
- package/lib/esm/render/webgl/glsl/CopyColor.js +1 -1
- package/lib/esm/render/webgl/glsl/CopyPickBuffers.js +1 -1
- package/lib/esm/render/webgl/glsl/CopyStencil.js +5 -5
- package/lib/esm/render/webgl/glsl/EDL.js +4 -4
- package/lib/esm/render/webgl/glsl/EVSMFromDepth.js +1 -1
- package/lib/esm/render/webgl/glsl/Edge.js +1 -1
- package/lib/esm/render/webgl/glsl/FeatureSymbology.d.ts +2 -1
- package/lib/esm/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/FeatureSymbology.js +27 -15
- package/lib/esm/render/webgl/glsl/FeatureSymbology.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Fragment.js +9 -9
- package/lib/esm/render/webgl/glsl/LogarithmicDepthBuffer.js +1 -1
- package/lib/esm/render/webgl/glsl/PlanarClassification.js +4 -4
- package/lib/esm/render/webgl/glsl/PointCloud.js +1 -1
- package/lib/esm/render/webgl/glsl/RealityMesh.js +3 -3
- package/lib/esm/render/webgl/glsl/ScreenSpaceEffect.js +1 -1
- package/lib/esm/render/webgl/glsl/SkyBox.js +1 -1
- package/lib/esm/render/webgl/glsl/SkySphere.js +1 -1
- package/lib/esm/render/webgl/glsl/SolarShadowMapping.js +1 -1
- package/lib/esm/render/webgl/glsl/Surface.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Surface.js +5 -3
- package/lib/esm/render/webgl/glsl/Surface.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Translucency.js +1 -1
- package/lib/esm/render/webgl/glsl/Wiremesh.js +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/esm/tile/TileDrawArgs.d.ts +4 -0
- package/lib/esm/tile/TileDrawArgs.d.ts.map +1 -1
- package/lib/esm/tile/TileDrawArgs.js +2 -0
- package/lib/esm/tile/TileDrawArgs.js.map +1 -1
- package/lib/esm/tile/TileTreeReference.d.ts +2 -0
- package/lib/esm/tile/TileTreeReference.d.ts.map +1 -1
- package/lib/esm/tile/TileTreeReference.js +3 -0
- package/lib/esm/tile/TileTreeReference.js.map +1 -1
- package/lib/esm/tile/map/MapTile.js +1 -1
- package/lib/esm/tile/map/MapTile.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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Mesh.js","sourceRoot":"","sources":["../../../../src/render/webgl/Mesh.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, Range3d } from \"@itwin/core-geometry\";\r\nimport { InstancedGraphicParams } from \"../../common/render/InstancedGraphicParams\";\r\nimport { MeshParams } from \"../../common/internal/render/MeshParams\";\r\nimport { SurfaceType } from \"../../common/internal/render/SurfaceParams\";\r\nimport { RenderMemory } from \"../RenderMemory\";\r\nimport { RenderGeometry } from \"../RenderSystem\";\r\nimport { CachedGeometry } from \"./CachedGeometry\";\r\nimport { Graphic } from \"./Graphic\";\r\nimport { InstanceBuffers, PatternBuffers } from \"./InstancedGeometry\";\r\nimport { Primitive } from \"./Primitive\";\r\nimport { RenderCommands } from \"./RenderCommands\";\r\nimport { RenderPass } from \"./RenderFlags\";\r\nimport { EdgeGeometry, PolylineEdgeGeometry, SilhouetteEdgeGeometry } from \"./EdgeGeometry\";\r\nimport { IndexedEdgeGeometry } from \"./IndexedEdgeGeometry\";\r\nimport { SurfaceGeometry } from \"./SurfaceGeometry\";\r\nimport { MeshData } from \"./MeshData\";\r\n\r\n/** @internal */\r\nexport class MeshRenderGeometry {\r\n public readonly data: MeshData;\r\n public readonly surface?: SurfaceGeometry;\r\n public readonly segmentEdges?: EdgeGeometry;\r\n public readonly silhouetteEdges?: SilhouetteEdgeGeometry;\r\n public readonly polylineEdges?: PolylineEdgeGeometry;\r\n public readonly indexedEdges?: IndexedEdgeGeometry;\r\n public readonly range: Range3d;\r\n\r\n private constructor(data: MeshData, params: MeshParams) {\r\n this.data = data;\r\n this.range = params.vertices.qparams.computeRange();\r\n this.surface = SurfaceGeometry.create(data, params.surface.indices);\r\n const edges = params.edges;\r\n if (!edges || data.type === SurfaceType.VolumeClassifier)\r\n return;\r\n\r\n if (edges.silhouettes)\r\n this.silhouetteEdges = SilhouetteEdgeGeometry.createSilhouettes(data, edges.silhouettes);\r\n\r\n if (edges.segments)\r\n this.segmentEdges = EdgeGeometry.create(data, edges.segments);\r\n\r\n if (edges.polylines)\r\n this.polylineEdges = PolylineEdgeGeometry.create(data, edges.polylines);\r\n\r\n if (edges.indexed)\r\n this.indexedEdges = IndexedEdgeGeometry.create(data, edges.indexed);\r\n }\r\n\r\n public static create(params: MeshParams, viewIndependentOrigin: Point3d | undefined): MeshRenderGeometry | undefined {\r\n const data = MeshData.create(params, viewIndependentOrigin);\r\n return data ? new this(data, params) : undefined;\r\n }\r\n\r\n public dispose() {\r\n dispose(this.data);\r\n dispose(this.surface);\r\n dispose(this.segmentEdges);\r\n dispose(this.silhouetteEdges);\r\n dispose(this.polylineEdges);\r\n dispose(this.indexedEdges);\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics) {\r\n this.data.collectStatistics(stats);\r\n this.surface?.collectStatistics(stats);\r\n this.segmentEdges?.collectStatistics(stats);\r\n this.silhouetteEdges?.collectStatistics(stats);\r\n this.polylineEdges?.collectStatistics(stats);\r\n this.indexedEdges?.collectStatistics(stats);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class MeshGraphic extends Graphic {\r\n public readonly meshData: MeshData;\r\n private readonly _primitives: Primitive[] = [];\r\n private readonly _instances?: InstanceBuffers | PatternBuffers;\r\n private readonly _meshRange: Range3d;\r\n\r\n public get primitives(): readonly Primitive[] { return this._primitives; }\r\n public get meshRange(): Readonly<Range3d> { return this._meshRange; }\r\n\r\n public static create(geometry: MeshRenderGeometry, instances?: InstancedGraphicParams | PatternBuffers): MeshGraphic | undefined {\r\n let buffers;\r\n if (instances) {\r\n if (instances instanceof PatternBuffers) {\r\n buffers = instances;\r\n } else {\r\n const instancesRange = instances.range ?? InstanceBuffers.computeRange(geometry.range, instances.transforms, instances.transformCenter);\r\n buffers = InstanceBuffers.create(instances, instancesRange);\r\n if (!buffers)\r\n return undefined;\r\n }\r\n }\r\n\r\n return new MeshGraphic(geometry, buffers);\r\n }\r\n\r\n private addPrimitive(geometry: RenderGeometry | undefined) {\r\n if (!geometry)\r\n return;\r\n\r\n assert(geometry instanceof CachedGeometry);\r\n const primitive = Primitive.createShared(geometry, this._instances);\r\n if (primitive)\r\n this._primitives.push(primitive);\r\n }\r\n\r\n private constructor(geometry: MeshRenderGeometry, instances?: InstanceBuffers | PatternBuffers) {\r\n super();\r\n this.meshData = geometry.data;\r\n this._meshRange = geometry.range;\r\n this._instances = instances;\r\n\r\n this.addPrimitive(geometry.surface);\r\n this.addPrimitive(geometry.segmentEdges);\r\n this.addPrimitive(geometry.silhouetteEdges);\r\n this.addPrimitive(geometry.polylineEdges);\r\n this.addPrimitive(geometry.indexedEdges);\r\n }\r\n\r\n public get isDisposed(): boolean { return this.meshData.isDisposed && 0 === this._primitives.length; }\r\n public get isPickable() { return false; }\r\n\r\n public dispose() {\r\n for (const primitive of this._primitives)\r\n dispose(primitive);\r\n\r\n dispose(this.meshData);\r\n dispose(this._instances);\r\n this._primitives.length = 0;\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n this.meshData.collectStatistics(stats);\r\n this._primitives.forEach((prim) => prim.collectStatistics(stats));\r\n this._instances?.collectStatistics(stats);\r\n }\r\n\r\n public override unionRange(range: Range3d) {\r\n if (this._instances)\r\n range.extendRange(range);\r\n else\r\n range.extendRange(this._meshRange);\r\n }\r\n\r\n public addCommands(cmds: RenderCommands): void { this._primitives.forEach((prim) => prim.addCommands(cmds)); }\r\n public override addHiliteCommands(cmds: RenderCommands, pass: RenderPass): void { this._primitives.forEach((prim) => prim.addHiliteCommands(cmds, pass)); }\r\n\r\n public get surfaceType(): SurfaceType { return this.meshData.type; }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"Mesh.js","sourceRoot":"","sources":["../../../../src/render/webgl/Mesh.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, Range3d } from \"@itwin/core-geometry\";\r\nimport { MeshParams } from \"../../common/internal/render/MeshParams\";\r\nimport { SurfaceType } from \"../../common/internal/render/SurfaceParams\";\r\nimport { RenderMemory } from \"../RenderMemory\";\r\nimport { CachedGeometry } from \"./CachedGeometry\";\r\nimport { Graphic } from \"./Graphic\";\r\nimport { InstanceBuffers, PatternBuffers } from \"./InstancedGeometry\";\r\nimport { Primitive } from \"./Primitive\";\r\nimport { RenderCommands } from \"./RenderCommands\";\r\nimport { RenderPass } from \"./RenderFlags\";\r\nimport { EdgeGeometry, PolylineEdgeGeometry, SilhouetteEdgeGeometry } from \"./EdgeGeometry\";\r\nimport { IndexedEdgeGeometry } from \"./IndexedEdgeGeometry\";\r\nimport { SurfaceGeometry } from \"./SurfaceGeometry\";\r\nimport { MeshData } from \"./MeshData\";\r\nimport { RenderGeometry } from \"../../internal/render/RenderGeometry\";\r\n\r\n/** @internal */\r\nexport class MeshRenderGeometry implements RenderGeometry {\r\n public readonly renderGeometryType: \"mesh\" = \"mesh\" as const;\r\n public readonly isInstanceable: boolean;\r\n public noDispose = false;\r\n public readonly data: MeshData;\r\n public readonly surface?: SurfaceGeometry;\r\n public readonly segmentEdges?: EdgeGeometry;\r\n public readonly silhouetteEdges?: SilhouetteEdgeGeometry;\r\n public readonly polylineEdges?: PolylineEdgeGeometry;\r\n public readonly indexedEdges?: IndexedEdgeGeometry;\r\n public readonly range: Range3d;\r\n\r\n private constructor(data: MeshData, params: MeshParams) {\r\n this.data = data;\r\n this.isInstanceable = data.viewIndependentOrigin === undefined;\r\n this.range = params.vertices.qparams.computeRange();\r\n this.surface = SurfaceGeometry.create(data, params.surface.indices);\r\n const edges = params.edges;\r\n if (!edges || data.type === SurfaceType.VolumeClassifier)\r\n return;\r\n\r\n if (edges.silhouettes)\r\n this.silhouetteEdges = SilhouetteEdgeGeometry.createSilhouettes(data, edges.silhouettes);\r\n\r\n if (edges.segments)\r\n this.segmentEdges = EdgeGeometry.create(data, edges.segments);\r\n\r\n if (edges.polylines)\r\n this.polylineEdges = PolylineEdgeGeometry.create(data, edges.polylines);\r\n\r\n if (edges.indexed)\r\n this.indexedEdges = IndexedEdgeGeometry.create(data, edges.indexed);\r\n }\r\n\r\n public static create(params: MeshParams, viewIndependentOrigin: Point3d | undefined): MeshRenderGeometry | undefined {\r\n const data = MeshData.create(params, viewIndependentOrigin);\r\n return data ? new this(data, params) : undefined;\r\n }\r\n\r\n public dispose() {\r\n if (this.noDispose) {\r\n return;\r\n }\r\n\r\n dispose(this.data);\r\n dispose(this.surface);\r\n dispose(this.segmentEdges);\r\n dispose(this.silhouetteEdges);\r\n dispose(this.polylineEdges);\r\n dispose(this.indexedEdges);\r\n }\r\n\r\n public get isDisposed() {\r\n return this.data.isDisposed &&\r\n (!this.surface || this.surface.isDisposed) &&\r\n (!this.segmentEdges || this.segmentEdges.isDisposed) &&\r\n (!this.silhouetteEdges || this.silhouetteEdges.isDisposed) &&\r\n (!this.polylineEdges || this.polylineEdges.isDisposed) &&\r\n (!this.indexedEdges || this.indexedEdges.isDisposed);\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics) {\r\n this.data.collectStatistics(stats);\r\n this.surface?.collectStatistics(stats);\r\n this.segmentEdges?.collectStatistics(stats);\r\n this.silhouetteEdges?.collectStatistics(stats);\r\n this.polylineEdges?.collectStatistics(stats);\r\n this.indexedEdges?.collectStatistics(stats);\r\n }\r\n\r\n public computeRange(out?: Range3d): Range3d {\r\n return this.range.clone(out);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class MeshGraphic extends Graphic {\r\n public readonly meshData: MeshData;\r\n private readonly _primitives: Primitive[] = [];\r\n private readonly _instances?: InstanceBuffers | PatternBuffers;\r\n private readonly _meshRange: Range3d;\r\n\r\n public get primitives(): readonly Primitive[] { return this._primitives; }\r\n public get meshRange(): Readonly<Range3d> { return this._meshRange; }\r\n\r\n public static create(geometry: MeshRenderGeometry, instances?: InstanceBuffers | PatternBuffers): MeshGraphic | undefined {\r\n return new MeshGraphic(geometry, instances);\r\n }\r\n\r\n private addPrimitive(geometry: CachedGeometry | undefined) {\r\n if (!geometry)\r\n return;\r\n\r\n const primitive = Primitive.createShared(geometry, this._instances);\r\n if (primitive)\r\n this._primitives.push(primitive);\r\n }\r\n\r\n private constructor(geometry: MeshRenderGeometry, instances?: InstanceBuffers | PatternBuffers) {\r\n super();\r\n this.meshData = geometry.data;\r\n this._meshRange = geometry.range;\r\n this._instances = instances;\r\n\r\n this.addPrimitive(geometry.surface);\r\n this.addPrimitive(geometry.segmentEdges);\r\n this.addPrimitive(geometry.silhouetteEdges);\r\n this.addPrimitive(geometry.polylineEdges);\r\n this.addPrimitive(geometry.indexedEdges);\r\n }\r\n\r\n public get isDisposed(): boolean { return this.meshData.isDisposed && 0 === this._primitives.length; }\r\n public get isPickable() { return false; }\r\n\r\n public dispose() {\r\n for (const primitive of this._primitives)\r\n dispose(primitive);\r\n\r\n dispose(this.meshData);\r\n dispose(this._instances);\r\n this._primitives.length = 0;\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n this.meshData.collectStatistics(stats);\r\n this._primitives.forEach((prim) => prim.collectStatistics(stats));\r\n this._instances?.collectStatistics(stats);\r\n }\r\n\r\n public override unionRange(range: Range3d) {\r\n if (this._instances)\r\n range.extendRange(range);\r\n else\r\n range.extendRange(this._meshRange);\r\n }\r\n\r\n public addCommands(cmds: RenderCommands): void { this._primitives.forEach((prim) => prim.addCommands(cmds)); }\r\n public override addHiliteCommands(cmds: RenderCommands, pass: RenderPass): void { this._primitives.forEach((prim) => prim.addHiliteCommands(cmds, pass)); }\r\n\r\n public get surfaceType(): SurfaceType { return this.meshData.type; }\r\n}\r\n"]}
|
|
@@ -6,8 +6,12 @@ import { BufferHandle, BuffersContainer } from "./AttributeBuffers";
|
|
|
6
6
|
import { Pass, RenderOrder } from "./RenderFlags";
|
|
7
7
|
import { Target } from "./Target";
|
|
8
8
|
import { TechniqueId } from "./TechniqueId";
|
|
9
|
+
import { RenderGeometry } from "../../internal/render/RenderGeometry";
|
|
9
10
|
/** @internal */
|
|
10
|
-
export declare class PointCloudGeometry extends CachedGeometry {
|
|
11
|
+
export declare class PointCloudGeometry extends CachedGeometry implements RenderGeometry {
|
|
12
|
+
readonly renderGeometryType: "point-cloud";
|
|
13
|
+
readonly isInstanceable = false;
|
|
14
|
+
noDispose: boolean;
|
|
11
15
|
readonly buffers: BuffersContainer;
|
|
12
16
|
private readonly _vertices;
|
|
13
17
|
private readonly _vertexCount;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PointCloud.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/PointCloud.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,cAAc,EAAE,MAAM,kDAAkD,CAAC;AAClF,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,IAAI,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAElD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"PointCloud.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/PointCloud.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,cAAc,EAAE,MAAM,kDAAkD,CAAC;AAClF,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,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,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAEtE,gBAAgB;AAChB,qBAAa,kBAAmB,SAAQ,cAAe,YAAW,cAAc;IAC9E,SAAgB,kBAAkB,EAAE,aAAa,CAA0B;IAC3E,SAAgB,cAAc,SAAS;IAChC,SAAS,UAAS;IACzB,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,SAAgB,SAAS,EAAE,MAAM,CAAC;IAClC,SAAgB,UAAU,EAAE,OAAO,CAAC;IAEpC,IAAW,UAAU,IAAI,OAAO,CAAiE;IACjG,IAAoB,YAAY,IAAI,kBAAkB,GAAG,SAAS,CAAiB;IACnF,IAAoB,uBAAuB,YAAmB;IAC9D,IAAW,gBAAgB,WAAiB;IAErC,OAAO;gBAOF,UAAU,EAAE,cAAc;IAqB/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,GAAG,IAAI;IAI7C,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;IAOH,aAAa,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM;CAIpE"}
|
|
@@ -22,11 +22,16 @@ class PointCloudGeometry extends CachedGeometry_1.CachedGeometry {
|
|
|
22
22
|
get supportsThematicDisplay() { return true; }
|
|
23
23
|
get overrideColorMix() { return .5; } // This could be a setting from either the mesh or the override if required.
|
|
24
24
|
dispose() {
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
if (!this.noDispose) {
|
|
26
|
+
(0, core_bentley_1.dispose)(this.buffers);
|
|
27
|
+
(0, core_bentley_1.dispose)(this._vertices);
|
|
28
|
+
}
|
|
27
29
|
}
|
|
28
30
|
constructor(pointCloud) {
|
|
29
31
|
super();
|
|
32
|
+
this.renderGeometryType = "point-cloud";
|
|
33
|
+
this.isInstanceable = false;
|
|
34
|
+
this.noDispose = false;
|
|
30
35
|
this._colorHandle = undefined;
|
|
31
36
|
this.buffers = AttributeBuffers_1.BuffersContainer.create();
|
|
32
37
|
this._vertices = AttributeBuffers_1.QBufferHandle3d.create(pointCloud.qparams, pointCloud.positions);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PointCloud.js","sourceRoot":"","sources":["../../../../src/render/webgl/PointCloud.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAE/F;;GAEG;AAEH,sDAAsD;AACtD,oDAAsD;AAGtD,iDAA8C;AAC9C,qDAAkD;AAElD,6BAA0B;AAC1B,yDAAuG;AAEvG,qCAAkC;
|
|
1
|
+
{"version":3,"file":"PointCloud.js","sourceRoot":"","sources":["../../../../src/render/webgl/PointCloud.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;;;AAE/F;;GAEG;AAEH,sDAAsD;AACtD,oDAAsD;AAGtD,iDAA8C;AAC9C,qDAAkD;AAElD,6BAA0B;AAC1B,yDAAuG;AAEvG,qCAAkC;AAKlC,gBAAgB;AAChB,MAAa,kBAAmB,SAAQ,+BAAc;IAapD,IAAW,UAAU,KAAc,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;IACjG,IAAoB,YAAY,KAAqC,OAAO,IAAI,CAAC,CAAC,CAAC;IACnF,IAAoB,uBAAuB,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC;IAC9D,IAAW,gBAAgB,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC,CAAK,4EAA4E;IAEtH,OAAO;QACZ,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAA,sBAAO,EAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtB,IAAA,sBAAO,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,YAAY,UAA0B;QACpC,KAAK,EAAE,CAAC;QAzBM,uBAAkB,GAAkB,aAAsB,CAAC;QAC3D,mBAAc,GAAG,KAAK,CAAC;QAChC,cAAS,GAAG,KAAK,CAAC;QAIR,iBAAY,GAA6B,SAAS,CAAC;QAoBlE,IAAI,CAAC,OAAO,GAAG,mCAAgB,CAAC,MAAM,EAAE,CAAC;QACzC,IAAI,CAAC,SAAS,GAAG,kCAAe,CAAC,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,SAAS,CAAoB,CAAC;QACrG,MAAM,OAAO,GAAG,2BAAY,CAAC,aAAa,CAAC,OAAO,kCAA0B,KAAK,CAAC,CAAC;QACnF,IAAA,qBAAM,EAAC,SAAS,KAAK,OAAO,CAAC,CAAC;QAC9B,MAAM,cAAc,GAAG,CAAC,UAAU,CAAC,SAAS,YAAY,YAAY,CAAC,CAAC,CAAC,CAAC,OAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,YAAY,UAAU,CAAC,CAAC,CAAC,CAAC,OAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,OAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;QAClM,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,mCAAgB,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAC3H,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC;QACpD,IAAI,CAAC,YAAY,GAAG,8BAAgB,CAAC,KAAK,KAAK,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;QACxE,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;QACtC,IAAI,CAAC,UAAU,GAAG,KAAK,KAAK,UAAU,CAAC,WAAW,CAAC;QAEnD,IAAI,SAAS,KAAK,UAAU,CAAC,MAAM,EAAE,CAAC;YACpC,IAAI,CAAC,YAAY,GAAG,+BAAY,CAAC,iBAAiB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YACtE,MAAM,SAAS,GAAG,2BAAY,CAAC,aAAa,CAAC,SAAS,kCAA0B,KAAK,CAAC,CAAC;YACvF,IAAA,qBAAM,EAAC,SAAS,KAAK,SAAS,CAAC,CAAC;YAChC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,YAAa,EAAE,CAAC,mCAAgB,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,EAAE,OAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;QAC5I,CAAC;IACH,CAAC;IAEM,iBAAiB,CAAC,KAA8B;QACrD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,GAAG,CAAC,SAAS,KAAK,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACjH,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC;IAES,gBAAgB,CAAC,OAAe,IAAa,OAAO,KAAK,CAAC,CAAC,CAAC;IAEtE,IAAW,WAAW,KAAkB,sCAA8B,CAAC,CAAC;IACxD,OAAO,CAAC,MAAc;QACpC,mCAAmC;QACnC,OAAO,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC;IAC7D,CAAC;IACD,IAAW,WAAW,KAAkB,kCAA0B,CAAC,CAAC;IACpE,IAAW,OAAO,KAAmB,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IACpE,IAAW,MAAM,KAAmB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAClE,IAAW,MAAM,KAA+B,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAC3E,IAAoB,WAAW,KAAK,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IAC/D,IAAoB,gBAAgB,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC;IAEhD,IAAI;QACT,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpB,eAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,OAAE,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAClF,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;IACxB,CAAC;IAED,uBAAuB;IACP,aAAa,CAAC,OAA4B;QACxD,6DAA6D;QAC7D,OAAO,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IACrD,CAAC;CACF;AA5ED,gDA4EC","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 \"../../common/internal/render/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 { Pass, RenderOrder } from \"./RenderFlags\";\r\nimport { System } from \"./System\";\r\nimport { Target } from \"./Target\";\r\nimport { TechniqueId } from \"./TechniqueId\";\r\nimport { RenderGeometry } from \"../../internal/render/RenderGeometry\";\r\n\r\n/** @internal */\r\nexport class PointCloudGeometry extends CachedGeometry implements RenderGeometry {\r\n public readonly renderGeometryType: \"point-cloud\" = \"point-cloud\" as const;\r\n public readonly isInstanceable = false;\r\n public noDispose = false;\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 public readonly voxelSize: number;\r\n public readonly colorIsBgr: boolean;\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 if (!this.noDispose) {\r\n dispose(this.buffers);\r\n dispose(this._vertices);\r\n }\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.qparams, pointCloud.positions) as QBufferHandle3d;\r\n const attrPos = AttributeMap.findAttribute(\"a_pos\", TechniqueId.PointCloud, false);\r\n assert(undefined !== attrPos);\r\n const vertexDataType = (pointCloud.positions instanceof Float32Array) ? GL.DataType.Float : ((pointCloud.positions 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.positions.length / 3;\r\n this._hasFeatures = FeatureIndexType.Empty !== pointCloud.features.type;\r\n this.voxelSize = pointCloud.voxelSize;\r\n this.colorIsBgr = \"bgr\" === pointCloud.colorFormat;\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): Pass {\r\n // Point clouds don't cast shadows.\r\n return target.isDrawingShadowMap ? \"none\" : \"point-clouds\";\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\r\n // ###TODO delete this.\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"]}
|
|
@@ -12,8 +12,12 @@ import { Pass, RenderOrder } from "./RenderFlags";
|
|
|
12
12
|
import { Target } from "./Target";
|
|
13
13
|
import { TechniqueId } from "./TechniqueId";
|
|
14
14
|
import { VertexLUT } from "./VertexLUT";
|
|
15
|
+
import { RenderGeometry } from "../../internal/render/RenderGeometry";
|
|
15
16
|
/** @internal */
|
|
16
|
-
export declare class PointStringGeometry extends LUTGeometry {
|
|
17
|
+
export declare class PointStringGeometry extends LUTGeometry implements RenderGeometry {
|
|
18
|
+
readonly renderGeometryType: "point-string";
|
|
19
|
+
readonly isInstanceable: boolean;
|
|
20
|
+
noDispose: boolean;
|
|
17
21
|
readonly buffers: BuffersContainer;
|
|
18
22
|
readonly vertexParams: QParams3d;
|
|
19
23
|
private readonly _hasFeatures;
|
|
@@ -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,gDAAgD,CAAC;AACnF,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;
|
|
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,gDAAgD,CAAC;AACnF,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;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAEtE,gBAAgB;AAChB,qBAAa,mBAAoB,SAAQ,WAAY,YAAW,cAAc;IAC5E,SAAgB,kBAAkB,EAAE,cAAc,CAA2B;IAC7E,SAAgB,cAAc,EAAE,OAAO,CAAC;IACjC,SAAS,UAAS;IACzB,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;IAeP,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;IAQP,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI;CAI/D"}
|
|
@@ -21,6 +21,9 @@ class PointStringGeometry extends CachedGeometry_1.LUTGeometry {
|
|
|
21
21
|
get lutBuffers() { return this.buffers; }
|
|
22
22
|
constructor(indices, numIndices, lut, qparams, weight, hasFeatures, viOrigin) {
|
|
23
23
|
super(viOrigin);
|
|
24
|
+
this.renderGeometryType = "point-string";
|
|
25
|
+
this.noDispose = false;
|
|
26
|
+
this.isInstanceable = undefined === viOrigin;
|
|
24
27
|
this.buffers = AttributeBuffers_1.BuffersContainer.create();
|
|
25
28
|
const attrPos = AttributeMap_1.AttributeMap.findAttribute("a_pos", 3 /* TechniqueId.PointString */, false);
|
|
26
29
|
(0, core_bentley_1.assert)(undefined !== attrPos);
|
|
@@ -61,9 +64,11 @@ class PointStringGeometry extends CachedGeometry_1.LUTGeometry {
|
|
|
61
64
|
&& this.indices.isDisposed;
|
|
62
65
|
}
|
|
63
66
|
dispose() {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
+
if (!this.noDispose) {
|
|
68
|
+
(0, core_bentley_1.dispose)(this.buffers);
|
|
69
|
+
(0, core_bentley_1.dispose)(this.lut);
|
|
70
|
+
(0, core_bentley_1.dispose)(this.indices);
|
|
71
|
+
}
|
|
67
72
|
}
|
|
68
73
|
collectStatistics(stats) {
|
|
69
74
|
stats.addVertexTable(this.lut.bytesUsed);
|
|
@@ -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;
|
|
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 \"../../common/internal/render/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\nimport { RenderGeometry } from \"../../internal/render/RenderGeometry\";\r\n\r\n/** @internal */\r\nexport class PointStringGeometry extends LUTGeometry implements RenderGeometry {\r\n public readonly renderGeometryType: \"point-string\" = \"point-string\" as const;\r\n public readonly isInstanceable: boolean;\r\n public noDispose = false;\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.isInstanceable = undefined === 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 if (!this.noDispose) {\r\n dispose(this.buffers);\r\n dispose(this.lut);\r\n dispose(this.indices);\r\n }\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"]}
|
|
@@ -13,8 +13,12 @@ import { Pass, RenderOrder } from "./RenderFlags";
|
|
|
13
13
|
import { Target } from "./Target";
|
|
14
14
|
import { TechniqueId } from "./TechniqueId";
|
|
15
15
|
import { VertexLUT } from "./VertexLUT";
|
|
16
|
+
import { RenderGeometry } from "../../internal/render/RenderGeometry";
|
|
16
17
|
/** @internal */
|
|
17
|
-
export declare class PolylineGeometry extends LUTGeometry {
|
|
18
|
+
export declare class PolylineGeometry extends LUTGeometry implements RenderGeometry {
|
|
19
|
+
readonly renderGeometryType: "polyline";
|
|
20
|
+
readonly isInstanceable: boolean;
|
|
21
|
+
noDispose: boolean;
|
|
18
22
|
vertexParams: QParams3d;
|
|
19
23
|
private readonly _hasFeatures;
|
|
20
24
|
lineWeight: number;
|
|
@@ -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,6CAA6C,CAAC;AAC7E,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;
|
|
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,6CAA6C,CAAC;AAC7E,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;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAEtE,gBAAgB;AAChB,qBAAa,gBAAiB,SAAQ,WAAY,YAAW,cAAc;IACzE,SAAgB,kBAAkB,EAAE,UAAU,CAAuB;IACrE,SAAgB,cAAc,EAAE,OAAO,CAAC;IACjC,SAAS,UAAS;IAClB,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;IAcP,IAAW,UAAU,IAAI,OAAO,CAA4D;IAErF,OAAO;IAOP,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"}
|
|
@@ -21,6 +21,9 @@ class PolylineGeometry extends CachedGeometry_1.LUTGeometry {
|
|
|
21
21
|
get lutBuffers() { return this._buffers.buffers; }
|
|
22
22
|
constructor(lut, buffers, params, viOrigin) {
|
|
23
23
|
super(viOrigin);
|
|
24
|
+
this.renderGeometryType = "polyline";
|
|
25
|
+
this.noDispose = false;
|
|
26
|
+
this.isInstanceable = undefined === viOrigin;
|
|
24
27
|
this.vertexParams = params.vertices.qparams;
|
|
25
28
|
this._hasFeatures = core_common_1.FeatureIndexType.Empty !== params.vertices.featureIndexType;
|
|
26
29
|
this.lineWeight = params.weight;
|
|
@@ -33,8 +36,10 @@ class PolylineGeometry extends CachedGeometry_1.LUTGeometry {
|
|
|
33
36
|
}
|
|
34
37
|
get isDisposed() { return this._buffers.isDisposed && this.lut.isDisposed; }
|
|
35
38
|
dispose() {
|
|
36
|
-
|
|
37
|
-
|
|
39
|
+
if (!this.noDispose) {
|
|
40
|
+
(0, core_bentley_1.dispose)(this.lut);
|
|
41
|
+
(0, core_bentley_1.dispose)(this._buffers);
|
|
42
|
+
}
|
|
38
43
|
}
|
|
39
44
|
collectStatistics(stats) {
|
|
40
45
|
this._buffers.collectStatistics(stats, RenderMemory_1.RenderMemory.BufferType.Polylines);
|
|
@@ -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;IAW/C,IAAW,UAAU,KAAK,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IAEzD,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;IAED,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,iCAAwB,CAAC,yBAAiB,CAAC;;YAEjE,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,mCAA0B,CAAC,2BAAmB,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,OAAO,MAAM,CAAC;QAEhB,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,CAAC,aAAa,CAAC,CAAC,CAAC,eAAe,CAAC;IACzD,CAAC;IAEe,OAAO,CAAC,MAAc;QACpC,MAAM,EAAE,GAAG,MAAM,CAAC,gBAAgB,CAAC;QACnC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC7D,0DAA0D;YAC1D,IAAI,MAAM,KAAK,IAAI,IAAI,IAAI,CAAC,aAAa,IAAI,wBAAU,CAAC,SAAS,KAAK,EAAE,CAAC,UAAU,IAAI,EAAE,CAAC,IAAI;gBAC5F,IAAI,GAAG,MAAM,CAAC;YAEhB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,aAAa,GAAY,EAAE,CAAC,YAAY,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,eAAe,CAAC;QACrF,OAAO,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,eAAe,CAAC;IACzD,CAAC;IAED,IAAW,WAAW,KAAkB,oCAA4B,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;AApHD,4CAoHC","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 \"../../common/internal/render/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"]}
|
|
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 \"../../common/internal/render/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\nimport { RenderGeometry } from \"../../internal/render/RenderGeometry\";\r\n\r\n/** @internal */\r\nexport class PolylineGeometry extends LUTGeometry implements RenderGeometry {\r\n public readonly renderGeometryType: \"polyline\" = \"polyline\" as const;\r\n public readonly isInstanceable: boolean;\r\n public noDispose = false;\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.isInstanceable = undefined === 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 if (!this.noDispose) {\r\n dispose(this.lut);\r\n dispose(this._buffers);\r\n }\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"]}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
/** @packageDocumentation
|
|
2
2
|
* @module WebGL
|
|
3
3
|
*/
|
|
4
|
-
import { InstancedGraphicParams } from "../../common/render/InstancedGraphicParams";
|
|
5
4
|
import { RenderMemory } from "../RenderMemory";
|
|
6
|
-
import { RenderAreaPattern } from "../RenderSystem";
|
|
7
5
|
import { CachedGeometry } from "./CachedGeometry";
|
|
8
6
|
import { Graphic } from "./Graphic";
|
|
9
7
|
import { InstanceBuffers, PatternBuffers } from "./InstancedGeometry";
|
|
@@ -18,7 +16,7 @@ export declare class Primitive extends Graphic {
|
|
|
18
16
|
cachedGeometry: CachedGeometry;
|
|
19
17
|
isPixelMode: boolean;
|
|
20
18
|
protected constructor(cachedGeom: CachedGeometry);
|
|
21
|
-
static create(geom: CachedGeometry | undefined, instances?:
|
|
19
|
+
static create(geom: CachedGeometry | undefined, instances?: InstanceBuffers | PatternBuffers): Primitive | undefined;
|
|
22
20
|
static createShared(geom: CachedGeometry | undefined, instances?: InstanceBuffers | PatternBuffers): Primitive | undefined;
|
|
23
21
|
get isDisposed(): boolean;
|
|
24
22
|
get isPickable(): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Primitive.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/Primitive.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Primitive.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/Primitive.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,cAAc,EAA8C,MAAM,kBAAkB,CAAC;AAE9F,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,eAAe,EAAqB,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACzF,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;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,gBAAgB;AAChB,qBAAa,SAAU,SAAQ,OAAO;IAC7B,cAAc,EAAE,cAAc,CAAC;IAC/B,WAAW,EAAE,OAAO,CAAS;IAEpC,SAAS,aAAa,UAAU,EAAE,cAAc;WAKlC,MAAM,CAAC,IAAI,EAAE,cAAc,GAAG,SAAS,EAAE,SAAS,CAAC,EAAE,eAAe,GAAG,cAAc,GAAG,SAAS,GAAG,SAAS;WAgB7G,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;IAI9C,UAAU,CAAC,KAAK,EAAE,OAAO;IAIlC,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"}
|
|
@@ -31,12 +31,7 @@ class Primitive extends Graphic_1.Graphic {
|
|
|
31
31
|
geom = InstancedGeometry_1.InstancedGeometry.createPattern(geom, true, instances);
|
|
32
32
|
}
|
|
33
33
|
else {
|
|
34
|
-
|
|
35
|
-
const range = InstancedGeometry_1.InstanceBuffers.computeRange(geom.computeRange(), instances.transforms, instances.transformCenter);
|
|
36
|
-
const instanceBuffers = InstancedGeometry_1.InstanceBuffers.create(instances, range);
|
|
37
|
-
if (!instanceBuffers)
|
|
38
|
-
return undefined;
|
|
39
|
-
geom = InstancedGeometry_1.InstancedGeometry.create(geom, true, instanceBuffers);
|
|
34
|
+
geom = InstancedGeometry_1.InstancedGeometry.create(geom, true, instances);
|
|
40
35
|
}
|
|
41
36
|
}
|
|
42
37
|
return new this(geom);
|
|
@@ -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 \"../../common/render/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\nimport { Range3d } from \"@itwin/core-geometry\";\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) {\r\n super();\r\n this.cachedGeometry = cachedGeom;\r\n }\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 override unionRange(range: Range3d) {\r\n range.extendRange(this.cachedGeometry.computeRange());\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"]}
|
|
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 { RenderMemory } from \"../RenderMemory\";\r\nimport { PrimitiveVisibility } from \"../RenderTarget\";\r\nimport { CachedGeometry, LUTGeometry, SkySphereViewportQuadGeometry } from \"./CachedGeometry\";\r\nimport { DrawParams, PrimitiveCommand } from \"./DrawCommand\";\r\nimport { Graphic } from \"./Graphic\";\r\nimport { InstanceBuffers, InstancedGeometry, 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\nimport { Range3d } from \"@itwin/core-geometry\";\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) {\r\n super();\r\n this.cachedGeometry = cachedGeom;\r\n }\r\n\r\n public static create(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 PatternBuffers) {\r\n geom = InstancedGeometry.createPattern(geom, true, instances);\r\n } else {\r\n geom = InstancedGeometry.create(geom, true, instances);\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 override unionRange(range: Range3d) {\r\n range.extendRange(this.cachedGeometry.computeRange());\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"]}
|
|
@@ -17,6 +17,7 @@ import { PlanarClassifier } from "./PlanarClassifier";
|
|
|
17
17
|
import { RenderOrder } from "./RenderFlags";
|
|
18
18
|
import { Target } from "./Target";
|
|
19
19
|
import { TechniqueId } from "./TechniqueId";
|
|
20
|
+
import { RenderGeometry } from "../../internal/render/RenderGeometry";
|
|
20
21
|
declare class ProjectedTexture {
|
|
21
22
|
meshParams: RealityMeshGraphicParams;
|
|
22
23
|
targetRectangle: Range2d;
|
|
@@ -56,7 +57,10 @@ export declare class RealityMeshGeometryParams extends IndexedGeometryParams {
|
|
|
56
57
|
dispose(): void;
|
|
57
58
|
}
|
|
58
59
|
/** @internal */
|
|
59
|
-
export declare class RealityMeshGeometry extends IndexedGeometry implements
|
|
60
|
+
export declare class RealityMeshGeometry extends IndexedGeometry implements RenderGeometry {
|
|
61
|
+
readonly renderGeometryType: "reality-mesh";
|
|
62
|
+
readonly isInstanceable = false;
|
|
63
|
+
noDispose: boolean;
|
|
60
64
|
readonly hasTextures: boolean;
|
|
61
65
|
get asRealityMesh(): RealityMeshGeometry | undefined;
|
|
62
66
|
get isDisposed(): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RealityMesh.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/RealityMesh.ts"],"names":[],"mappings":"AAKA;;GAEG;AAEH,OAAO,EAAiC,WAAW,EAAa,MAAM,qBAAqB,CAAC;AAC5F,OAAO,EAAE,QAAQ,EAAgB,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAY,MAAM,sBAAsB,CAAC;AAEvF,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAoB,eAAe,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEtG,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAE1E,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"RealityMesh.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/RealityMesh.ts"],"names":[],"mappings":"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"}
|
|
@@ -212,6 +212,9 @@ class RealityMeshGeometry extends CachedGeometry_1.IndexedGeometry {
|
|
|
212
212
|
get transform() { return this._transform; }
|
|
213
213
|
constructor(props) {
|
|
214
214
|
super(props.realityMeshParams);
|
|
215
|
+
this.renderGeometryType = "reality-mesh";
|
|
216
|
+
this.isInstanceable = false;
|
|
217
|
+
this.noDispose = false;
|
|
215
218
|
this._realityMeshParams = props.realityMeshParams;
|
|
216
219
|
this.textureParams = props.textureParams;
|
|
217
220
|
this._transform = props.transform;
|
|
@@ -224,6 +227,9 @@ class RealityMeshGeometry extends CachedGeometry_1.IndexedGeometry {
|
|
|
224
227
|
this._indexType = 1 === bytesPerIndex ? GL_1.GL.DataType.UnsignedByte : (2 === bytesPerIndex ? GL_1.GL.DataType.UnsignedShort : GL_1.GL.DataType.UnsignedInt);
|
|
225
228
|
}
|
|
226
229
|
dispose() {
|
|
230
|
+
if (this.noDispose) {
|
|
231
|
+
return;
|
|
232
|
+
}
|
|
227
233
|
super.dispose();
|
|
228
234
|
(0, core_bentley_1.dispose)(this._realityMeshParams);
|
|
229
235
|
if (true !== this._disableTextureDisposal)
|
|
@@ -320,7 +326,7 @@ class RealityMeshGeometry extends CachedGeometry_1.IndexedGeometry {
|
|
|
320
326
|
const primitive = Primitive_1.Primitive.create(mesh);
|
|
321
327
|
branch.add(system.createBatch(primitive, featureTable, mesh.getRange(), { tileId }));
|
|
322
328
|
}
|
|
323
|
-
return system.createBranch(branch, realityMesh._transform ? realityMesh._transform : core_geometry_1.Transform.createIdentity());
|
|
329
|
+
return system.createBranch(branch, realityMesh._transform ? realityMesh._transform : core_geometry_1.Transform.createIdentity(), { disableClipStyle: params.disableClipStyle });
|
|
324
330
|
}
|
|
325
331
|
collectStatistics(stats) {
|
|
326
332
|
this._isTerrain ? stats.addTerrain(this._realityMeshParams.bytesUsed) : stats.addRealityMesh(this._realityMeshParams.bytesUsed);
|