快速接入
- 将viewer资源包存放到业务端项⽬中,资源包截图如下。
- 创建网页集成viewer资源,代码参考如下:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable= 0" name="viewport"> <title></title> </head> <body> <!-- ⽤于放模型展⽰的iframe,id不能修改 --> <div id="iframeDiv"> </div> </body> <!-- 引⼊公共控制类,⽤于控制模型外部数据传递--> <script src="viewer.js"></script> <script> window.onload = function () { nd_viewCtrl.init({ src:"./models/bim" //轻量化⽂件所在⽂件夹路径 }); } </script> </html>
- 加载模型。
在window.onload事件中调用控制类方法 nd_viewCtrl.init 即可进行模型加载 。
- 控制类方法和对外方法详细说明。
Table 1. 控制类方法详细解: 属性 类型 说明 回调参数 src String 初始化模型地址。不 赋值时为独入口 - init(opt) Function 初始化模型 opt:业务端可传入自定义的参数用于修改控制类属性 hidebtnCfg Arrary 配置隐藏功能按钮, 打开:#ico-import
保存:#ico-publish
- fingerHttp String 设置云api地址 - initLoad() Function 模型加载完成后的通 知 - loadFaild() Function 模型资源加载错误 - initAloneModel(cc) Function 独立入口时点击了导入文件时触发 cc:回调函数,传值模型地址并执行,即可在独立入口初始化模型 insertAddModel() Function 动画工具点击"插 入"按钮时触发,可配合nd_insertAddModel接口插入模型 - insertModelFail() Function 动画工具“插入”模型失败 - insertModel() Function 动画工具点击了“打开”按钮时触发,可配 合替换模型的接口 nd _insertModel 使用 - initAddModelLoad() Function 通过按钮"打开"模型加载成功 - initAddModelFaild Function 通过按钮"打开"模型加载失败 - publishAniModel({name, jsBlob, path}) Function 动画工具点击’保存’模型时触发。业务端会 收到回调信息,将文件流jsBlob解压到保存地址path,轻量化文件的动画即制作完成。通过调用 nd_pub lishAniSuccess或nd_ publishAniFaild接口通知viewer保存成功/ 失败 jsBlob: 动画发布的文件 path:动画发布文件 的保存路径
Table 2. Viewer对外方法详解: 属性 类型 说明 入参 返回值 nd_insertModel (url) Function 替 换 / 打 开 模 型。点击打开按 钮后,业务端调 ⽤此接⼝替换当 前主模型 url: 模型地址 - nd_publishAniS uccess() Function 通知动画⼯具发 布成功 - - nd_publishAniFaild() Function 通知动画⼯具发 布失败 - - nd_publishAniClear() Function 清除动画⼯具发 布状态 - - nd_insertAddModel Function(url) 根据模型地址插入模型, 在insertAddModel 方法触发后调用,鼠标会跟 随显示模型包围 盒,单击后模型插入到指定位置 url:模型地址 - nd_insertModel ByPosition function(url, par ams) 按位置插入模型,可以通过世 界矩阵 matrix 设置模型位置 url:模型地址 params:{matrix: [1,0,0,0,0,1,0,0,0, 0,1,0,100,0,0,1]}
模型世界矩阵信息- - 动画工具与业务端交互流程图。