下载链接


t3d.js


t3d_utils.js


componentUtils.js



TViewer


构造对象


new TViewer()


方法


init


init(domID, showDatGui, showStats)

初始化方法


参数

名称 类型 说明
domID String DOM元素 用于显示模型
showDatGui Boolean 是否显示控制面板
showStats Boolean 是否显示帧率

addGroup


addGroup (group)

add threejs模型


参数

名称 类型 说明
group Three.Group group对象

clearGroups


clearGroups()

清空模型


setView


setView(view)

设置视角


参数

名称 类型 说明
view String 可选 home front back top bottom left right

addListener


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


setPickupColor(color)

设置高亮颜色


参数

名称 类型 说明
color Number 颜色

示例

                 var  v = new TViewer();
                 v.setPickupColor(0xff0000);
                

fly


fly(points, interval, timeout)

漫游


参数

名称 类型 说明
points Object Array points: [{up:up,position:position,target:target},...]
interval Number 间隔
timeout Number 超时

stopFly


stopFly()

停止飞行



showAll


showAll()

显示全部模型



hideAll


hideAll()

隐藏全部模型



hideSelected


hideSelected(meshs)

隐藏选中构件


参数

名称 类型 说明
meshs Array Three.Mesh Array

showSelectedOnly


showSelectedOnly(meshs)

只显示选中构件


参数

名称 类型 说明
meshs Array Three.Mesh Array

showSelected


showSelected(meshs,color)

修改选中构件颜色


参数

名称 类型 说明
meshs Array Three.Mesh Array
color Number 颜色

doOneRender


doOneRender()

手动渲染一帧



setSceneSize


setSceneSize(width, height)

设置视图宽高


参数

名称 类型 说明
width Number 视图宽度
height Number 视图高度

setBGColor


setBGColor(color)

设置背景颜色


参数

名称 类型 说明
color Number 颜色

setStatsStyle


setStatsStyle(style)

设置帧数显示器样式


参数

名称 类型 说明
style String css样式

setDatGuiStyle


setDatGuiStyle(style)

设置控制器样式


参数

名称 类型 说明
style String css样式

getModelGroup


getModelGroup()

获取当前模型


返回

类型 说明
Three.Group group 对象

setDefaultAnimateSpeed


setDefaultAnimateSpeed(interval, timeout)

设置旋转速度


参数

名称 类型 说明
interval Number 间隔
timeout Number 超时

resetALLColorAndOpacity


resetALLColorAndOpacity()

重置模型原来颜色和透明度



showAxesHelper


showAxesHelper(length)

设置显示原点参考坐标


参数

名称 类型 说明
length Number 坐标轴长度

hideAxesHelper


hideAxesHelper()

隐藏原点参考坐标



refreshSize


refreshSize()

当窗口size有改变时要刷新



Intersection


测试两个mesh是否有交点,包括多边形mesh

方法



init


init()

初始化


示例

                    var intersection = new Intersection();
                    intersection.init();
                

intersectionGeometry


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);
                    });
                

Compression


deflate搭配u8arrayToStr使用,将服务端文本解压出来。只作用于zlib inflate压缩方式。


方法



deflate


deflate(blob, callback)

解压zlib inflate数据


参数

名称 类型 说明
blob responseType 请求返回类型为blob
callback function 回调函数

u8arrayToStr


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数据
                

ProgressBar


进度条


setMsg


setMsg(msg)

参数

名称 类型 说明
msg String 提示信息

show


show ()


hide


hide ()


progress


progress(num)

参数

名称 类型 说明
num Number 进度

componentUtils


模型构件方法


setPicture


setPicture(type,color, opacity,u, v, picture)

参数

v
名称 类型 说明
type String 类型
color Number 颜色
opacity Number 透明度(0,1)
uNumber 水平平铺数量
v Number 垂直平铺数量
picture url 图片

setopacity


setopacity(group,opacity,typeid)

参数

名称 类型 说明
group Three.Group group对象
opacity Number 透明度(0,1)
typeid String 构件类型

showLocation


showLocation(locationList, group, multiple,needIron,viewer,callback)

参数

名称 类型 说明
locationList Array 构件信息列表
group Three.Group group对象
multiple Number 缩放倍数
needIron Boolean 是否有箍筋
viewer TViewer TViewer对象
callback 函数 回调函数