MMSDT.flowTexture()
使用动态图流动的方法,模拟管道流体的流动方向、快慢、警戒程度。
构造函数
MMSDT.flowTexture()
属性
.updata(id,options)
添加流动图
id-数组,需要添加流动图的模型子网格名称。
options-对象,参数设置。
id-字符串,赋予一个id号,为了单独控制
url-字符串,箭头图片
repeatX-数字,X轴重复率
repeatY-数字,Y轴重复率
speed-数字,流动速度
direction-数字(0,1,2,3,4,5,6),流动方向(东,南,西,北,顺旋,逆旋,往复)
blending-布尔值,是否滤掉黑色
color-RGB颜色值,叠加颜色
opacity-浮点数,透明度
.enabled(id,Boolean)
开启流动图,或材质复原
id-字符串,子网格名称
Boolean-布尔值,true开启,false还原
.direction(id,number)
改变流动方向
id-字符串,子网格名称
number-数字(0,1,2,3,4,5,6),流动方向
.opacity(id,opacity)
改变透明的
id-字符串,子网格名称
opacity-浮点数0~1,透明度
.speed(id,speed)
改变流动速度
id-字符串,子网格名称
speed-数字,新的速度
.color(id,color)
改变颜色
id-字符串,子网格名称
color-RGB颜色值,叠加颜色
代码示例
var MMS3D_exceptionMesh = []; //需要材质拆分的网格
var MMS3D_instancingMesh = []; //合并实例化网格
//初始化场景
MMSDT.initScene( false, MMS3D_exceptionMesh, MMS3D_instancingMesh );
//设置第3人称鼠标控制器
controls3.maxPolarAngle = Math.PI*0.49; //向下,最大角度限制
controls3.maxDistance = 800; //最远距离限制
controls3.screenSpacePanning = false; //右键平移是否上下移动
controls3.enableDamping = true; //是否开启惯性阻尼
controls3.dampingFactor = 0.1; //惯性阻尼系数
controls3.autoRotateSpeed = 2; //自动旋转速度
//使用json文件让场景还原
MMSDT.onloadScene( "models/mms3D_shuibengfang.json", function(progress){
if( progress == 'done' ){
//加载完成
onloadDone();
}else if( progress == 'ok' ){
//渲染完成
}else{
//显示进度条数字
document.getElementById("loadNum").innerHTML = Math.round( progress )+'%';
}
});
//设置多种流动图参数
var options1 = {
id: "pipe1", //赋予一个id号,为了单独控制
url: "textures/arrow.png", //箭头图片
repeatX: 1, //X轴重复率
repeatY: 5, //Y轴重复率
speed: 5, //流动速度
direction: 0, //流动方向: 0,1,2,3,4
blending: true, //是否滤掉黑色
color: 0xff0000, //叠加颜色
opacity: 1, //透明度
}
var options2 = {
id: "pipe2", //赋予一个id号,为了单独控制
url: "textures/arrow.png", //箭头图片
repeatX: 1, //X轴重复率
repeatY: 4, //Y轴重复率
speed: 5, //流动速度
direction: 0, //流动方向: 0,1,2,3,4
blending: true, //是否滤掉黑色
color: 0x00ff00, //叠加颜色
opacity: 1, //透明度
}
var options3 = {
id: "pipe3", //赋予一个id号,为了单独控制
url: "textures/arrow.png", //箭头图片
repeatX: 1, //X轴重复率
repeatY: 2, //Y轴重复率
speed: 10, //流动速度
direction: 0, //流动方向: 0,1,2,3,4
blending: true, //是否滤掉黑色
color: 0xfff000, //叠加颜色
opacity: 1, //透明度
}
//初始化流动函数
var flowTextures = new MMSDT.flowTexture();
//场景加载完成
function onloadDone(){
//给子网格添加流动图(子网格名称,参数设置)
flowTextures.updata( ["SBF25","SBF26"], options1 );
flowTextures.updata( ["SBF27","SBF34","SBF31","SBF28"], options2 );
flowTextures.updata( ["SBF310","SBF292","SBF274","SBF256","SBF233","SBF215","SBF197","SBF179","SBF98","SBF60","SBF77","SBF128","SBF151"], options3 );
}
//自定义对外函数接口------------------------------------------------------------------------
//还原或开启流动
MMAPI.flowEnabled = function(Boolean){
var id=["SBF25","SBF26","SBF27","SBF34","SBF31","SBF310","SBF292","SBF274","SBF256","SBF233","SBF215",
"SBF197","SBF179","SBF98","SBF60","SBF77","SBF128","SBF151"]
for( var i=0; i<id.length; i++ ){
flowTextures.enabled( id[i], Boolean );
}
}
MMAPI.flowDirection = function(value){
if( value == 0 ){
flowTextures.direction( "pipe1", 0);
flowTextures.direction( "pipe2", 0);
flowTextures.direction( "pipe3", 0);
}else{
flowTextures.direction( "pipe1", 2);
flowTextures.direction( "pipe2", 2);
flowTextures.direction( "pipe3", 2);
}
}
//流动图透明度
MMAPI.flowOpacity1 = function(value){
flowTextures.opacity( "pipe1", value);
}
MMAPI.flowOpacity2 = function(value){
flowTextures.opacity( "pipe2", value);
}
MMAPI.flowOpacity3 = function(value){
flowTextures.opacity( "pipe3", value);
}
//流动速度
MMAPI.flowSpeed1 = function(value){
flowTextures.speed( "pipe1", value);
}
MMAPI.flowSpeed2 = function(value){
flowTextures.speed( "pipe2", value);
}
MMAPI.flowSpeed3 = function(value){
flowTextures.speed( "pipe3", value);
}
//流动图颜色
MMAPI.flowColor1 = function(value){
flowTextures.color( "pipe1", value);
}
MMAPI.flowColor2 = function(value){
flowTextures.color( "pipe2", value);
}
MMAPI.flowColor3 = function(value){
flowTextures.color( "pipe3", value);
}