1. cloneComponentByKey
克隆构件。
1.1. 参数说明:
名称 | 说明 | 类型 | 是否必填 | 示例 |
---|---|---|---|---|
key | 构件 key | 字符串 string | 是 | M123456_123456 |
controllerName | 构件变换控制器名称 | string:["translate"|"scale"|"rotate"] | 否 | "translate" |
返回值说明 | 类型 | 示例 |
---|---|---|
克隆构件 mesh 和 key | object | {mesh:THREE.Mesh|MeshEx,key:string} |
1.2. 调用方式:
/**
* 根据指定的构件key,克隆构件(只针对BOS3D解析生成的场景内部构件使用)
* 克隆出来的构件会自带两个额外属性
* xxx.byClone {boolean} 标识构件此对象时被克隆出来的
* xxx.originMId {string} 标识构件的原始材质Id
* xxx.originComponentKey 标识构件原始构件key
* @function cloneComponentByKey
* @param {string} key -构件key
* @param {"translate"|"scale"|"rotate"} [controllerName] -控制器名称
* 1:克隆完成后,克隆构件会显示在原始构件位置,不易区分克隆是否完成,此时可以通过添加控制器表现克隆以完成
* 2:在业务上,克隆构件绘制的位置也并非是用户期望的位置,此时也可以通过此参数生成的变换控制器拖动旋转缩放构件至用户期望位置
* @returns {object} -返回被克隆的构件及构件key,用户可以自行修改mesh及通过key调用BOS3D方法
* 如: {mesh:THREE.Mesh|MeshEx,key:string}
*/
var t = viewer3D.cloneComponentByKey("M1629686277546_182328");
viewer3D.translateComponentByKey(t.mesh);
viewer3D.getRootScene().add(t.mesh);