1.0.7 • Published 2 months ago
bim3d v1.0.7
bim3d
基于three.js封装的工具函数,用于更快的搭建three.js场景。
需在已安装thee.js、tweenjs的基础上使用
安装
使用npm:
$ npm install bim3d
Using yarn:
$ yarn add bim3d
使用pnpm:
$ pnpm add bim3d
一旦安装了包,你可以使用' import '或' require '方法导入库:
import { BIM3D } from 'bim3d';
初始化three.js场景:
let bim3d = new BIM3D(dom容器)
bim3d.init()
释放场景,用于页面销毁时释放内存:
bim3d.dispose()
加载环境贴图:
加载一个hdr环境图,并将其设置为场景的背景和环境。函数接受参数是hdr环境图的地址(url)。
bim3d.initEnvironment(url);
加载地面:
创建一个平面作为地面,并将其添加到指定的组(group)中。函数接受两个参数,第一个参数是贴图的地址(url),第二个参数是要添加地面的组对象(group)。
bim3d.initGround(url,group);
加载模型:
// 生成模型组
// initGroupModel("模型组的名字")
bim3d.initGroupModel("buildingGroup").then((res) => {
// 加载模型,并将模型添加到你刚刚生成的模型组里
// loadGltf(模型地址,位置,组,缩放)
bim3d
.loadGltf(
"/tower_crane/scene.gltf",
{ x: 0, y: -38, z: 0 },
bim3d.buildingGroup,
[1.5, 1.5, 1.5]
)
.then(() => {
resolve();
});
});
模型点击事件:
用于获取点击模型时获取模型对象,data为点击的模型对象
bim3d.clickEventListener = (data) => {};
模型轮廓效果:
用于添加轮廓效果的通道到Three.js场景中的模型上的。它的作用是在模型的边缘周围创建一个轮廓效果,以突出显示模型的形状。函数接受参数是模型对象(model)。
// 创建高亮组
bim3d.initGroupModel("outlinePassGroup");
// 添加模型轮廓渲染,内部函数会将高亮的模型对象添加到高亮组
bim3d.addOutlinePass(model)
// 移除模型轮廓渲染
bim3d.removeOutlinePass()
流动管道效果:
用于创建一个具有贴图流动效果的的管道,第一个参数是贴图的地址(url),第二个参数是一个包含一系列点坐标的数组(pointsArr)。
bim3d.initPipe(url,pointsArr)
创建发光旋转四棱锥:
用于创建一个发光旋转四棱锥
bim3d.initRotatingPyramidWithGlow(position, color = "0xffff00", opacity = 1)
// 移除
bim3d.clearRotatingPyramidWithGlow()
位移动画效果:
用于实现位移动画效果,将一个物体从原来的位置移动到新的位置。函数接受四个参数,分别是需要移动的物体(cube)、物体原来的位置(oldPo)、物体新的位置(newPo)和动画的时间(time)。
bim3d.initTweenNone(cube, oldPo, newPo, time)
更新相机位置:
用于更新相机的位置。它使用了Tween.js库来创建一个动画效果,将相机的位置从当前位置移动到指定的位置。
函数接受两个参数:position
表示目标位置,offset
表示相对于目标位置的偏移量,默认为{x: 0, y: 0, z: 0}。
bim3d.updateCamera(position, offset)
//还原相机位置(position为需要还原的目标位置)
bim3d.resetCamera(position)