举荐:将 NSDT场景编辑器 退出你的3D开发工具链https://ted.sinoccdc.cn/?sourceId=9
Viewer 是形容孪生世界的顶层对象,提供场景绘制和交互的画布。场景如下:构造函数Viewer(element)
在参数element指定的 DOM 元素中创立孪生世界场景。示例代码://import { Viewer } from 'nsdt@ted' //引入Viewer类
const viewer = new Viewer('container') //在id为container的元素内创立孪生世界
const sceneId = "63a13d2d39c45778ba1bedd0"; //要加载的场景的id
viewer.loadScene(sceneId,() => { //加载场景数据
console.log('completed!')
})
属性.canvas: HTMLCanvasElement以后场景 canvas 容器。.scene: THREE.Scene孪生世界的 THREE.JS scene 场景。.camera: Camera孪生世界中的摄像机。.objectGroup: THREE.Object3D[]孪生世界中所有可拾取的 Object3d 对象。办法.addLayer(layer: Layer): Void在孪生世界中创立数据图层。示例代码://import DT from 'nsdt@ted'
const modelLayer = new DT.layer.ModelLayer("models"); //创立一个图层
viewer.addLayer(modelLayer);
.removeLayer(layer: Layer): Void在孪生世界中删除数据图层。.hasLayer(layer: Layer): Boolean查问图层是否存在。.getLayer(id: string): Layer | undefined通过图层 id 获取图层。.getLayers(): Layer[]获取全副图层。.getTwins(id: String): Overlay通过挛生体 id 获取挛生体。.getWorldTree(): JSON获取世界纲要树。参数阐明children图层组中的挛生体id图层组 idlabel图层组名字type图层组类型visible是否显示CHILDREN参数阐明id挛生体 idlayerId图层组 idlabel挛生体名字type挛生体类型visible是否显示.pickupCoord(event:MouseEvent): THREE.Vector3 | null拾取与立体交点的坐标。.pickup(event:MouseEvent): Object | null拾取孪生世界 蕴含在 objectGroup 中的模型。.setActiveOverlays(overlay: Overlay[] | string[]): Void | null传入挛生体实例对象或挛生体id,批量设置挛生体的突围框。.clearActive(): Void | null清空所有挛生体的突围框。.destroy(): Void销毁场景。.statistics(): { element: String, vertices: String, triangles: String }统计场景中的 mesh 数量、顶点数和面数。.loadScene(sceneId: string, cb: Function) Void通过场景 id 加载孪生世界场景。viewer.loadScene(sceneId,() => {
console.log('completed!')
})
.getRoamingList(sceneId: string, cb: Function) Void通过场景 id 获取孪生世界的漫游列表。viewer.getRoamingList(sceneId, (res) => {
const roamData = res[0].points
const roaming = DT.RoamingPath.createRoamingPath(roamData, () => {
console.log("complete");
});
roaming.start();
});
.setObjectGroup() THREE.Object3D[]从新设置 objectGroup 数组,筛选出可拾取的 Object3d 对象。.on(event: String, handler: Function, context?:Any): Void 绑定孪生世界事件的监听处理器。.off(event: String, handler: Function): Void解绑孪生世界事件的监听处理器。.trigger(event: String): Void触发绑定的孪生世界事件。事件目前反对的事件如下:事件阐明DT.MouseEventType.CLICK当鼠标点击场景时触发DT.MouseEventType.DB_CLICK当鼠标双击场景时触发DT.MouseEventType.MOUSE_DOWN当鼠标摁下时触发DT.MouseEventType.MOUSE_UP当鼠标抬起时触发DT.MouseEventType.MOUSE_MOVE当鼠标挪动时触发DT.MouseEventType.RIGHT_CLICK当鼠标右击时触发示例代码://监听鼠标单击事件
viewer.mouseEvent.on(DT.MouseEventType.CLICK, (e) => {
console.log(e) //打印鼠标信息
});3D建模学习工作室翻译整顿,转载请表明出处!Sign up for more like this.