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);
}
点击查看示例演示 →
Powered by mms3D