/*! * Copyright (c) Microsoft Corporation. * Licensed under the MIT License. */ /// import { quat, mat4, vec2, vec3 } from "gl-matrix"; import { IComponent, IComponentVisual } from "./component.js"; import { Core } from "../main.js"; export interface IImageVisual extends IComponentVisual { image: ImageBase; pickVMatrix: mat4; pickPMatrix: mat4; isPickingEnabled: boolean; } export declare class ImageVisual implements IImageVisual { image: ImageBase; isVisible: boolean; viewports: DOMRect[]; viewportOffset: number; viewportCount: number; mMatrix: mat4; mvMatrices: mat4[]; vMatrices: mat4[]; inverseVMatrices: mat4[]; pMatrices: mat4[]; pickVMatrix: mat4; pickPMatrix: mat4; isPickingEnabled: boolean; isInitialized: boolean; render(elapsedTime: number, xrFrame?: XRFrame): void; update(elapsedTime: number): void; constructor(image: ImageBase); } interface IImageBaseOptions { imageData: ImageData; position?: vec3; texCoord0?: vec2; texCoord1?: vec2; rotation?: quat; minBoundsX?: number; minBoundsY?: number; minBoundsZ?: number; maxBoundsX?: number; maxBoundsY?: number; maxBoundsZ?: number; material?: number; } export interface IImageQuadOptions extends IImageBaseOptions { width?: number; height?: number; } export interface IImageSphereOptions extends IImageBaseOptions { radius?: number; slices?: number; stacks?: number; } export declare abstract class ImageBase implements IComponent { protected _core: Core; protected _mMatrix: mat4; protected _isInitialized: boolean; protected _hasChanged: boolean; protected _indexCount: number; protected _vertices: ArrayBuffer; protected _verticesView: DataView; protected _indices: Uint16Array; protected _translation: vec3; protected _origin: vec3; protected _scale: vec3; protected _transform: mat4; protected _material: number; get material(): number; get vertices(): ArrayBuffer; get indices(): Uint16Array; get indexCount(): number; get isInitialized(): boolean; get mMatrix(): mat4; hasChangedCallback: () => void; protected _imageData: ImageData; get imageData(): ImageData; set imageData(value: ImageData); protected _rotation: quat; get rotation(): quat; set rotation(value: quat); protected _position: vec3; get position(): vec3; set position(value: vec3); protected _texCoord0: vec2; get texCoord0(): vec2; set texCoord0(value: vec2); protected _texCoord1: vec2; get texCoord1(): vec2; set texCoord1(value: vec2); protected _minBoundsX: number; get minBoundsX(): number; set minBoundsX(value: number); protected _minBoundsY: number; get minBoundsY(): number; set minBoundsY(value: number); protected _minBoundsZ: number; get minBoundsZ(): number; set minBoundsZ(value: number); protected _maxBoundsX: number; get maxBoundsX(): number; set maxBoundsX(value: number); protected _maxBoundsY: number; get maxBoundsY(): number; set maxBoundsY(value: number); protected _maxBoundsZ: number; get maxBoundsZ(): number; set maxBoundsZ(value: number); constructor(core: Core, options: IImageBaseOptions); abstract initialize(): void; abstract update(elapsedTime: number): void; } export declare class ImageQuad extends ImageBase { private _texTransform; private _width; get width(): number; set width(value: number); private _height; get height(): number; set height(value: number); constructor(core: Core, options: IImageQuadOptions); initialize(): void; update(elapsedTime: number): void; } export declare class ImageSphere extends ImageBase { private _slices; private _stacks; private _radius; private _sphere; get radius(): number; set radius(value: number); constructor(core: Core, options: IImageSphereOptions); initialize(): void; update(elapsedTime: number): void; } export {};