UNPKG

@itwin/core-frontend

Version:
151 lines • 6.79 kB
/** @packageDocumentation * @module WebGL */ import { Point3d, Range3d, Transform, XYAndZ } from "@itwin/core-geometry"; import { InstancedGraphicParams, InstancedGraphicProps, PatternGraphicParams } from "../../../common/render/InstancedGraphicParams"; import { RenderMemory } from "../../../render/RenderMemory"; import { CachedGeometry, LUTGeometry } from "./CachedGeometry"; import { ShaderProgramParams } from "./DrawCommand"; import { BufferHandle, BufferParameters } from "./AttributeBuffers"; import { Target } from "./Target"; import { TechniqueId } from "./TechniqueId"; import { Matrix4 } from "./Matrix"; import { RenderInstances } from "../../../render/RenderSystem"; import { _implementationProhibited } from "../../../common/internal/Symbols"; import { RenderInstancesParamsImpl } from "../../../internal/render/RenderInstancesParamsImpl"; /** @internal */ export declare function isInstancedGraphicParams(params: any): params is InstancedGraphicParams; declare class InstanceData { readonly numInstances: number; private readonly _rtcOnlyTransform; private readonly _rtcModelTransform; private readonly _modelMatrix; protected constructor(numInstances: number, rtcCenter: Point3d); getRtcModelTransform(modelMatrix: Transform): Transform; getRtcOnlyTransform(): Transform; private static readonly _noFeatureId; get patternFeatureId(): Float32Array; } /** @internal */ export interface PatternTransforms { readonly orgTransform: Matrix4; readonly localToModel: Matrix4; readonly symbolToLocal: Matrix4; readonly origin: Float32Array; } /** @internal */ export declare class InstanceBuffersData extends InstanceData { readonly transforms: BufferHandle; readonly featureIds?: BufferHandle; readonly symbology?: BufferHandle; private _noDispose; private constructor(); static create(params: InstancedGraphicParams | InstancedGraphicProps, disableDisposal?: boolean): InstanceBuffersData | undefined; [Symbol.dispose](): void; get isDisposed(): boolean; } /** @internal */ export interface RenderInstancesImpl extends RenderInstances { readonly buffers: InstanceBuffersData; } /** @internal */ export declare namespace RenderInstancesImpl { function create(params: RenderInstancesParamsImpl): RenderInstancesImpl | undefined; } /** @internal */ export declare class InstanceBuffers { private static readonly _patternParams; private readonly _data; readonly patternParams: Float32Array; readonly patternTransforms: undefined; readonly viewIndependentOrigin: undefined; readonly range: Range3d; get numInstances(): number; get transforms(): BufferHandle; get featureIds(): BufferHandle | undefined; get symbology(): BufferHandle | undefined; get hasFeatures(): boolean; get patternFeatureId(): Float32Array; getRtcModelTransform(modelMatrix: Transform): Transform; getRtcOnlyTransform(): Transform; private constructor(); static createTransformBufferParameters(techniqueId: TechniqueId): BufferParameters[]; static fromParams(params: InstancedGraphicParams, computeReprRange: () => Range3d): InstanceBuffers | undefined; static fromRenderInstances(arg: RenderInstances, reprRange: Range3d): InstanceBuffers; [Symbol.dispose](): void; get isDisposed(): boolean; collectStatistics(stats: RenderMemory.Statistics): void; private static extendTransformedRange; static computeRange(reprRange: Range3d, tfs: Float32Array, rtcCenter: XYAndZ, out?: Range3d): Range3d; } /** @internal */ export declare class PatternBuffers extends InstanceData { readonly range: Range3d; readonly patternParams: Float32Array; readonly origin: Float32Array; readonly orgTransform: Matrix4; readonly localToModel: Matrix4; readonly symbolToLocal: Matrix4; readonly offsets: BufferHandle; readonly viewIndependentOrigin: Point3d | undefined; private readonly _featureId?; readonly [_implementationProhibited] = "renderAreaPattern"; private constructor(); static create(params: PatternGraphicParams): PatternBuffers | undefined; readonly patternTransforms: PatternTransforms; get hasFeatures(): boolean; get patternFeatureId(): Float32Array; get isDisposed(): boolean; [Symbol.dispose](): void; collectStatistics(stats: RenderMemory.Statistics): void; } /** @internal */ export declare class InstancedGeometry extends CachedGeometry { private readonly _buffersContainer; private readonly _buffers; private readonly _repr; private readonly _ownsBuffers; getRtcModelTransform(modelMatrix: Transform): Transform; getRtcOnlyTransform(): Transform; get viewIndependentOrigin(): Point3d | undefined; get asInstanced(): this; get asLUT(): LUTGeometry; get asMesh(): import("./MeshGeometry").MeshGeometry | undefined; get asSurface(): import("./SurfaceGeometry").SurfaceGeometry | undefined; get asEdge(): import("./EdgeGeometry").EdgeGeometry | undefined; get asSilhouette(): import("./EdgeGeometry").SilhouetteEdgeGeometry | undefined; get asIndexedEdge(): import("./IndexedEdgeGeometry").IndexedEdgeGeometry | undefined; get renderOrder(): import("./RenderFlags").RenderOrder; get isLitSurface(): boolean; get hasBakedLighting(): boolean; get hasAnimation(): boolean; get usesQuantizedPositions(): boolean; get qOrigin(): Float32Array; get qScale(): Float32Array; get materialInfo(): import("./Material").MaterialInfo | undefined; get polylineBuffers(): import("./CachedGeometry").PolylineBuffers | undefined; get isEdge(): boolean; get hasFeatures(): boolean; get techniqueId(): TechniqueId; get supportsThematicDisplay(): boolean; getPass(target: Target): import("./RenderFlags").Pass; wantWoWReversal(params: ShaderProgramParams): boolean; getLineCode(params: ShaderProgramParams): number; getLineWeight(params: ShaderProgramParams): number; wantMonochrome(target: Target): boolean; wantMixMonochromeColor(target: Target): boolean; static create(repr: LUTGeometry, ownsBuffers: boolean, buffers: InstanceBuffers): InstancedGeometry; static createPattern(repr: LUTGeometry, ownsBuffers: boolean, buffers: PatternBuffers): InstancedGeometry; private constructor(); get isDisposed(): boolean; [Symbol.dispose](): void; protected _wantWoWReversal(_target: Target): boolean; draw(): void; computeRange(output?: Range3d): Range3d; collectStatistics(stats: RenderMemory.Statistics): void; get patternParams(): Float32Array; get patternTransforms(): PatternTransforms | undefined; get patternFeatureId(): Float32Array; } export {}; //# sourceMappingURL=InstancedGeometry.d.ts.map