@itwin/core-frontend
Version:
iTwin.js frontend components
151 lines • 6.79 kB
TypeScript
/** @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