UNPKG

@three3d/volume

Version:

@three3d/volume 提供了 ThreeJS 的云效果,包括:点状云、线状云、热力云

99 lines 2.2 kB
import type { IVector2, IVector3 } from "type-tls"; import type { Vector3 } from "three"; /** * 梯度函数的参数 */ export interface GradientParams { /** * 梯度的变化比率 * @remarks * 一般是当前点与其所属中心点的距离和中心点半径的比率 */ ratio: number; /** * 当前中心点的半径 */ radius: number; /** * 当前中心点空心比率 */ hollow: number; /** * 根据空间比率计算的空心半径 */ hollowRadius: number; /** * 当前点与其所属中心点的距离 */ distance: number; /** * 值 */ value: number; /** * 值的范围 */ clim: IVector2; /** * 当前点的坐标 */ point: Vector3; } /** * 值梯度函数 * @remarks * 会通过该函数来获取在中心点及其半径范围内各点处的值 * @param params - 梯度参数;包含了当前点处的相关信息 * @returns 返回最终的值 */ export type GetGradientValue = (params: GradientParams) => number; /** * 默认的值梯度函数 */ export declare function valueGradient_Default({ ratio, value }: GradientParams): number; /** * 体积特征 */ export interface VolumeFeature { /** * 半径 * * @defaultValue 10 */ radius?: number; /** * 值 * * @defaultValue 100 */ value?: number; } /** * 粒子体积特征 */ export interface ParticleVolumeFeature extends VolumeFeature { /** * 空心因子 * * @defaultValue 0 */ hollow?: number; } export interface SphereParticleVolumeFeature extends ParticleVolumeFeature { /** * 映射区间 * @remarks * x 为最小值,y 为最大值 * * @defaultValue {x:0,y:100} */ clim?: IVector2; /** * 值梯度函数 */ valueGradient?: GetGradientValue; } export type ParticleVolumeFeaturePoint = ParticleVolumeFeature & IVector3; export type ParticleVolumeFeaturePointInfo = Required<ParticleVolumeFeaturePoint>; export type ParticleVolumeFeatureVectorInfo = Required<ParticleVolumeFeature> & Vector3; //# sourceMappingURL=type.d.ts.map