1. 外部构件节点信息
位于:BOS3D.ExternalObjectNodeInfo
1.1. 属性
1.1.1. type
- ExternalObjectNodeInfoType 类型
1.1.2. nodeId
-
1.1.3. matrix
1.1.4. center
- 记录中心位置,因为构件的中心点不一定是原点,因此升版之后可能不在原来的位置,需要根据这个值来定位到原来位置
1.1.5. modelKey
- type=ExternalObjectNodeInfoType.model 时候有效
1.1.6. componentKey
- ExternalObjectNodeInfoType.component 时候有效
1.1.7. componentsKey
- type=ExternalObjectNodeInfoType.components 时候有效
1.1.8. children
- type=ExternalObjectNodeInfoType.group 时候有效
2. 外部构件转换器 ExternalObjectConverter
位于:BOS3D.ExternalObjectConverter
- 外部构件:由外部添加进来的模型、构件、mesh 等,统称为外部构件,区别于场景中模型的构件;
- 节点(node):外部构件添加到场景后,视为场景里的一个节点,由 viewer 生成并持有,每个节点都有唯一标识,由本模块负责生成,所有在场景中的操作(如变换)都是根据这个节点标识进行的
2.1. 类声明
表示一个转换器
名称 | 说明 | 类型 | 是否必须 | 示例 |
---|---|---|---|---|
host | 数据的来源,一般为 BOS3D 服务端的地址 | 字符串 String | 是 | "https://bos3d.bimwinner.com" |
projectUrl | 项目 key | 字符串 String | 是 | "1232" |
accessToken | 用户令牌 | 字符串 String | 是 | "1232" |
示例
var eoc = new BOS3D.ExternalObjectConverter(host, projectUrl, accessToken);
2.2. 属性
2.3. 方法
2.3.1. getExternalObjectByModelKey
加载模型数据,并组织成 THREE.Group 对象,模型中的每个构件构成其 children
名称 | 说明 | 类型 | 是否必须 | 示例 |
---|---|---|---|---|
modelKey | 模型的 key | 字符串 String | 是 | "M123" |
返回值说明 | 类型 | 示例 |
---|---|---|
返回 Promise 对象,成功回调参数为 THREE.Group 对象,失败参数表示失败原因 | Promise | null |
调用方式:
/**
* 加载模型数据,并组织成THREE.Group对象,模型中的每个构件构成其children
* @function getExternalObjectByModelKey
* @param { string } modelKey 模型的key
* @return { Promise } 返回Promise对象,成功回调参数为THREE.Group对象,失败参数表示失败原因
*/
var promise = eoc.getExternalObjectByModelKey("M123");
promise.then((group) => {
console.log(group);
});
demo 示例
示例名称 | 示例地址 |
---|---|
加载单个模型 | 去体验 |
2.3.2. getExternalObjectByComponentKey
加载构件数据,并组织成 THREE.Mesh 对象
名称 | 说明 | 类型 | 是否必须 | 示例 |
---|---|---|---|---|
componentKey | 构件 key | 字符串 String | 是 | "M123_456" |
返回值说明 | 类型 | 示例 |
---|---|---|
返回 Promise 对象,成功回调参数为 THREE.Group 对象,失败参数表示失败原因 | Promise | null |
调用方式:
/**
* 加载构件数据,并组织成THREE.Mesh对象
* @function getExternalObjectByComponentKey
* @param { string } componentKey 构件key
* @return { Promise } 返回Promise对象,成功回调参数为THREE.Mesh对象,失败参数表示失败原因
*/
var promise = eoc.getExternalObjectByComponentKey("M123_456");
promise.then((mesh) => {
console.log(mesh);
});
demo 示例
示例名称 | 示例地址 |
---|---|
加载单个构件 | 去体验 |
2.3.3. getExternalObjectByComponentsKey
加载构件数据,并组织成 THREE.Mesh 对象
名称 | 说明 | 类型 | 是否必须 | 示例 |
---|---|---|---|---|
componentKeys | 构件 key 数组 | 字符串数组 array | 是 | "M123_456" |
返回值说明 | 类型 | 示例 |
---|---|---|
返回 Promise 对象,成功回调参数为 THREE.Group 对象,失败参数表示失败原因 | Promise | null |
调用方式:
/**
* 加载模型数据,并组织成THREE.Group对象,所有构件构成其children
* @function getExternalObjectByComponentsKey
* @param { array } componentKeys 构件key数组
* @return { Promise } 返回Promise对象,成功回调参数为THREE.Group对象,失败参数表示失败原因
*/
var promise = eoc.getExternalObjectByComponentsKey(["M123_456"]);
promise.then((group) => {
console.log(group);
});
demo 示例
示例名称 | 示例地址 |
---|---|
加载多个构件 | 去体验 |
2.3.4. getExternalObjectByNodeInfo
加载模型数据,并组织成 THREE.Group 对象,模型中的每个构件构成其 children。nodeInfo 的样例数据可以调用 eoc.testData()方法获取
名称 | 说明 | 类型 | 是否必须 | 示例 |
---|---|---|---|---|
info | 节点信息 | BOS3D.ExternalObjectNodeInfo | 是 | "1232" |
返回值说明 | 类型 | 示例 |
---|---|---|
返回 Promise 对象,成功回调参数为 THREE.Group 对象,失败参数表示失败原因 | Promise | null |
调用方式:
/**
* 根据节点信息加载数据,根据节点类型,返回不同的对象,可能值有{THREE.Group,THREE.Mesh}
* @function getExternalObjectByNodeInfo
* @param { ExternalObjectNodeInfo } info 节点信息
* @return {Promise} 返回Promise对象,成功回调参数为THREE.Group对象,失败参数表示失败原因
*/
var promise = eoc.getExternalObjectByNodeInfo({});
promise.then((group) => {
console.log(group);
});