华农3D项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

1016 lines
32 KiB

// 从这里开始
var h1 = null
var h2 = null
var h3 = null
var oldtransformNodex = null
var oldtransformNodeOther = null
var drag = null
var notmoveGroup = null
var movedGroup = null
var movesingle = false
var dynamicTexture = null
var dynamicTexture2 = null
var show = 50
var showdd = 50
BABYLON.DefaultLoadingScreen.prototype.displayLoadingUI = function() {
if (document.getElementById('customLoadingScreenDiv')) {
document.getElementById('customLoadingScreenDiv').style.display = 'initial'
return
}
this._loadingDiv = document.createElement('div')
// this._loadingDiv.style.height = '1750px';
this._loadingDiv.id = 'customLoadingScreenDiv'
thecss = 'lohingifpc'
thecss2 = 'zcpc'
this._loadingDiv.innerHTML = "<div class='oka'><div class='" + thecss + "'><image src='./logok.gif' class='jiazaiimg'/></div>"
// this._loadingDiv.innerHTML =
// "<div class='oka'><div class='" +
// thecss +
// "'><image src='./logok.gif' class='jiazaiimg'/></div><div class='" +
// thecss2 +
// "'>由 <image class='feitimg' src='./img/yxlogo.png'/> 阅行客 提供技术支持!</div></div>";
this._resizeLoadingUI()
window.addEventListener('resize', this._resizeLoadingUI)
document.body.appendChild(this._loadingDiv)
}
var movebyName = function(nodeName) {
var x = scene.getTransformNodeByName(nodeName)
moveTrans(x)
}
BABYLON.DefaultLoadingScreen.prototype.hideLoadingUI = function() {
show = 50
document.getElementById('customLoadingScreenDiv').style.display = 'none'
document.getElementById('customLoadingScreenDiv_first').style.display = 'none'
document.title = '全景图'
var prepareGroupButton = function(transformNodex, color, qu) {
var mesheses = null
if (transformNodex.getClassName() == 'TransformNode') {
mesheses = transformNodex.getChildMeshes(false)
} else {
mesheses = []
mesheses.push(transformNodex)
}
for (var i = 0; i < mesheses.length; i++) {
mesheses[i].actionManager = new BABYLON.ActionManager(scene)
var theScaling = mesheses[i].scaling
/* if (true) {
try {
mesheses[i].actionManager.registerAction(new BABYLON.InterpolateValueAction(BABYLON.ActionManager.OnPointerOutTrigger, mesheses[i], "scaling", new BABYLON.Vector3(theScaling.x, theScaling.y, theScaling.z), 100));
mesheses[i].actionManager.registerAction(new BABYLON.InterpolateValueAction(BABYLON.ActionManager.OnPointerOverTrigger, mesheses[i], "scaling", new BABYLON.Vector3(theScaling.x * 1.01, theScaling.y * 1.01, theScaling.z * 1.01), 100));
} catch (error) {
//alert(error)
}
}*/
var clickbegin = false
mesheses[i].actionManager.registerAction(
new BABYLON.ExecuteCodeAction({
trigger: BABYLON.ActionManager.OnPointerOverTrigger,
parameter: ''
},
function() {
clickbegin = true
if (true) {
if (oldtransformNodeOther != null) {
oldtransformNodeOther.removeBehavior(drag)
var mesheses2 = null
if (oldtransformNodeOther.getClassName() == 'TransformNode') {
mesheses2 = oldtransformNodeOther.getChildMeshes(false)
} else {
mesheses2 = []
mesheses2.push(oldtransformNodeOther)
}
for (var i = 0; i < mesheses2.length; i++) {
try {
h2.removeMesh(mesheses2[i])
} catch (error) {
// alert(error)
}
}
}
oldtransformNodeOther = transformNodex
// transformNodex.addBehavior(drag);
var mesheses3 = null
if (transformNodex.getClassName() == 'TransformNode') {
mesheses3 = transformNodex.getChildMeshes(false)
} else {
mesheses3 = []
mesheses3.push(transformNodex)
}
for (var i = 0; i < mesheses3.length; i++) {
try {
h2.addMesh(mesheses3[i], color)
} catch (error) {
// alert(error)
}
}
clickbegin = false
}
}
)
)
mesheses[i].actionManager.registerAction(
new BABYLON.ExecuteCodeAction({
trigger: BABYLON.ActionManager.OnPickTrigger,
parameter: ''
},
function() {
clickbegin = true
if (true) {
try {
quClick(qu)
} catch (error) {
// alert(error)
}
clickbegin = false
}
}
)
)
}
}
var prepareGroupButton2 = function(transformNodex, color, qu) {
var mesheses = null
if (transformNodex.getClassName() == 'TransformNode') {
mesheses = transformNodex.getChildMeshes(false)
} else {
mesheses = []
mesheses.push(transformNodex)
}
for (var i = 0; i < mesheses.length; i++) {
mesheses[i].actionManager = new BABYLON.ActionManager(scene)
var theScaling = mesheses[i].scaling
/* if (true) {
try {
mesheses[i].actionManager.registerAction(new BABYLON.InterpolateValueAction(BABYLON.ActionManager.OnPointerOutTrigger, mesheses[i], "scaling", new BABYLON.Vector3(theScaling.x, theScaling.y, theScaling.z), 100));
mesheses[i].actionManager.registerAction(new BABYLON.InterpolateValueAction(BABYLON.ActionManager.OnPointerOverTrigger, mesheses[i], "scaling", new BABYLON.Vector3(theScaling.x * 1.01, theScaling.y * 1.01, theScaling.z * 1.01), 100));
} catch (error) {
//alert(error)
}
}*/
var clickbegin = false
mesheses[i].actionManager.registerAction(
new BABYLON.ExecuteCodeAction({
trigger: BABYLON.ActionManager.OnPointerOverTrigger,
parameter: ''
},
function() {
clickbegin = true
if (true) {
if (oldtransformNodeOther != null) {
oldtransformNodeOther.removeBehavior(drag)
var mesheses2 = null
if (oldtransformNodeOther.getClassName() == 'TransformNode') {
mesheses2 = oldtransformNodeOther.getChildMeshes(false)
} else {
mesheses2 = []
mesheses2.push(oldtransformNodeOther)
}
for (var i = 0; i < mesheses2.length; i++) {
try {
h2.removeMesh(mesheses2[i])
} catch (error) {
// alert(error)
}
}
}
oldtransformNodeOther = transformNodex
// transformNodex.addBehavior(drag);
var mesheses3 = null
if (transformNodex.getClassName() == 'TransformNode') {
mesheses3 = transformNodex.getChildMeshes(false)
} else {
mesheses3 = []
mesheses3.push(transformNodex)
}
for (var i = 0; i < mesheses3.length; i++) {
try {
h2.addMesh(mesheses3[i], color)
} catch (error) {
// alert(error)
}
}
clickbegin = false
}
}
)
)
mesheses[i].actionManager.registerAction(
new BABYLON.ExecuteCodeAction({
trigger: BABYLON.ActionManager.OnPickTrigger,
parameter: ''
},
function() {
clickbegin = true
if (true) {
try {
// quClick(transformNodex.name)
cameraClick(transformNodex)
} catch (error) {
// alert(error)
}
clickbegin = false
}
}
)
)
}
}
var dag1 = scene.getTransformNodeByName('A区')
var dag2 = scene.getTransformNodeByName('B区')
var dag3 = scene.getTransformNodeByName('C区')
var colorddd = new BABYLON.Color3(51 / 255, 156 / 255, 1)
prepareGroupButton(dag1, colorddd, 'A区')
prepareGroupButton(dag2, colorddd, 'B区')
prepareGroupButton(dag3, colorddd, 'C区')
// 绑功能点
var cl = new BABYLON.Color3(0, 0, 1)
var jk01 = scene.getTransformNodeByName('camera01')
jk01.nameID = 'DAK_MO_CAM_001'
prepareGroupButton2(jk01, cl)
var jk02 = scene.getTransformNodeByName('camera02')
jk02.nameID = 'DAK_MO_CAM_002'
prepareGroupButton2(jk02, cl)
var jk03 = scene.getTransformNodeByName('camera03')
jk03.nameID = 'DAK_MO_CAM_003'
prepareGroupButton2(jk03, cl)
var jk04 = scene.getTransformNodeByName('camera04')
jk04.nameID = 'DAK_MO_CAM_004'
prepareGroupButton2(jk04, cl)
var jk05 = scene.getTransformNodeByName('camera05')
jk05.nameID = 'ZLS_MO_CAM_001'
prepareGroupButton2(jk05, cl)
var jk06 = scene.getTransformNodeByName('camera06')
jk06.nameID = 'ZLS_MO_CAM_002'
prepareGroupButton2(jk06, cl)
var jk07 = scene.getTransformNodeByName('camera07')
jk07.nameID = 'YLS_MO_CAM_001'
prepareGroupButton2(jk07, cl)
var jk08 = scene.getTransformNodeByName('camera08')
jk08.nameID = 'YLS_MO_CAM_002'
prepareGroupButton2(jk08, cl)
var jk09 = scene.getTransformNodeByName('camera09')
jk09.nameID = 'ZL_MO_CAM_001'
prepareGroupButton2(jk09, cl)
// set camera to null
var x = scene.getMeshByName('档案架01_primitive0')
x.overlayColor = BABYLON.Color3.White()
x.renderOverlay = true
x = scene.getMeshByName('档案架02_primitive0')
x.overlayColor = BABYLON.Color3.White()
x.renderOverlay = true
x = scene.getMeshByName('档案架03_primitive0')
x.overlayColor = BABYLON.Color3.White()
x.renderOverlay = true
x = scene.getMeshByName('档案架04_primitive0')
x.overlayColor = BABYLON.Color3.White()
x.renderOverlay = true
x = scene.getMeshByName('档案架05_primitive0')
x.overlayColor = BABYLON.Color3.White()
x.renderOverlay = true
x = scene.getMeshByName('档案架06_primitive0')
x.overlayColor = BABYLON.Color3.White()
x.renderOverlay = true
x = scene.getMeshByName('档案架07_primitive0')
x.overlayColor = BABYLON.Color3.White()
x.renderOverlay = true
x = scene.getMeshByName('档案架08_primitive0')
x.overlayColor = BABYLON.Color3.White()
x.renderOverlay = true
x = scene.getMeshByName('档案架09_primitive0')
x.overlayColor = BABYLON.Color3.White()
x.renderOverlay = true
x = scene.getMeshByName('档案架10_primitive0')
x.overlayColor = BABYLON.Color3.White()
x.renderOverlay = true
x = scene.getMeshByName('前门01_primitive0')
x.overlayColor = BABYLON.Color3.White()
x.renderOverlay = true
x = scene.getMeshByName('后门01_primitive0')
x.overlayColor = BABYLON.Color3.White()
x.renderOverlay = true
x = scene.getMeshByName('立方体_5_2.001_LOD1_primitive0')
x.overlayColor = BABYLON.Color3.White()
x.renderOverlay = true
x = scene.getMeshByName('立方体_5_2.001_LOD1_primitive2')
x.overlayColor = BABYLON.Color3.White()
x.renderOverlay = true
x = scene.getMeshByName('立方体_1_12.001_LOD1')
x.overlayColor = BABYLON.Color3.White()
x.renderOverlay = true
/*
var hdrTexture2 = BABYLON.CubeTexture.CreateFromPrefilteredData("textures/environment.dds", scene);
var plastic = new BABYLON.PBRMaterial("plastic", scene);
plastic.reflectionTexture = hdrTexture2;
plastic.microSurface = 0.96;
plastic.albedoColor = new BABYLON.Color3(1, 1, 1);
plastic.reflectivityColor = new BABYLON.Color3(0.003, 0.003, 0.003);
scene.getMeshByName("墙体").material = plastic;
alert("d");*/
var light = new BABYLON.HemisphericLight('HemiLight', new BABYLON.Vector3(0, 1, 0), scene)
light.intensity = 2
light.diffuse = new BABYLON.Color3(0.92, 0.92, 0.92)
var material1 = scene.getMaterialByName('材质.107')
material1.albedoColor = new BABYLON.Color3(168 / 255, 167 / 255, 168 / 255)
material1.roughness = 1
// 墙
scene.getMaterialByName('cover_label.009').metallic = 0.36
scene.getMaterialByName('cover_label.009').albedoColor = new BABYLON.Color3(1, 1, 1)
// scene.getMaterialByName("cover_label.010").metallic =0.36;
// scene.getMaterialByName("cover_label.010").albedoColor = new BABYLON.Color3(1, 1, 1);
// 铁
var material3 = scene.getMaterialByName('材质.116')
material3.metallic = 0.9
material3.roughness = 0
material3.emissiveColor = new BABYLON.Color3(0.278, 0.278, 0.278)
scene.getMaterialByName('材质.102').metallic = 0.9
scene.getMaterialByName('材质.102').roughness = 0.0
scene.getMaterialByName('材质.102').emissiveColor = new BABYLON.Color3(0.278, 0.278, 0.278)
// scene.getMaterialByName("材质.132").metallic = 0.9;
// scene.getMaterialByName("材质.132").roughness = 0.0;
// scene.getMaterialByName("材质.132").emissiveColor = new BABYLON.Color3(0.278, 0.278, 0.278);
scene.getMaterialByName('材质.122').metallic = 0.9
scene.getMaterialByName('材质.122').roughness = 0.0
scene.getMaterialByName('材质.122').emissiveColor = new BABYLON.Color3(0.278, 0.278, 0.278)
// 地
var material2 = scene.getMaterialByName('材质.106')
material2.albedoColor = new BABYLON.Color3(0.8, 0.8, 0.8)
material2.metallic = 0.52
material2.roughness = 0
// material2.metallicReflectanceColor=new BABYLON.Color3(1,0,0);
// material2.emissiveColor=new BABYLON.Color3(0.8,0.8,0.8);
// 地面扩大处理
var meshground1 = scene.getMeshByName('地面A').clone()
var meshground = scene.getMeshByName('地面A')
meshground.isVisible = false
meshground1.position = new BABYLON.Vector3(-1.512, -0.069, 1.852)
meshground1.scaling = new BABYLON.Vector3(0.022, 0.013, 0.005)
meshground1.parent = scene.getMeshByName('__root__')
// scene.getMeshByName("地面.002").isVisible = false;
// scene.getMeshByName("地面.003").isVisible = false;
// scene.getMeshByName("地面").isVisible = false;
scene.getMaterialByName('材质.127').metallic = 0.80
scene.getMaterialByName('Wood-04.004').metallic = 0.80
scene.getMaterialByName('Wood-04.004').metallic = 0.80
scene.getMaterialByName('Desk.002').metallic = 0.80
scene.getMaterialByName('Desk.002').roughness = 0.72
// scene.getMaterialByName("Desk.003").metallic =0.80;
// scene.getMaterialByName("Desk.003").roughness = 0.72;
// scene.getMaterialByName("Desk.004").metallic =0.80;
// scene.getMaterialByName("Desk.004").roughness = 0.72;
// scene.getMaterialByName("Desk.007").metallic =0.80;
// scene.getMaterialByName("Desk.007").roughness = 0.72;
// scene.getMaterialByName("Desk.008").metallic =0.80;
// scene.getMaterialByName("Desk.008").roughness = 0.72;
// scene.getMaterialByName("Desk.009").metallic =0.80;
// scene.getMaterialByName("Desk.009").roughness = 0.72;
scene.getMaterialByName('Desk.019').metallic = 0.80
scene.getMaterialByName('Desk.019').roughness = 0.72
// scene.getMaterialByName("Desk.020").metallic =0.80;
// scene.getMaterialByName("Desk.020").roughness = 0.72;
// scene.getMaterialByName("Desk.021").metallic =0.80;
// scene.getMaterialByName("Desk.021").roughness = 0.72;
scene.getMaterialByName('Desk.022').metallic = 0.80
scene.getMaterialByName('Desk.022').roughness = 0.72
scene.getMaterialByName('Desk.023').metallic = 0.80
scene.getMaterialByName('Desk.023').roughness = 0.72
scene.getMaterialByName('Desk.024').metallic = 0.80
scene.getMaterialByName('Desk.024').roughness = 0.72
// scene.getMaterialByName("cover_label.010").alpha = 0.7;
// scene.getMaterialByName("cover_label.010").transparencyMode=2; //ALPHABLEND
scene.getMeshByName('档案架01_primitive3').material = scene.getMaterialByName('10.002')
scene.getMeshByName('档案架02_primitive4').material = scene.getMaterialByName('09.002')
scene.getMeshByName('档案架03_primitive4').material = scene.getMaterialByName('08.002')
scene.getMeshByName('档案架04_primitive4').material = scene.getMaterialByName('07.002')
scene.getMeshByName('档案架05_primitive4').material = scene.getMaterialByName('06.002')
scene.getMeshByName('档案架06_primitive4').material = scene.getMaterialByName('05.002')
scene.getMeshByName('档案架07_primitive4').material = scene.getMaterialByName('04.002')
scene.getMeshByName('档案架08_primitive4').material = scene.getMaterialByName('03.002')
scene.getMeshByName('档案架09_primitive4').material = scene.getMaterialByName('02.002')
scene.getMeshByName('档案架10_primitive3').material = scene.getMaterialByName('01.002')
console.log(scene.getMeshByName('圆柱_10'))
scene.getMeshByName('圆柱_10').setEnabled(false)
scene.getMeshByName('球体_4').setEnabled(false)
// scene.getTransformNodeByName("档案柜01").setEnabled(false);
// scene.getTransformNodeByName("档案柜02").setEnabled(false);
var v1 = scene.getMeshByName('钢轨01')
v1.position = new BABYLON.Vector3(v1.position.x, 60.0, v1.position.z)
v1.scaling = new BABYLON.Vector3(1, 0.9, 1)
var v2 = scene.getTransformNodeByName('后门01')
v2.setParent(scene.getTransformNodeByName('档案柜03'), true)
v2.position = new BABYLON.Vector3(v2.position.x, -122.479, v2.position.z)
scene.getTransformNodeByName('红').setEnabled(false)
scene.getTransformNodeByName('蓝').setEnabled(false)
}
// createScene function that creates and return the scene
var createScene = function() {
engine.displayLoadingUI()
// create a basic BJS Scene object
var scene = new BABYLON.Scene(engine)
// console.log("60ee2")
// scene.debugLayer.show();
var camera = new BABYLON.ArcRotateCamera('Camera', 0, 0, 5, new BABYLON.Vector3(0, -1, 0), scene)
camera.setTarget(new BABYLON.Vector3(0, 2, 0))
camera.attachControl(canvas, true)
camera.lowerRadiusLimit = 2.0 // 这里是最大的位置,值越大,物体越小
camera.upperRadiusLimit = 40
camera.radius = 15.998
camera.alpha = Math.PI * -248.8 / 180
camera.beta = Math.PI * 66 / 180
camera.inertia = 0.1 // 缩放的快慢
camera.useAutoRotationBehavior = true // 自动旋转
camera.panningDistanceLimit = 2 // 平移半径
camera.panningInertia = 0
camera.autoTransitionRange = 1
camera.pinchToPanMaxDistance = 0.1
camera.pinchDeltaPercentage = 0.001
camera.useAutoRotationBehavior = false
scene.activeCamera = camera
// console.log("60e3")
scene.activeCamera.useInputToRestoreState = true
var camera1_status = scene.activeCamera.storeState()
// console.log("6033")
// 改变场景背景颜色 - 背景颜色opacity值设为0,达到透明背景的效果
scene.clearColor = new BABYLON.Color4(0, 0, 0, 0)
var assetsManager = new BABYLON.AssetsManager(scene)
var meshTask = assetsManager.addMeshTask('skull task', '', 'asset/', 'total2.glb')
meshTask.onSuccess = function(task) {
task.loadedMeshes[0].scaling = new BABYLON.Vector3(0.2, 0.2, -0.2)
task.loadedMeshes[0].position = new BABYLON.Vector3(1.3, 2, 0)
}
meshTask.onError = function(task, message, exception) {
console.log(message, exception)
}
var meshTask_camera = assetsManager.addMeshTask('skull task', '', 'asset/', 'TotalCamera.glb')
meshTask_camera.onSuccess = function(task) {
task.loadedMeshes[0].name = 'cameras'
task.loadedMeshes[0].scaling = new BABYLON.Vector3(0.2, 0.2, -0.2)
task.loadedMeshes[0].position = new BABYLON.Vector3(1.3, 2, 0)
}
meshTask_camera.onError = function(task, message, exception) {
console.log(message, exception)
}
// console.log("60ee")
var hdrTexture = new BABYLON.CubeTexture.CreateFromPrefilteredData('textures/environmentSpecular.env', scene)
scene.environmentTexture = hdrTexture
// console.log("604")
var spriteManagerPlayer = new BABYLON.SpriteManager('playerManager', './img/bl9.png', 10, {
width: 100,
height: 100
}, scene)
// spriteManagerPlayer.renderingGroupId = 2;
spriteManagerPlayer.isPickable = true
// console.log("604")
scene.onPointerDown = function(evt) {
var pickResult = scene.pickSprite(this.pointerX, this.pointerY)
var pick = scene.pick(scene.pointerX, scene.pointerY)
// console.log(pick.pickedPoint);
if (pickResult.pickedSprite != null) {
if (pickResult.hit) {
alert(pickResult.pickedSprite.name)
}
}
}
// console.log("x1");
// renderCanvas.style.backgroundImage = 'url("./textures/' + '4' + '.jpg")';
assetsManager.load()
drag = new BABYLON.PointerDragBehavior({
dragPlaneNormal: new BABYLON.Vector3(0, 0, 1)
})
// drag.useObjectOrienationForDragging = false;
drag.validateDrag = (targetPosition) => {
console.log(targetPosition)
if (targetPosition.x > 10.5 || targetPosition.x < -10.5) {
return false
}
if (targetPosition.z > 10.5 || targetPosition.z < -10.5) {
return false
}
if (oldtransformNodex != null) {
return true
}
}
drag.onDragEndObservable.add((event) => {
console.log('dragEnd')
// console.log(event);
// console.log(line03_position)
})
// GUI
h1 = new BABYLON.HighlightLayer('hl1', scene)
h2 = new BABYLON.HighlightLayer('hl2', scene)
h3 = new BABYLON.HighlightLayer('hl2', scene)
var step = 0.1
var currentx = 1
var step2 = 0.1
var currentx2 = 0.1
h1.blurHorizontalSize = 0.1
var showx = 0
var showx2 = 2
scene.registerAfterRender(() => {
h1.blurHorizontalSize = h1.blurVerticalSize + currentx
var nodealert = scene.getTransformNodeByName('camera01')
if (nodealert != null) {
var mesheses3 = null
if (nodealert.getClassName() == 'TransformNode') {
mesheses3 = nodealert.getChildMeshes(false)
} else {
mesheses3 = []
mesheses3.push(nodealert)
}
for (var i = 0; i < mesheses3.length; i++) {
try {
if (nodealert.baojing == true) {
h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0))
} else {
h3.removeMesh(mesheses3[i])
}
} catch (error) {
// alert(error)
}
}
}
var nodealert = scene.getTransformNodeByName('camera02')
if (nodealert != null) {
var mesheses3 = null
if (nodealert.getClassName() == 'TransformNode') {
mesheses3 = nodealert.getChildMeshes(false)
} else {
mesheses3 = []
mesheses3.push(nodealert)
}
for (var i = 0; i < mesheses3.length; i++) {
try {
if (nodealert.baojing == true) {
h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0))
} else {
h3.removeMesh(mesheses3[i])
}
} catch (error) {
// alert(error)
}
}
}
var nodealert = scene.getTransformNodeByName('camera03')
if (nodealert != null) {
var mesheses3 = null
if (nodealert.getClassName() == 'TransformNode') {
mesheses3 = nodealert.getChildMeshes(false)
} else {
mesheses3 = []
mesheses3.push(nodealert)
}
for (var i = 0; i < mesheses3.length; i++) {
try {
if (nodealert.baojing == true) {
h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0))
} else {
h3.removeMesh(mesheses3[i])
}
} catch (error) {
// alert(error)
}
}
}
var nodealert = scene.getTransformNodeByName('camera04')
if (nodealert != null) {
var mesheses3 = null
if (nodealert.getClassName() == 'TransformNode') {
mesheses3 = nodealert.getChildMeshes(false)
} else {
mesheses3 = []
mesheses3.push(nodealert)
}
for (var i = 0; i < mesheses3.length; i++) {
try {
if (nodealert.baojing == true) {
h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0))
} else {
h3.removeMesh(mesheses3[i])
}
} catch (error) {
// alert(error)
}
}
}
var nodealert = scene.getTransformNodeByName('camera05')
if (nodealert != null) {
var mesheses3 = null
if (nodealert.getClassName() == 'TransformNode') {
mesheses3 = nodealert.getChildMeshes(false)
} else {
mesheses3 = []
mesheses3.push(nodealert)
}
for (var i = 0; i < mesheses3.length; i++) {
try {
if (nodealert.baojing == true) {
h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0))
} else {
h3.removeMesh(mesheses3[i])
}
} catch (error) {
// alert(error)
}
}
}
var nodealert = scene.getTransformNodeByName('camera06')
if (nodealert != null) {
var mesheses3 = null
if (nodealert.getClassName() == 'TransformNode') {
mesheses3 = nodealert.getChildMeshes(false)
} else {
mesheses3 = []
mesheses3.push(nodealert)
}
for (var i = 0; i < mesheses3.length; i++) {
try {
if (nodealert.baojing == true) {
h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0))
} else {
h3.removeMesh(mesheses3[i])
}
} catch (error) {
// alert(error)
}
}
}
var nodealert = scene.getTransformNodeByName('camera07')
if (nodealert != null) {
var mesheses3 = null
if (nodealert.getClassName() == 'TransformNode') {
mesheses3 = nodealert.getChildMeshes(false)
} else {
mesheses3 = []
mesheses3.push(nodealert)
}
for (var i = 0; i < mesheses3.length; i++) {
try {
if (nodealert.baojing == true) {
h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0))
} else {
h3.removeMesh(mesheses3[i])
}
} catch (error) {
// alert(error)
}
}
}
var nodealert = scene.getTransformNodeByName('camera08')
if (nodealert != null) {
var mesheses3 = null
if (nodealert.getClassName() == 'TransformNode') {
mesheses3 = nodealert.getChildMeshes(false)
} else {
mesheses3 = []
mesheses3.push(nodealert)
}
for (var i = 0; i < mesheses3.length; i++) {
try {
if (nodealert.baojing == true) {
h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0))
} else {
h3.removeMesh(mesheses3[i])
}
} catch (error) {
// alert(error)
}
}
}
var nodealert = scene.getTransformNodeByName('camera09')
if (nodealert != null) {
var mesheses3 = null
if (nodealert.getClassName() == 'TransformNode') {
mesheses3 = nodealert.getChildMeshes(false)
} else {
mesheses3 = []
mesheses3.push(nodealert)
}
for (var i = 0; i < mesheses3.length; i++) {
try {
if (nodealert.baojing == true) {
h3.addMesh(mesheses3[i], new BABYLON.Color3(1, 0, 0))
} else {
h3.removeMesh(mesheses3[i])
}
} catch (error) {
// alert(error)
}
}
}
if (currentx > 0.5) {
step *= -1
}
if (currentx < 0) {
step *= -1
}
currentx += step
if (currentx2 > 5) {
step2 *= -1
}
if (currentx2 < 0) {
step2 *= -1
}
currentx2 += step2
if (dynamicTexture != null && show == 0) {
var textx = showx
var font_size = 48
var font = 'bold ' + font_size + 'px Arial'
dynamicTexture.drawText(textx, null, null, font, '#FF0000', '#ffffff', true)
showx++
show = 50
}
if (dynamicTexture2 != null && showdd == 0) {
var textx = showx2
var font_size = 48
var font = 'bold ' + font_size + 'px Arial'
dynamicTexture2.drawText(textx, null, null, font, '#0000FF', '#ffffff', true)
showx2++
showdd = 50
if (showx2 == 10) { showx2 = 0 }
}
show--
showdd--
})
return scene
}
var canvas = document.getElementById('renderCanvas')
// load the 3D engine
var engine = new BABYLON.Engine(canvas, true, {
stencil: true
})
// call the createScene function
var scene = createScene()
scene.autoClear = true
scene.imageProcessingConfiguration.exposure = 1
scene.imageProcessingConfiguration.contrast = 1
scene.environmentIntensity = 0.4
engine.runRenderLoop(function() {
scene.render()
})
window.addEventListener('resize', function() {
engine.resize()
})
// 功能:点区以后跳转到新页
// quName :转过来的区号
// function quClick(quName) {
// if (quName == "A区") {
// window.location.href = "http://192.168.99.117:8099/83/webA/index.html";
// }
// if (quName == "B区") {
// window.location.href = "http://192.168.99.117:8099/83/webB/index.html";
// }
// if (quName == "C区") {
// window.location.href = "http://192.168.99.117:8099/83/webC/index.html";
// }
// }
function quClick(name) {
window.parent.postMessage(
{
data: name
},
'*'
)
}
// 功能:点camera后事件
// function cameraClick(camera) {
// alert(camera.nameID);
// }
function cameraClick(camera) {
window.parent.postMessage(
{
data: camera.nameID
},
'*'
)
}
function HashMap() {
// 定义长度
var length = 0
// 创建一个对象
var obj = new Object()
// 判断Map是否为空
this.isEmpty = function() {
return length == 0
}
// 判断对象中是否包含给定Key
this.containsKey = function(key) {
return (key in obj)
}
// 判断对象中是否包含给定的Value
this.containsValue = function(value) {
for (var key in obj) {
if (obj[key] == value) {
return true
}
}
return false
}
// 向map中添加数据
this.put = function(key, value) {
if (!this.containsKey(key)) {
length++
}
obj[key] = value
}
// 根据给定的key获取Value
this.get = function(key) {
return this.containsKey(key) ? obj[key] : null
}
// 根据给定的Key删除一个值
this.remove = function(key) {
if (this.containsKey(key) && (delete obj[key])) {
length--
}
}
// 获得Map中所有的value
this.values = function() {
var _values = new Array()
for (var key in obj) {
_values.push(obj[key])
}
return _values
}
// 获得Map中的所有key
this.keySet = function() {
var _keys = new Array()
for (var key in obj) {
_keys.push(key)
}
return _keys
}
// 获得Map的长度
this.size = function() {
return length
}
// 清空Map
this.clear = function() {
length = 0
obj = new Object()
}
}
var yangans = new HashMap()
yangans.put('DAK_MO_CAM_001', 'camera01')
yangans.put('DAK_MO_CAM_002', 'camera02')
yangans.put('DAK_MO_CAM_003', 'camera03')
yangans.put('DAK_MO_CAM_004', 'camera04')
yangans.put('ZLS_MO_CAM_001', 'camera05')
yangans.put('ZLS_MO_CAM_002', 'camera06')
yangans.put('YLS_MO_CAM_001', 'camera07')
yangans.put('YLS_MO_CAM_002', 'camera08')
yangans.put('ZL_MO_CAM_001', 'camera09')
// 功能转入报警
function Myalert(MathineID, baojing) {
var theName = yangans.get(MathineID)
if (theName == 'camera01') {
scene.getTransformNodeByName('camera01').baojing = baojing
}
if (theName == 'camera02') {
scene.getTransformNodeByName('camera02').baojing = baojing
}
if (theName == 'camera03') {
scene.getTransformNodeByName('camera03').baojing = baojing
}
if (theName == 'camera04') {
scene.getTransformNodeByName('camera04').baojing = baojing
}
if (theName == 'camera05') {
scene.getTransformNodeByName('camera05').baojing = baojing
}
if (theName == 'camera06') {
scene.getTransformNodeByName('camera06').baojing = baojing
}
if (theName == 'camera07') {
scene.getTransformNodeByName('camera07').baojing = baojing
}
if (theName == 'camera08') {
scene.getTransformNodeByName('camera08').baojing = baojing
}
if (theName == 'camera09') {
scene.getTransformNodeByName('camera09').baojing = baojing
}
}
// 报警 true:表示报警, false :表示不报警
// Myalert("DAK_MO_OAO_001",true)