UNPKG

@itwin/core-frontend

Version:
60 lines 2.19 kB
/** @packageDocumentation * @module WebGL */ import { Matrix4d, Point3d, Transform, Vector3d } from "@itwin/core-geometry"; import { Frustum } from "@itwin/core-common"; import { UniformHandle } from "./UniformHandle"; import { Matrix4 } from "./Matrix"; /** @internal */ export declare const enum FrustumUniformType { TwoDee = 0, Orthographic = 1, Perspective = 2 } /** @internal */ export declare const enum Plane { kTop = 0, kBottom = 1, kLeft = 2, kRight = 3 } /** Represents a Target's frustum for use in glsl as a pair of uniforms. * Do not modify fields of exposed objects directly. e.g., do not directly manipulate the projection or view matrices - use the appropriate APIs. * @internal */ export declare class FrustumUniforms { readonly planFrustum: Frustum; private _planFraction; private readonly _nearPlaneCenter; readonly viewMatrix: Transform; readonly projectionMatrix: Matrix4d; private readonly _worldUpVector; private readonly _viewUpVector; private readonly _planeData; private readonly _frustumData; private readonly _worldFrustumZRange; readonly projectionMatrix32: Matrix4; private readonly _logZData; private readonly _viewUpVector32; syncKey: number; private readonly _scratch; constructor(); bindProjectionMatrix(uniform: UniformHandle): void; bindUpVector(uniform: UniformHandle): void; get planes(): Float32Array; get frustum(): Float32Array; get worldFrustumZRange(): Float32Array; get nearPlane(): number; get farPlane(): number; get type(): FrustumUniformType; get is2d(): boolean; get planFraction(): number; get logZ(): Float32Array; changeFrustum(newFrustum: Frustum, newFraction: number, is3d: boolean): void; changeProjectionMatrix(newMatrix: Matrix4d): void; protected setPlanes(top: number, bottom: number, left: number, right: number): void; protected setFrustum(nearPlane: number, farPlane: number, type: FrustumUniformType): void; } /** @internal */ export declare function fromSumOf(p: Point3d, v: Vector3d, scale: number, out?: Point3d): Point3d; //# sourceMappingURL=FrustumUniforms.d.ts.map