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