/*! * Copyright (c) Microsoft Corporation. * Licensed under the MIT License. */ /// import { mat4, vec3 } from "gl-matrix"; import { Font } from "../../font.js"; import { ITextMetric } from "../../helpers/text.js"; import { Core, IPickAxesGrid, IPickAxesLabel, IPickAxesTitle, AxesTextOrientation, IPickAxesHeading } from "../../main.js"; import { IComponent, IComponentVisual } from "../component.js"; export interface ICartesian1dAxisHelperOptions { scaling?: number; minBoundsX?: number; maxBoundsX?: number; minValueX?: number; maxValueX?: number; isDiscreteX?: boolean; divisionsX?: number; minorGridlinesX?: number; labelsX?: { (value: number): string; (value: number): string; }; labelMinorSizeX?: number; labelMajorSizeX?: number; titleX?: string; titleSizeX?: number; headingX?: string; headingSizeX?: number; labelOrientationX?: AxesTextOrientation; arePickDivisionsVisibleX?: boolean; isDivisionPickingEnabledX?: boolean; isLabelPickingEnabledX?: boolean; reverseX?: boolean; } export interface ICartesian2dAxesHelperOptions extends ICartesian1dAxisHelperOptions { minBoundsY?: number; maxBoundsY?: number; minValueY?: number; maxValueY?: number; isDiscreteY?: boolean; divisionsY?: number; minorGridlinesY?: number; labelsY?: { (value: number): string; (value: number): string; }; labelMinorSizeY?: number; labelMajorSizeY?: number; titleY?: string; titleSizeY?: number; headingY?: string; headingSizeY?: number; labelOrientationY?: AxesTextOrientation; arePickDivisionsVisibleY?: boolean; isDivisionPickingEnabledY?: boolean; isGridPickingEnabled?: boolean; isLabelPickingEnabledY?: boolean; reverseY?: boolean; } export interface ICartesian3dAxesHelperOptions extends ICartesian2dAxesHelperOptions { minBoundsZ?: number; maxBoundsZ?: number; minValueZ?: number; maxValueZ?: number; isDiscreteZ?: boolean; divisionsZ?: number; minorGridlinesZ?: number; labelsZ?: { (value: number): string; (value: number): string; }; labelMinorSizeZ?: number; labelMajorSizeZ?: number; titleZ?: string; titleSizeZ?: number; headingZ?: string; headingSizeZ?: number; labelOrientationZ?: AxesTextOrientation; arePickDivisionsVisibleZ?: boolean; isDivisionPickingEnabledZ?: boolean; isLabelPickingEnabledZ?: boolean; reverseZ?: boolean; } export interface IAxesVisual extends IComponentVisual { axes: AxesBase; pickVMatrix: mat4; pickPMatrix: mat4; isPickingEnabled: boolean; } export declare class AxesVisual implements IAxesVisual { axes: AxesBase; pickVMatrix: mat4; pickPMatrix: mat4; isPickingEnabled: boolean; 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(axes: AxesBase); } export declare abstract class AxesBase implements IComponent { protected _core: Core; protected _hasChanged: boolean; protected _textMetric: ITextMetric; protected _isInitialized: boolean; get isInitialized(): boolean; protected _mMatrix: mat4; protected _mvMatrix: mat4; protected _vMatrix: mat4; set vMatrix(value: mat4); mMatrix: mat4; arePickDivisionsVisible: boolean[]; areFacesVisible: boolean[]; textBorderWidth: number; textColor: vec3; textHoverColor: vec3; textBorderColor: vec3; gridMajorThickness: number; gridMinorThickness: number; gridZeroThickness: number; gridBackgroundColor: vec3; gridHighlightColor: vec3; gridMajorColor: vec3; gridMinorColor: vec3; gridZeroColor: vec3; isAxisReversed: boolean[]; isGridPickingEnabled: boolean; isDivisionPickingEnabled: boolean[]; isLabelPickingEnabled: boolean[]; isTitlePickingEnabled: boolean[]; isHeadingPickingEnabled: boolean[]; pickGridLookup: { [index: number]: number; }; protected _pickGrid: number[]; pickGrid(id: number): IPickAxesGrid; pickTitleLookup: { [index: number]: number; }; protected _pickTitle: number[]; pickTitle(id: number): IPickAxesTitle; pickLabelLookup: { [index: number]: number; }; protected _pickLabel: number[]; pickLabel(id: number): IPickAxesLabel; pickHeadingLookup: { [index: number]: number; }; protected _pickHeading: number[]; pickHeading(id: number): IPickAxesHeading; protected _fromValues: number[][]; protected _toValues: number[][]; getFromValues(index: number): number[]; setFromValues(index: number, value: number[]): void; getToValues(index: number): number[]; setToValues(index: number, value: number[]): void; gamma: number; protected _font: Font; get font(): Font; set font(value: Font); protected _gridPickDivisionHeight: number; get gridPickDivisionHeight(): number; set gridPickDivisionHeight(value: number); hasChangedCallback: () => void; constructor(core: Core); update(elapsedTime: number): void; }