目标聚焦

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

点击查看示例演示 →