function applyVertexColors(a,d){a.faces.forEach(function(a){for(var b=a instanceof THREE.Face3?3:4,e=0;e");$("#detail textarea").typetype(a,{t:10,e:0})} function showDetail(a){a?INTERSECTED.name!=pointed&&(showString=INTERSECTED.userData.abstract,$("#detail").slideDown(1E3),$("#detail").html('
\u52a0\u8f7d\u4e2d...
'),setTimeout("showText(showString)",500)):$("#detail").slideUp(900)} function changePic(a){$("#picture img").attr("src","./pic/"+a);$("#picture").fadeIn(400)}function showPic(a){a?INTERSECTED.name!=pointed&&(picPath=INTERSECTED.userData.pic,$("#picture").fadeOut(400),setTimeout("changePic(picPath)",400),pointed=INTERSECTED.name):$("#picture").fadeOut(900)} function rayMousemove(a,d){raycaster.setFromCamera(a,d);a=raycaster.intersectObjects(nodeObjects);0i;i++)$.each(a,function(a,c){c.layer==i&&d.push(c)});return d}function sleep(a){var d=new Date;for(a=d.getTime()+a;!(d=new Date,d.getTime()>a););} function getForceLayout(a,d){var b=[],c=[];$.each(a,function(a,c){b.push({name:c.id,value:c.name,path:c.path,layer:c.layer,abstract:c.abstract,pic:c.pic})});c=d;for(i=1;4>i;i++){var e={nodes:[],links:[]};$.each(b,function(a,b){b.layer==i&&e.nodes.push(b)});$.each(c,function(a,b){b.layer==i&&e.links.push(b)});FORCE.getForceLayout(e,function(a,b){$.each(e.nodes,function(b,c){b=a[b].p;c.position={x:b[0]-500,y:500-b[1]}});console.log(e)})}return b} var container,stats,camera,controls,scene,renderer,raycaster,nodeObjects=[],networkGroup=new THREE.Group,nodePos=[],jsonData,isShowDetail=!1,mouse=new THREE.Vector2,INTERSECTED,radius=100,theta=0,offset=new THREE.Vector3(10,10,10);$().ready($.getJSON("js/data/data.json",function(a){jsonData=a;init();animate()})); function init(){container=document.getElementById("container");camera=new THREE.PerspectiveCamera(70,window.innerWidth/window.innerHeight,1,4E3);camera.position.set(1300,300,400);controls=new THREE.OrbitControls(camera);controls.rotateSpeed=1;controls.zoomSpeed=1.2;controls.panSpeed=.8;controls.enableZoom=!1;controls.enablePan=!1;controls.autoRotate=!0;controls.autoRotateSpeed=.5;scene=new THREE.Scene;scene.background=new THREE.Color(0);scene.add(new THREE.AmbientLight(16777215));for(var a=new THREE.Group, d,b=0;3>b;b++){d=300-300*b;var c=new THREE.GridHelper(1050,50);c.position.y=d;c.material.opacity=.75;c.material.transparent=!0;0==b&&(c.material.color=new THREE.Color("rgb(240, 134, 82)"));1==b&&(c.material.color=new THREE.Color("rgb(30, 160, 230)"));2==b&&(c.material.color=new THREE.Color("rgb(122, 225, 116)"));a.add(c)}a.name="planeGroup";d=new THREE.Group;d.name="nodeGroup";for(var e,c=node_link_Sort(jsonData.nodes),g=node_link_Sort(jsonData.links),g=getForceLayout(c,g),b=0;3>b;b++){var l=new THREE.Group; l.name="\u7b2c"+(b+1)+"\u5c42";e=320-300*b;$.each(g,function(a,c){if(c.layerb;b++){c=new THREE.Group;c.add(d.children[0]);c.add(a.children[0]);switch(b){case 0:c.add(g);break;case 1:c.add(n);break;case 2:c.add(p)}networkGroup.add(c)}networkGroup.add(q);scene.add(networkGroup);renderer=new THREE.WebGLRenderer({antialias:!0});renderer.setPixelRatio(window.devicePixelRatio);renderer.setSize(window.innerWidth, window.innerHeight);renderer.domElement.style.height="100%";renderer.domElement.style.width="100%";container.appendChild(renderer.domElement);raycaster=new THREE.Raycaster;stats=new Stats;document.addEventListener("mousemove",onDocumentMouseMove,!1);document.addEventListener("click",onMouseClick,!1);window.addEventListener("resize",onWindowResize,!1)}function animate(){requestAnimationFrame(animate);render();stats.update();TWEEN.update()} function render(){controls.update();rayMousemove(mouse,camera);changeObjFace(nodeObjects);renderer.render(scene,camera)}$(".btn_list button").bind("click",function(a){switch(a.target.id){case "main":homeAnimation();break;case "upper":networkAnimation();break;case "middle":serviceAnimation();break;case "bottom":virtualUser();break;case "browse":rotate()}});var which_layer="home"; function networkAnimation(){isShowDetail=!0;showDetail(!1);showPic(!1);if("first"!=which_layer){which_layer="first";TWEEN.removeAll();networkGroup.children[3].visible=!1;var a=(new TWEEN.Tween(networkGroup.children[0].position)).easing(TWEEN.Easing.Quadratic.Out).delay(100).to({x:0,y:-500,z:0},1E3),d=(new TWEEN.Tween(networkGroup.children[0].scale)).delay(0).easing(TWEEN.Easing.Exponential.Out).to({x:1.7,y:1.7,z:1.7},5E3),b=(new TWEEN.Tween(networkGroup.children[0].rotation)).easing(TWEEN.Easing.Quadratic.Out).delay(100).to({x:0, y:0,z:0},1E3);$.each(networkGroup.children,function(c,e){(new TWEEN.Tween(e.scale)).to({x:.3,y:.3,z:.3},800).easing(TWEEN.Easing.Quintic.InOut).start().onComplete(function(){a.start();d.start();b.start()})});(new TWEEN.Tween(networkGroup.children[1].position)).delay(100).to({y:0,x:1300,z:0},2E3).easing(TWEEN.Easing.Exponential.InOut).start();(new TWEEN.Tween(networkGroup.children[1].rotation)).delay(100).to({y:10,x:0,z:0},6E3).easing(TWEEN.Easing.Exponential.Out).start();(new TWEEN.Tween(networkGroup.children[2].position)).delay(100).to({y:0, x:-1300,z:0},2E3).easing(TWEEN.Easing.Exponential.InOut).start();(new TWEEN.Tween(networkGroup.children[2].rotation)).delay(100).to({y:10,x:0,z:0},6E3).easing(TWEEN.Easing.Exponential.Out).start()}} function serviceAnimation(){isShowDetail=!0;showDetail(!1);showPic(!1);if("second"!=which_layer){which_layer="second";TWEEN.removeAll();networkGroup.children[3].visible=!1;var a=(new TWEEN.Tween(networkGroup.children[1].scale)).easing(TWEEN.Easing.Exponential.Out).delay(0).to({x:1.7,y:1.7,z:1.7},5E3),d=(new TWEEN.Tween(networkGroup.children[1].position)).easing(TWEEN.Easing.Quadratic.Out).delay(100).to({x:0,y:0,z:0},1E3),b=(new TWEEN.Tween(networkGroup.children[1].rotation)).easing(TWEEN.Easing.Quadratic.Out).delay(100).to({x:0, y:0,z:0},1E3);$.each(networkGroup.children,function(c,e){(new TWEEN.Tween(e.scale)).to({x:.3,y:.3,z:.3},800).easing(TWEEN.Easing.Quintic.InOut).start().onComplete(function(){a.start();d.start();b.start()})});(new TWEEN.Tween(networkGroup.children[0].position)).delay(100).to({y:0,x:1300,z:0},2E3).easing(TWEEN.Easing.Exponential.InOut).start();(new TWEEN.Tween(networkGroup.children[0].rotation)).delay(100).to({x:0,y:10,z:0},6E3).easing(TWEEN.Easing.Exponential.Out).start();(new TWEEN.Tween(networkGroup.children[2].position)).delay(100).to({y:0, x:-1300,z:0},2E3).easing(TWEEN.Easing.Exponential.InOut).start();(new TWEEN.Tween(networkGroup.children[2].rotation)).delay(100).to({y:10,x:0,z:0},6E3).easing(TWEEN.Easing.Exponential.Out).start()}} function virtualUser(){isShowDetail=!0;showDetail(!1);showPic(!1);if("third"!=which_layer){which_layer="third";TWEEN.removeAll();networkGroup.children[3].visible=!1;var a=(new TWEEN.Tween(networkGroup.children[2].position)).easing(TWEEN.Easing.Quadratic.Out).delay(100).to({x:0,y:500,z:0},1E3),d=(new TWEEN.Tween(networkGroup.children[2].scale)).easing(TWEEN.Easing.Exponential.Out).delay(0).to({x:1.7,y:1.7,z:1.7},5E3),b=(new TWEEN.Tween(networkGroup.children[2].rotation)).easing(TWEEN.Easing.Quadratic.Out).delay(100).to({x:0, y:0,z:0},1E3);$.each(networkGroup.children,function(c,e){(new TWEEN.Tween(e.scale)).to({x:.3,y:.3,z:.3},800).easing(TWEEN.Easing.Quintic.InOut).start().onComplete(function(){a.start();d.start();b.start()})});(new TWEEN.Tween(networkGroup.children[0].position)).delay(100).to({y:0,x:1300,z:0},2E3).easing(TWEEN.Easing.Exponential.InOut).start();(new TWEEN.Tween(networkGroup.children[0].rotation)).delay(100).to({y:10,x:0,z:0},6E3).easing(TWEEN.Easing.Exponential.Out).start();(new TWEEN.Tween(networkGroup.children[1].position)).delay(100).to({y:0, x:-1300,z:0},2E3).easing(TWEEN.Easing.Exponential.InOut).start();(new TWEEN.Tween(networkGroup.children[1].rotation)).delay(100).to({y:10,x:0,z:0},6E3).easing(TWEEN.Easing.Exponential.Out).start()}} function homeAnimation(){function a(){$.each(d.children,function(a,c){a=c.line.material;c=c.cone.material;a.transparent=!0;c.transparent=!0;d.visible=!0;a.opacity=.2;c.opacity=.2;(new TWEEN.Tween(a)).delay(0).to({opacity:1},5E3).easing(TWEEN.Easing.Exponential.Out).start();(new TWEEN.Tween(c)).delay(0).to({opacity:1},5E3).easing(TWEEN.Easing.Exponential.Out).start()})}which_layer="home";isShowDetail=!1;showDetail(!1);showPic(!1);TWEEN.removeAll();$.each(networkGroup.children,function(a,c){(new TWEEN.Tween(c.scale)).to({x:1, y:1,z:1},800).start()});var d;d=networkGroup.children[3];(new TWEEN.Tween(networkGroup.children[0].position)).delay(0).to({y:0,x:0,z:0},700).easing(TWEEN.Easing.Exponential.In).start();(new TWEEN.Tween(networkGroup.children[0].rotation)).delay(0).to({y:0},2500).easing(TWEEN.Easing.Quintic.Out).start().onComplete(function(){});(new TWEEN.Tween(networkGroup.children[1].position)).delay(0).to({y:0,x:0,z:0},700).easing(TWEEN.Easing.Exponential.In).start();(new TWEEN.Tween(networkGroup.children[1].rotation)).delay(0).to({y:0}, 2500).easing(TWEEN.Easing.Quintic.Out).start().onComplete(function(){});(new TWEEN.Tween(networkGroup.children[2].position)).delay(0).to({y:0,x:0,z:0},700).easing(TWEEN.Easing.Exponential.In).start();(new TWEEN.Tween(networkGroup.children[2].rotation)).delay(0).to({y:0},2500).easing(TWEEN.Easing.Quintic.Out).start().onComplete(function(){a();IsHome=!0})}function rotate(){1==controls.autoRotate?controls.autoRotate=!1:controls.autoRotate=!0};