import { Effect } from "./Effect";
/**
* 雨效果类,用于创建和管理雨效果。
* @class RainEffect
* @extends THING.Effect
* @memberof THING
* @example
* // 创建雨效果
* const rainEffect = new THING.RainEffect();
*
* // 添加效果到相机
* app.camera.addEffect('rain', rainEffect);
*
* // 配置雨效果属性
* rainEffect.speed = 1.0; // 设置雨下落速度
* rainEffect.size = 0.6; // 设置雨滴大小
* rainEffect.angle = 10; // 设置下落角度
* rainEffect.density = 1.0; // 设置雨密度
* rainEffect.strength = 1.0; // 设置效果强度
* rainEffect.coverStrength = 0.2; // 设置地面雨水覆盖强度
* rainEffect.coverDensity = 0.75; // 设置地面雨水覆盖密度
* rainEffect.coverSize = 5.0; // 设置地面雨水覆盖大小
* rainEffect.coverSpeed = 1.0; // 设置地面雨水流动速度
*
* // 设置地面雨水纹理
* rainEffect.coverTexture = new THING.ImageTexture('./images/RippleTex.png');
*
* // 移除效果
* app.camera.removeEffect('rain');
* @public
*/
class RainEffect extends Effect {
/**
* @constructor
* @public
*/
constructor(params) {
super(params);
this.createResourceNode('RainEffect');
}
// #region Accessor
/**
* 获取/设置雨速。
* @type {number}
* @default 1.0
* @public
*/
get speed() {
return this.resource.getSpeed();
}
set speed(value) {
this.resource.setSpeed(value);
}
/**
* 获取/设置雨大小。
* @type {number}
* @default 0.6
* @public
*/
get size() {
return this.resource.getSize();
}
set size(value) {
this.resource.setSize(value);
}
/**
* 获取/设置雨角度。
* @type {number}
* @default 10
* @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 0.2
* @public
*/
get coverStrength() {
return this.resource.getCoverStrength();
}
set coverStrength(value) {
this.resource.setCoverStrength(value);
}
/**
* 获取/设置雨覆盖密度。
* @type {number}
* @default 0.75
* @public
*/
get coverDensity() {
return this.resource.getCoverDensity();
}
set coverDensity(value) {
this.resource.setCoverDensity(value);
}
/**
* 获取/设置雨覆盖大小。
* @type {number}
* @default 5.0
* @public
*/
get coverSize() {
return this.resource.getCoverSize();
}
set coverSize(value) {
this.resource.setCoverSize(value);
}
/**
* 获取/设置雨覆盖速度。
* @type {number}
* @default 1.0
* @public
*/
get coverSpeed() {
return this.resource.getCoverSpeed();
}
set coverSpeed(value) {
this.resource.setCoverSpeed(value);
}
/**
* 设置雨覆盖纹理。
* @type {ImageTextureResource}
* @default null
* @public
*/
set coverTexture(imageTexture) {
this.resource.setCoverTexture(imageTexture.getTextureResource());
}
// #endregion
}
export { RainEffect }