MMSDT.controlsTarget()
用于对IoT设备的聚焦
构造函数
MMSDT.controlsTarget( target: array, distance: Float, time: Integer )
target - 目标坐标数组,[x,y,z]。
distance - 数字,镜头与目标的距离。
time - 动作持续时间,毫秒。
代码示例
var MMS3D_exceptionMesh = []; //需要材质拆分的网格
var MMS3D_instancingMesh = ["Sc46134_2","Sc46753_2","Sc46264_2"]; //合并实例化网格
//初始化场景
MMSDT.initScene( false, MMS3D_exceptionMesh, MMS3D_instancingMesh );
camera.near = 5; //相机最近距离,小于该距离则事物不可见
camera.updateProjectionMatrix(); //重新设置后更新
//设置第3人称鼠标控制器
controls3.maxPolarAngle = Math.PI*0.495; //向下,最大角度限制
controls3.maxDistance = 400; //最远距离限制
controls3.enablePan = false; //是否开启鼠标右键屏幕空间平移
controls3.enableDamping = true; //是否开启惯性阻尼
controls3.dampingFactor = 0.1; //惯性阻尼系数
//使用json文件让场景还原
MMSDT.onloadScene( "models/mms3D_jianyu1.json", function(progress){
if( progress == 'done' ){
//加载完成
onloadDone();
}else if( progress == 'ok' ){
//渲染完成
}else{
//显示进度条数字
document.getElementById("loadNum").innerHTML = Math.round( progress )+'%';
}
});
//场景加载完成
function onloadDone(){
//加载完成,播放车辆动画
for( var i=0; i<actions[0].length; i++ ){
actions[0][i].play();
actions[0][i].timeScale = 0.5;
}
//读取json设备信息并加载图标
MMSDT.getJson( "models/equip_jianyu1.json", function(dataJson){
//文本参数
var options = {
scale: 0.7, //缩放比例
height: 5, //相对高度
color: 0x00baff, //默认颜色
backboard: 'textures/backboard.png', //背景板图片
visible: true, //是否显示
fontSize: '40pt Microsoft YaHei', //文字大小、字体类型
fontColor: '#ffffff', //文字颜色
fontSpace: 70, //文字上下间距
fontLeft: 60, //文字左缩进
fontTop: 75, //文字上缩进
}
var texts=[];
for( var i=0; i<dataJson.model.length; i++ ){
texts[i]=[];
texts[i][0] = '楼宇编号'; //第1行文字
texts[i][1] = ' '+dataJson.model[i].id; //第2行文字
}
new MMSDT.textIcon( dataJson, options, texts ); //添加文本图标
});
//对场景中包含子网格进行监听
var meshEvent = new MMSDT.mouseChildEvent( [] );
//移入场景模型
var onMove = function(name){}
//移出场景模型
var outMove = function(){ }
//移入设备图标
var onIot = function(icon){
MMSDT.superposition( icon.id,0xffff00 ); //指定图标变色
}
//移出设备图标
var outIot = function(){
MMSDT.superposition(); //移出图标变色恢复
}
MMSDT.mouseMoveEvent( onMove, outMove, onIot, outIot ); //初始化鼠标移入移出事件
//鼠标单击场景中的模型
var onDown = function( obj, buttons, position ){}
//鼠标双击场景中的模型
var onDouble = function( obj, buttons, position ){}
//鼠标单击设备图标
var iotDown = function(icon, buttons){
MMSDT.controlsTarget( [icon.position.x,icon.position.y,icon.position.z], 50, 500 );
}
//鼠标双击设备图标
var iotDouble = function(icon, buttons){}
MMSDT.mouseDownEvent( onDown, onDouble, iotDown, iotDouble ); //初始化鼠标点击事件
}
//自定义对外函数接口------------------------------------------------------------------------
//全景视角
MMAPI.resView = function(){
controls3.maxDistance = 400;
MMSDT.cameraTarget( [0,0,0], [278,70,201], 500 );
}
//聚焦大门
MMAPI.doorView = function(){
MMSDT.controlsTarget( [9,0,201], 80, 500 );
}
//聚焦侧门
MMAPI.sideView = function(){
MMSDT.controlsTarget( [124,0,202], 80, 500 );
}
点击查看示例演示 →
Powered by mms3D