/*! * Copyright (c) Microsoft Corporation. * Licensed under the MIT License. */ import { vec3, vec4 } from "gl-matrix"; import { IBufferVisual } from "../buffer.js"; import { Core, UnitType } from "../main.js"; export interface ILayoutOptions { offset?: number; count?: number; } export interface IVertexOptions { offset?: number; count?: number; minBoundsX?: number; minBoundsY?: number; minBoundsZ?: number; maxBoundsX?: number; maxBoundsY?: number; maxBoundsZ?: number; selected?: Set; hover?: Float64Array | Uint32Array; order?: Float64Array | Uint32Array; minOrder?: number; maxOrder?: number; orderReverse?: boolean; staggerOrder?: number; staggerOrders?: Float64Array | Uint32Array; minStaggerOrder?: number; maxStaggerOrder?: number; staggerOrderReverse?: boolean; rounding?: number; roundings?: Float64Array; parameter1?: number; parameters1?: Float64Array; parameter2?: number; parameters2?: Float64Array; material?: number; materials?: Uint32Array; facetCoordsX?: Uint32Array; facetCoordsY?: Uint32Array; facetCoordsZ?: Uint32Array; facetSpacingX?: number; facetSpacingY?: number; facetSpacingZ?: number; facetsX?: number; facetsY?: number; facetsZ?: number; texCoord?: vec4; texCoords?: Float64Array; sdfBuffer?: number; sdfBuffers?: Uint8Array; sdfBorder?: number; sdfBorders?: Uint8Array; reverseX?: boolean; reverseY?: boolean; reverseZ?: boolean; materialType?: number; materialTypes?: Uint8Array; materialColor?: [number, number, number] | vec3; materialColors?: Float32Array | Float64Array; materialFuzz?: number; materialFuzzes?: Float32Array | Float64Array; materialRefractiveIndex?: number; materialRefractiveIndices?: Float32Array | Float64Array; materialGloss?: number; materialGlosses?: Float32Array | Float64Array; materialDensity?: number; materialDensities?: Float32Array | Float64Array; segmentColor?: [number, number, number, number] | vec4; segmentColors?: Float32Array | Float64Array; } export declare abstract class LayoutBase { protected _maxBounds: number; protected _core: Core; protected _boundsScaling: number; minLayoutBoundsX: number; minLayoutBoundsY: number; minLayoutBoundsZ: number; maxLayoutBoundsX: number; maxLayoutBoundsY: number; maxLayoutBoundsZ: number; minCumulativeLayoutBoundsX: number; minCumulativeLayoutBoundsY: number; minCumulativeLayoutBoundsZ: number; maxCumulativeLayoutBoundsX: number; maxCumulativeLayoutBoundsY: number; maxCumulativeLayoutBoundsZ: number; modelOriginX: number; modelOriginY: number; modelOriginZ: number; minModelBoundsX: number; minModelBoundsY: number; minModelBoundsZ: number; maxModelBoundsX: number; maxModelBoundsY: number; maxModelBoundsZ: number; protected _isFacetted: boolean; protected _facetSpacingX: number; protected _facetSpacingY: number; protected _facetSpacingZ: number; protected _facetSizeX: number; protected _facetSizeY: number; protected _facetSizeZ: number; protected _facetsX: number; protected _facetsY: number; protected _facetsZ: number; protected _facetScaling: number; get facetScaling(): number; offsetX(facetCoordX: number): number; offsetY(facetCoordY: number): number; offsetZ(facetCoordZ: number): number; constructor(core: Core); protected _updateModelBounds(options: IVertexOptions): void; resetCumulativeLayoutBounds(): void; protected _updateCumulativeLayoutBounds(): void; unitToModelSize(unitSize: number): number; unitToModelPositionX(unitPositionX: number): number; unitToModelPositionY(unitPositionY: number): number; unitToModelPositionZ(unitPositionZ: number): number; unitToModelPosition(unitPosition: vec3, modelPosition: vec3): void; modelToUnitSize(modelSize: number): number; modelToUnitPositionX(modelPositionX: number): number; modelToUnitPositionY(modelPositionY: number): number; modelToUnitPositionZ(modelPositionZ: number): number; modelToUnitPosition(modelPosition: vec3, unitPosition: vec3): void; inclusiveUnitBounds(buffer: IBufferVisual, ids: Uint32Array, unitType: UnitType, offset: number, count: number, minBounds: vec3, maxBounds: vec3): void; }