@three3d/volume
Version:
@three3d/volume 提供了 ThreeJS 的云效果,包括:点状云、线状云、热力云
99 lines • 2.2 kB
TypeScript
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