import { Effect } from "./Effect";
/**
* 雪花效果类,用于创建和管理雪花效果。
* @class SnowEffect
* @extends Effect
* @memberof THING
* @example
* // 创建雪花效果
* const snowEffect = new THING.SnowEffect();
*
* // 添加效果到相机
* app.camera.addEffect('snow', snowEffect);
*
* // 配置雪花效果属性
* snowEffect.speed = 1.0; // 设置雪花下落速度
* snowEffect.size = 1.5; // 设置雪花大小
* snowEffect.angle = 0; // 设置下落角度
* snowEffect.density = 1.0; // 设置雪花密度
* snowEffect.strength = 1.0; // 设置效果强度
* snowEffect.cover = 1.0; // 设置覆盖率
* snowEffect.color = [1, 1, 1]; // 设置雪花颜色(RGB数组)
* snowEffect.fxaa = false; // 启用/禁用FXAA
*
* // 移除效果
* app.camera.removeEffect('snow');
* @public
*/
class SnowEffect extends Effect {
/**
* @constructor
* @public
*/
constructor(params) {
super(params);
this.createResourceNode('SnowEffect');
}
/**
* 获取/设置雪花速度。
* @type {number}
* @default 1.0
* @public
*/
get speed() {
return this.resource.getSpeed();
}
set speed(value) {
this.resource.setSpeed(value);
}
/**
* 获取/设置雪花大小。
* @type {number}
* @default 1.5
* @public
*/
get size() {
return this.resource.getSize();
}
set size(value) {
this.resource.setSize(value);
}
/**
* 获取/设置雪花角度。
* @type {number}
* @default 0.0
* @public
*/
get angle() {
return this.resource.getAngle();
}
set angle(value) {
this.resource.setAngle(value);
}
/**
* 获取/设置雪花密度。
* @type {number}
* @default 1.0
* @public
*/
get density() {
return this.resource.getDensity();
}
set density(value) {
this.resource.setDensity(value);
}
/**
* 获取/设置雪花强度。
* @type {number}
* @default 1.0
* @public
*/
get strength() {
return this.resource.getStrength();
}
set strength(value) {
this.resource.setStrength(value);
}
/**
* 获取/设置覆盖率。
* @type {number}
* @default 1.0
* @public
*/
get cover() {
return this.resource.getCover();
}
set cover(value) {
this.resource.setCover(value);
}
/**
* 获取/设置颜色。
* @type {Array<number>}
* @default - [1.0, 1.0, 1.0]
* @public
*/
get color() {
return this.resource.getColor();
}
set color(value) {
this.resource.setColor(value);
}
/**
* 获取/设置FXAA。
* @type {boolean}
* @default false
* @public
*/
get fxaa() {
return this.resource.getFxaa();
}
set fxaa(value) {
this.resource.setFxaa(value);
}
}
export { SnowEffect }