Vue 使用 BIMFACE 实现3D着火demo(1)

let dom4Show = document.getElementById(‘domId’);

// 设置WebApplication3D的配置项

let webAppConfig = new Glodon.Bimface.Application.WebApplication3DConfig();

webAppConfig.domElement = dom4Show;

webAppConfig.enableExplosion = true;

// 创建WebApplication3D,用以显示模型

this.app = new Glodon.Bimface.Application.WebApplication3D(webAppConfig);

this.app.addView(this.viewToken);

this.viewer3D = this.app.getViewer();

// 增加加载完成监听事件

this.viewer3D.addEventListener(Glodon.Bimface.Viewer.Viewer3DEvent.ViewAdded, () => {

this.viewAdded = true;

//自适应屏幕大小

window.onresize = () => {

this.viewer3D.resize(document.documentElement.clientWidth, document.documentElement.clientHeight)

}

// 渲染场景

this.viewer3D.render();

});

},

failureCallback() {

},

setButtonText(btnId, text) {

var dom = document.getElementById(btnId);

if (dom != null && dom.nodeName == “BUTTON”) {

dom.innerText = text;

}

},

addFireEffect() {

if (!this.isFireEffectAdded) {

let firePos = {

x: -2194.954,

y: -7739.213,

z: 10527.306

}

let fireConfig = new Glodon.Bimface.Plugins.ParticleSystem.FireEffectConfig();

fireConfig.position = firePos;

fireConfig.viewer = this.viewer3D;

this.fireEffect = new Glodon.Bimface.Plugins.ParticleSystem.FireEffect(fireConfig);

this.setButtonText(“btnAddFireEffect”, “销毁火焰效果”);

this.viewer3D.render();

} else {

// 销毁火焰效果

this.fireEffect.destroy();

this.setButtonText(“btnAddFireEffect”, “添加火焰效果”);

}

this.isFireEffectAdded = !this.isFireEffectAdded;

},

setFireScale() {

if (!this.isFireEffectAdded) {

window.alert(“请先添加火焰效果”);

} else {

let scale = this.fireEffect.getScale();

if (scale == 1) {

// 设置火焰粒子比例

this.fireEffect.setScale(0.5);

// 更新火焰参数配置

this.fireEffect.update();

} else {

// 设置火焰粒子比例

this.fireEffect.setScale(1);

// 更新火焰参数配置

this.fireEffect.update();

}

}

},

setFireType() {

if (!this.isFireEffectAdded) {

window.alert(“请先添加火焰效果”);

} else {

let type = this.fireEffect.getType();

if (type == “Fire”) {

// 设置火焰类型

this.fireEffect.setType(Glodon.Bimface.Plugins.ParticleSystem.FireType.Smoke);

// 更新火焰参数配置

this.fireEffect.update();

} else {

// 设置火焰类型

this.fireEffect.setType(Glodon.Bimface.Plugins.ParticleSystem.FireType.Fire);

// 更新火焰参数配置

this.fireEffect.update();

}

}

},

setSmokeConcentration() {

if (!this.isFireEffectAdded) {

window.alert(“请先添加火焰效果”);

} else {

let concentration = this.fireEffect.getSmokeConcentration();

if (concentration == 0.6) {

// 设置烟雾浓度

this.fireEffect.setSmokeConcentration(0.2);

// 更新火焰参数配置

this.fireEffect.update();

} else {

// 设置烟雾浓度

this.fireEffect.setSmokeConcentration(0.6);

// 更新火焰参数配置

this.fireEffect.update();

}

}

}

},

}

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值