/*! * Copyright (c) Microsoft Corporation. * Licensed under the MIT License. */ /// import { mat4, quat, vec2, vec3 } from "gl-matrix"; import { AxesTextOrientation, Core, Edge2D, HorizontalAlignment, Orientation, UnitType, VerticalAlignment } from "../main.js"; import { ITextMetric } from "../helpers/text.js"; import { TransitionBuffer } from "../renderers/basic/buffer.js"; import { IComponent, IComponentVisual } from "./component.js"; import { Font } from "../font.js"; export interface IKeyVisual extends IComponentVisual { key: KeyBase; } export declare class KeyVisual implements IKeyVisual { key: KeyBase; isVisible: boolean; viewports: DOMRect[]; viewportOffset: number; viewportCount: number; mMatrix: mat4; mvMatrices: mat4[]; vMatrices: mat4[]; inverseVMatrices: mat4[]; pMatrices: mat4[]; isInitialized: boolean; render(elapsedTime: number, xrFrame?: XRFrame): void; update(elapsedTime: number): void; constructor(key: KeyBase); } export interface IKeyOptions { labels: string[]; minBoundsX?: number; minBoundsY?: number; minBoundsZ?: number; maxBoundsX?: number; maxBoundsY?: number; maxBoundsZ?: number; positionX?: number; positionY?: number; positionZ?: number; palette?: Uint8Array; labelPositions?: number[]; labelScale?: number; labelMaxGlyphs?: number; labelPosition?: Edge2D; labelOrientation?: Orientation; title?: string; titleScale?: number; titleMaxGlyphs?: number; titlePosition?: Edge2D; titleOrientation?: Orientation; rotation?: quat; font?: Font; orientation?: Orientation; horizontalAlignment?: HorizontalAlignment; verticalAlignment?: VerticalAlignment; horizontalContentAlignment?: HorizontalAlignment; verticalContentAlignment?: VerticalAlignment; } export declare abstract class KeyBase implements IComponent { protected _core: Core; protected _size: vec3; protected _hasChanged: boolean; protected _isInitialized: boolean; get isInitialized(): boolean; protected _minBoundsX: number; protected _minBoundsY: number; protected _minBoundsZ: number; protected _maxBoundsX: number; protected _maxBoundsY: number; protected _maxBoundsZ: number; get minBoundsX(): number; set minBoundsX(value: number); get maxBoundsX(): number; set maxBoundsX(value: number); get minBoundsY(): number; set minBoundsY(value: number); get maxBoundsY(): number; set maxBoundsY(value: number); get minBoundsZ(): number; set minBoundsZ(value: number); get maxBoundsZ(): number; set maxBoundsZ(value: number); protected _transitionBuffer: TransitionBuffer; protected _unitType: UnitType; get unitType(): UnitType; set unitType(value: UnitType); protected _palette: Uint8Array; get palette(): Uint8Array; set palette(value: Uint8Array); protected _materials: Uint16Array; get materials(): Uint16Array; set materials(value: Uint16Array); protected _sizesX: Float64Array; get sizesX(): Float64Array; set sizesX(value: Float64Array); protected _sizesY: Float64Array; get sizesY(): Float64Array; set sizesY(value: Float64Array); protected _sizesZ: Float64Array; get sizesZ(): Float64Array; set sizesZ(value: Float64Array); protected _spacing: Number; get spacing(): Number; set spacing(value: Number); protected _textMetric: ITextMetric; protected _textVertices: ArrayBuffer; protected _textVerticesView: DataView; protected _textIndices: Uint16Array; protected _textOffset: vec3; protected _textPosition: vec3; protected _distances: number[]; get textVertices(): ArrayBuffer; get textIndices(): Uint16Array; protected _labelPositions: number[]; protected _labelSize: number; protected _labels: string[]; protected _maxLabelSize: vec2; protected _orientation: AxesTextOrientation; protected _leftToRightIndexCount: number; protected _rightToLeftIndexCount: number; protected _leftToRightIndexOffset: number; protected _rightToLeftIndexOffset: number; protected _labelMMatrix: mat4; get labelMMatrix(): mat4; set labelPositions(value: number[]); set labels(value: string[]); set labelSize(value: number); get labelOrientation(): AxesTextOrientation; set labelOrientation(value: AxesTextOrientation); private _title; private _titleSize; private _titleIndexCount; private _titleIndexOffset; private _titleMMatrix; get titleIndexCount(): number; get titleIndexOffset(): number; get titleMMatrix(): mat4; set title(value: string); set titleSize(value: number); hasChangedCallback: () => void; constructor(core: Core, options: IKeyOptions); initialize(): void; update(elapsedTime: number): void; protected _update(size: vec3): void; } export interface INominalKeyOptions extends IKeyOptions { values: Float64Array; sizeX?: number; sizeY?: number; sizeZ?: number; spacing?: number; } export declare class NominalKey extends KeyBase { constructor(core: Core, options: INominalKeyOptions); }