import type { IVector2, IVector3 } from "type-tls"; import { Vector3 } from "three"; import type { ParticleVolumeFeaturePoint, SphereParticleVolumeFeature } from "./type"; /** * 数值累积函数 * @remarks * 当某一个点处理多个区域数据内时,需要考虑多个数据区域在该点的累积效果,通过该函数来获取最终的累积结果 * @param values - 值的列表 * @param clim - 默认的映射区间 * @returns 累积后的最终值 */ export type NumberValuesAccumulate = (values: number[], clim: IVector2) => number; /** * 轴线梯度函数的参数 */ export interface LineGradientParams { /** * 梯度的变化比率 * @remarks * 一般是当前轴线位置到轴线开始处距离 与 轴线的长度的比率 */ ratio: number; /** * 轴线的长度 */ length: number; /** * 当前点的坐标 */ point: Vector3; /** * 轴线起始点处的半径 */ startRadius: number; /** * 轴线终点处的半径 */ endRadius: number; /** * 轴线终点处的半径相对起始点处的半径的增加量;即 `endRadius - startRadius` */ addedRadius: number; /** * 选项中默认的半径 */ defaultRadius: number; /** * 当前中心点的半径 * @remarks * 注意:在 `radiusGradient` 中,该值就是 `defaultRadius`; */ radius: number; /** * 轴线起始点处的值 */ startValue: number; /** * 轴线终点处的值 */ endValue: number; /** * 轴线终点处的值相对起始点处的值的增加量;即 `endValue - startValue` */ addedValue: number; /** * 选项中默认的值 */ defaultValue: number; /** * 轴线起始点处的空心比率 */ startHollow: number; /** * 轴线终点处的空心比率 */ endHollow: number; /** * 轴线终点处的空心比率相对起始点处的空心比率的增加量;即 `endHollow - startHollow` */ addedHollow: number; /** * 选项中默认的空心比率 */ defaultHollow: number; } /** * 轴线值梯度函数 * @remarks * 会通过该函数来获取从轴线的起始点到终点之间轴线上各点处的值 * @param params - 梯度参数;包含了当前点处的相关信息 * @returns 返回最终的值 */ export type GetLineGradientValue = (params: LineGradientParams) => number; /** * 默认的半径梯度函数 * @param param0 * @returns */ export declare function radiusGradient_Default({ startRadius, addedRadius, ratio }: LineGradientParams): number; /** * 默认的空心比率梯度函数 * @param param0 * @returns */ export declare function hollowGradient_Default({ startHollow, addedHollow, ratio }: LineGradientParams): number; /** * 默认的轴线值梯度函数 * @param param0 * @returns */ export declare function lineValueGradient_Default({ startValue, addedValue, ratio }: LineGradientParams): number; /** * 默认的数值累积函数 * @param values * @param clim * @returns */ export declare function numberValuesAccumulate_Default(values: number[], clim: IVector2): number; /** * 创建线性3D数据的选项 */ export interface LineData3DOptions extends SphereParticleVolumeFeature { /** * 体积粒子列表 */ points: ParticleVolumeFeaturePoint[]; /** * Data3D 的尺寸 * @defaultValue 从原点到 points 的AABB包围盒最大点的空间尺寸 */ size?: IVector3 | null; /** * 半径梯度函数 * @defaultValue radiusGradient_Default */ radiusGradient?: GetLineGradientValue; /** * 空心比梯度函数 * @defaultValue hollowGradient_Default */ hollowGradient?: GetLineGradientValue; /** * 轴线值梯度函数 * @defaultValue lineValueGradient_Default */ lineValueGradient?: GetLineGradientValue; /** * 值累积函数 * @defaultValue numberValuesAccumulate_Default */ valuesAccumulate?: NumberValuesAccumulate; } /** * 创建线性Data3D数据 * @param options * @returns */ export declare function createLineData3D(options: LineData3DOptions): { particles: Vector3[]; values: number[]; size: Vector3; data: number[]; }; //# sourceMappingURL=createLineData3D.d.ts.map