围栏周界动态区域

MMSDT.upFlowLight()

       绘制园区、楼宇、城市中的区域,动态显示围栏周界标识。

       Tips:该围栏仅显示区域,不做碰撞检测,性能优于电子围栏MMSDT.electronicFence()

构造函数

      MMSDT.upFlowLight( parameters: object )

       position - 二维数组,区域坐标点。

       color - RGB颜色,围栏颜色。

       height - 数字,围栏高度。

       visible - 布尔值,默认是否显示。

       closed - 布尔值,默认是否封口。

属性

       .add( arrayIndex )

       显示区域,arrayIndex 数组内的区域下标。

       .remove()

       移除所有区域。

       .color( arrayIndex, color )

       围栏改变颜色。

       arrayIndex - 数组内的区域下标。

       color - 指定变换的RGB颜色,为空则恢复颜色。

代码示例

var MMS3D_exceptionMesh = []; //需要材质拆分的网格 var MMS3D_instancingMesh = ["shu"]; //合并实例化网格 //初始化场景 MMSDT.initScene( false, MMS3D_exceptionMesh, MMS3D_instancingMesh ); //设置第3人称鼠标控制器 controls3.maxPolarAngle = Math.PI*0.49; //向下,最大角度限制 controls3.maxDistance = 500; //最远距离限制 controls3.screenSpacePanning = false; //右键平移是否上下移动 controls3.enableDamping = true; //是否开启惯性阻尼 controls3.dampingFactor = 0.1; //惯性阻尼系数 //使用json文件让场景还原 MMSDT.onloadScene( "models/mms3D_fdc1.json", function(progress){ if( progress == 'done' ){ //加载完成,播放风机动画 for( var i=0; i<actions[0].length; i++ ){ actions[0][i].play(); } }else if( progress == 'ok' ){ //渲染完成 onloadDone(); }else{ //显示进度条数字 document.getElementById("loadNum").innerHTML = Math.round( progress )+'%'; } }); //场景加载完成 function onloadDone(){ } //虚拟电子围栏的参数设置 var options = [ { position: [ [-36,0,54], [-36,0,120], [-196,0,179], [-209,0,38],[-79,0,18] ], //围栏坐标点 color: 0x00ff00, //围栏颜色 height: 8, //围栏高度 visible: true, //默认显示 closed: true //是否封口 },{ position: [ [11,0,23], [70,0,15], [100,0,86], [70,0,104],[30,0,47] ], color: 0xff0000, height: 8, visible: true, closed: false },{ position: [ [36,0,151], [75,0,148], [75,0,185], [36,0,185] ], color: 0x0000ff, height: 8, visible: true, closed: false } ] //初始化围栏 var fences = new MMSDT.upFlowLight( options ); //自定义对外函数接口------------------------------------------------------------------------ //显示围栏 MMAPI.display = function( num ){ switch(num) { case 0: //移除所有区域 fences.remove(); break; case 1: //显示一号区域 fences.add( 0 ); break; case 2: //显示二号区域 fences.add( 1 ); break; case 3: //显示三号区域 fences.add( 2 ); break; } } //围栏全部变色 MMAPI.yellowColor = function(){ fences.color(0,0x0000ff); //围栏下标编号,指定变换的颜色 fences.color(1,0x00ff00); fences.color(2,0xff0000); } //围栏全部颜色恢复 MMAPI.resColor = function(){ fences.color(0); //围栏下标编号 fences.color(1); fences.color(2); }

点击查看示例演示 →