t3d
t3d_utils
componentUtils
new TViewer()
init(domID, showDatGui, showStats)
初始化方法
参数
名称 | 类型 | 说明 |
domID | String | DOM元素 用于显示模型 |
showDatGui | Boolean | 是否显示控制面板 |
showStats | Boolean | 是否显示帧率 |
addGroup (group)
add threejs模型
参数
名称 | 类型 | 说明 |
group | Three.Group | group对象 |
clearGroups()
清空模型
setView(view)
设置视角
参数
名称 | 类型 | 说明 |
view | String | 可选 home front back top bottom left right |
addListener(type,callback)
注册监听事件
参数
名称 | 类型 | 说明 |
type | TViewer.eventTypes | 可选 eventTypes: onMeshSelected onPickup onMultiSelected |
callback | function | 回调函数 |
示例
var viewer = new TViewer(); viewer.addListener( viewer.eventTypes.onMeshSelected, function (m) { console.log(m) }
setPickupColor(color)
设置高亮颜色
参数
名称 | 类型 | 说明 |
color | Number | 颜色 |
示例
var v = new TViewer(); v.setPickupColor(0xff0000);
fly(points, interval, timeout)
漫游
参数
名称 | 类型 | 说明 |
points | Object Array | points: [{up:up,position:position,target:target},...] |
interval | Number | 间隔 |
timeout | Number | 超时 |
stopFly()
停止飞行
showAll()
显示全部模型
hideAll()
隐藏全部模型
hideSelected(meshs)
隐藏选中构件
参数
名称 | 类型 | 说明 |
meshs | Array | Three.Mesh Array |
showSelectedOnly(meshs)
只显示选中构件
参数
名称 | 类型 | 说明 |
meshs | Array | Three.Mesh Array |
showSelected(meshs,color)
修改选中构件颜色
参数
名称 | 类型 | 说明 |
meshs | Array | Three.Mesh Array |
color | Number | 颜色 |
doOneRender()
手动渲染一帧
setSceneSize(width, height)
设置视图宽高
参数
名称 | 类型 | 说明 |
width | Number | 视图宽度 |
height | Number | 视图高度 |
setBGColor(color)
设置背景颜色
参数
名称 | 类型 | 说明 |
color | Number | 颜色 |
setStatsStyle(style)
设置帧数显示器样式
参数
名称 | 类型 | 说明 |
style | String | css样式 |
setDatGuiStyle(style)
设置控制器样式
参数
名称 | 类型 | 说明 |
style | String | css样式 |
getModelGroup()
获取当前模型
返回
类型 | 说明 |
Three.Group | group 对象 |
setDefaultAnimateSpeed(interval, timeout)
设置旋转速度
参数
名称 | 类型 | 说明 |
interval | Number | 间隔 |
timeout | Number | 超时 |
resetALLColorAndOpacity()
重置模型原来颜色和透明度
showAxesHelper(length)
设置显示原点参考坐标
参数
名称 | 类型 | 说明 |
length | Number | 坐标轴长度 |
hideAxesHelper()
隐藏原点参考坐标
refreshSize()
当窗口size有改变时要刷新
测试两个mesh是否有交点,包括多边形mesh
init()
初始化
示例
var intersection = new Intersection(); intersection.init();
intersectionGeometry(mesh,mesh1,isDisposeBoundsTree)
测试两个 mesh是否有交点
参数
名称 | 类型 | 说明 |
mesh | Three.Mesh | 构件 |
mesh1 | Three.Mesh | 构件 |
isDisposeBoundsTree | Boolean | 是否嵌套构件 |
返回
类型 | 说明 |
Boolean | 有交点则返回True,否则返回false |
示例
var cubeGeometry = new THREE.BoxBufferGeometry(10,1,1); var cubeMaterial = new THREE.MeshPhongMaterial({ color:OxFF000e }): var cube = new THREE.Mesh(cubeGeometry,cubeMaterial); cube.position.set(5,o,0); cube.geometry.computeBoundsTree();//提高intersectsGeometry性能 g.add(cube); var geometry = new THREE.BoxBufferGeometry (10,1,1); var material = new THREE.MeshBasicMaterial({ color: ox03ff00 }); var cube1 = new THREE.Mesh(geometry,material); cube1.position.set(-5.1,0,0); cube.geometry.computeBoundsTree();//提高intersectsGeometry性能 g.add(cube1); g.updateworldMatrix(); v.addGroup(g); v.addListener(v.eventTypes.onMeshSelected,function (m){ var b = intersection.intersectsGeometry(cube,cube1,false); console.log(b); });
deflate搭配u8arrayToStr使用,将服务端文本解压出来。只作用于zlib inflate压缩方式。
deflate(blob, callback)
解压zlib inflate数据
参数
名称 | 类型 | 说明 |
blob | responseType | 请求返回类型为blob |
callback | function | 回调函数 |
u8arrayToStr(u8array, encode, callback)
U8array根据编码生成字符串
参数
名称 | 类型 | 说明 |
u8array | u8array | 解压数据 |
encode | String | 编码方式 |
callback | function | 回调函数 |
示例
var url = "http://10.1.40.112/gateway/bdm/autocdm/bdm/axisnet/getallcompgeometry ?projectid=" + projectid; var xhr = new XMLHttpRequest(); xhr.open("get", url, true); xhr.onload = function (e) { if (xhr.readyState === 4 && xhr.status === 200) { var array; var blobdata = xhr.response; var locationDatas; //解压数据 Compression.inflate(blobdata, function (d) { Compression.u8arrayToStr(d, "utf-8", function (d) { array = JSON.parse(d); locationDatas = array; __group.children = []; //解析模型 componentUtils.showLocation(locationDatas, __group, 100, false); viewer.setView("home"); viewer.doOneRender(); __group.updateMatrixWorld(true); viewer.addGroup(__group); }) }) } else { alert("提示", "模型加载失败"); } } xhr.onerror = function (e) { alert("获取模型数据失败"); } xhr.upload.onprogress = function (e) { } xhr.responseType = "blob"; xhr.send(null); // 开始上传,发送form数据
进度条
setMsg(msg)
参数
名称 | 类型 | 说明 |
msg | String | 提示信息 |
show ()
hide ()
progress(num)
参数
名称 | 类型 | 说明 |
num | Number | 进度 |
模型构件方法
setPicture(type,color, opacity,u, v, picture)
参数
名称 | 类型 | 说明 |
type | String | 类型 |
color | Number | 颜色 |
opacity | Number | 透明度(0,1) |
u | vNumber | 水平平铺数量 |
v | Number | 垂直平铺数量 |
picture | url | 图片 |
setopacity(group,opacity,typeid)
参数
名称 | 类型 | 说明 |
group | Three.Group | group对象 |
opacity | Number | 透明度(0,1) |
typeid | String | 构件类型 |
showLocation(locationList, group, multiple,needIron,viewer,callback)
参数
名称 | 类型 | 说明 |
locationList | Array | 构件信息列表 |
group | Three.Group | group对象 |
multiple | Number | 缩放倍数 |
needIron | Boolean | 是否有箍筋 |
viewer | TViewer | TViewer对象 |
callback | 函数 | 回调函数 |