/*! * Copyright (c) Microsoft Corporation. * Licensed under the MIT License. */ import { IBufferVisual } from "../buffer.js"; import { Core } from "../main.js"; import { LayoutBase, ILayoutOptions, IVertexOptions } from "./layout.js"; export interface IPythagorasTreeLayoutOptions extends ILayoutOptions { scalingX?: number; scalingY?: number; scalingZ?: number; angle?: number; randomAngle?: number; twist?: number; randomTwist?: number; } export interface IPythagorasTreeVertexOptions extends IVertexOptions { colors?: Float64Array | Uint32Array; minColor?: number; maxColor?: number; } export declare class PythagorasTree extends LayoutBase { private _vec3; private _quat; private _parentRight; private _parentUp; private _parentForward; private _parentScale; private _parentTranslation; private _parentRotation; private _parentTwist; private _childRotation; private _count; private _levels; private _volumes; private _positions; private _rotations; private _sizes; private _maxLevel; private _angle; private _twist; private _randomAngle; private _randomTwist; get levels(): Uint32Array; get maxLevel(): number; get volumes(): Float64Array; constructor(core: Core); static calculateTotalVertices(level: number): number; static calculateMaxLevel(vertices: number): number; layout(buffer: IBufferVisual, ids: Uint32Array, options: IPythagorasTreeLayoutOptions): void; update(buffer: IBufferVisual, ids: Uint32Array, options: IPythagorasTreeVertexOptions): void; private _branch; } export interface ITreeLayoutOptions extends ILayoutOptions { rootId: number; childIds: Uint32Array; parentIds: Uint32Array; sizeX?: number; sizeY?: number; sizeZ?: number; angle?: number; randomAngle?: number; twist?: number; randomTwist?: number; randomSplit?: number; lengthScaling?: number; thicknessScaling?: number; randomLengthScaling?: number; randomThicknessScaling?: number; minLength?: number; minThickness?: number; lengthScalings?: Float64Array; thicknessScalings?: Float64Array; splitAngles?: Float64Array; angles?: Float64Array; } export interface ITreeVertexOptions extends IVertexOptions { colors?: Float64Array | Uint32Array; minColor?: number; maxColor?: number; } export declare class Tree extends LayoutBase { private _vec3; private _quat; private _parentRights; private _parentUps; private _parentForwards; private _parentTwists; private _parentRight; private _parentUp; private _parentForward; private _parentRotation; private _parentTwist; private _childRotation; private _positions; private _rotations; private _sizes; private _sizeX; private _sizeY; private _sizeZ; private _angle; private _twist; private _lengthScaling; private _thicknessScaling; private _randomAngle; private _randomTwist; private _randomSplit; private _randomLengthScaling; private _randomThicknessScaling; private _minLength; private _minThickness; private _lengthScalings; private _thicknessScalings; private _splitAngles; private _angles; getPositionX(index: number): number; getPositionY(index: number): number; getPositionZ(index: number): number; getSizeX(index: number): number; getSizeY(index: number): number; getSizeZ(index: number): number; constructor(core: Core); layout(buffer: IBufferVisual, ids: Uint32Array, options: ITreeLayoutOptions): void; update(buffer: IBufferVisual, ids: Uint32Array, options: ITreeVertexOptions): void; private _branch; }