-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathdatart-babylon.iife.js
15 lines (13 loc) · 11.6 KB
/
datart-babylon.iife.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
(function(){"use strict";
/*! *****************************************************************************
Copyright (c) Microsoft Corporation.
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
***************************************************************************** */function e(e,t,n,o){function s(e){return e instanceof n?e:new n((function(t){t(e)}))}return new(n||(n=Promise))((function(n,r){function a(e){try{l(o.next(e))}catch(e){r(e)}}function i(e){try{l(o["throw"](e))}catch(e){r(e)}}function l(e){e.done?n(e.value):s(e.value).then(a,i)}l((o=o.apply(e,t||[])).next())}))}function t(e,t){var n={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]},o,s,r,a;return a={next:i(0),throw:i(1),return:i(2)},"function"===typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function i(e){return function(t){return l([e,t])}}function l(a){if(o)throw new TypeError("Generator is already executing.");while(n)try{if(o=1,s&&(r=2&a[0]?s["return"]:a[0]?s["throw"]||((r=s["return"])&&r.call(s),0):s.next)&&!(r=r.call(s,a[1])).done)return r;if(s=0,r)a=[2&a[0],r.value];switch(a[0]){case 0:case 1:r=a;break;case 4:n.label++;return{value:a[1],done:false};case 5:n.label++;s=a[1];a=[0];continue;case 7:a=n.ops.pop();n.trys.pop();continue;default:if(!(r=n.trys,r=r.length>0&&r[r.length-1])&&(6===a[0]||2===a[0])){n=0;continue}if(3===a[0]&&(!r||a[1]>r[0]&&a[1]<r[3])){n.label=a[1];break}if(6===a[0]&&n.label<r[1]){n.label=r[1];r=a;break}if(r&&n.label<r[2]){n.label=r[2];n.ops.push(a);break}if(r[2])n.ops.pop();n.trys.pop();continue}a=t.call(e,n)}catch(e){a=[6,e];s=0}finally{o=r=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:true}}}var n='<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 55 55"><defs><style>.logo_svg__cls-1{fill:#d5d2ca}.logo_svg__cls-2{fill:#fff}.logo_svg__cls-3{fill:#e0684b}.logo_svg__cls-4{fill:#bb464b}</style></defs><g id="logo_svg__UI"><path class="logo_svg__cls-2" d="m34.29 11.63-13.64 7.88v15.74l13.64 7.88 13.63-7.88V19.51Z"></path><path class="logo_svg__cls-3" d="m47.92 19.51-4.26-2.47-4.11 2.37 4.27 2.47 4.1-2.37zM24.76 21.88 38.39 14l-4.1-2.37-13.64 7.88 4.11 2.37zM30.02 29.84l4.27 2.47 4.27-2.47-4.27-2.46-4.27 2.46z"></path><path class="logo_svg__cls-4" d="M43.82 21.88v11l-9.53 5.5-9.53-5.5v-11l-4.11-2.37v15.74l13.64 7.88 13.63-7.88V19.51l-4.1 2.37z"></path><path class="logo_svg__cls-4" d="m34.29 22.45-4.27 2.46v4.93l4.27-2.46 4.27 2.46v-4.93l-4.27-2.46z"></path><path d="m43.82 21.88-5.26 3.03v4.93l-4.27 2.47v6.07l9.53-5.5v-11z" style="fill: rgb(224, 222, 216);"></path><path class="logo_svg__cls-1" d="m24.76 21.88 5.26 3.03v4.93l4.27 2.47v6.07l-9.53-5.5v-11z"></path><path class="logo_svg__cls-2" d="m38.39 14 5.27 3.04-4.11 2.37 4.27 2.47-5.26 3.03-4.27-2.46-4.27 2.46-5.26-3.03L38.39 14z"></path></g><path d="M0 0h55v55H0z" id="logo_svg__Icon_buttons" data-name="Icon buttons" style="fill: none;"></path></svg>';function o(){var o=this;return{config:{styles:[{label:"label",key:"label",comType:"group",rows:[{label:"showLabel",key:"showLabel",default:false,comType:"checkbox"},{label:"showLabelBySwitch",key:"showLabelBySwitch",default:true,comType:"switch",watcher:{deps:["showLabel"],action:function(e){return{comType:e.showLabel?"checkbox":"switch",disabled:e.showLabel}}}},{label:"showDataColumns",key:"dataColumns",comType:"select",options:[{getItems:function(e){var t=(e||[]).filter((function(e){return["metrics","dimension"].includes(e.key)}));var n=t.reduce((function(e,t){return e.concat(t.rows||[])}),[]);return n.map((function(e){return{key:e.uid,value:e.uid,label:e.label||e.aggregate?"".concat(e.aggregate,"(").concat(e.colName,")"):e.colName}}))}}]},{label:"font",key:"font",comType:"font"}]}],i18ns:[{lang:"zh-CN",translation:{chartName:"BabylonJS"}},{lang:"en-US",translation:{chartName:"BabylonJS"}}]},isISOContainer:"experiment-babylon-demo",dependency:["https://cdnjs.cloudflare.com/ajax/libs/dat-gui/0.6.2/dat.gui.min.js","https://assets.babylonjs.com/generated/Assets.js","https://preview.babylonjs.com/ammo.js","https://preview.babylonjs.com/cannon.js","https://preview.babylonjs.com/Oimo.js","https://preview.babylonjs.com/earcut.min.js","https://preview.babylonjs.com/babylon.js","https://preview.babylonjs.com/materialsLibrary/babylonjs.materials.min.js","https://preview.babylonjs.com/proceduralTexturesLibrary/babylonjs.proceduralTextures.min.js","https://preview.babylonjs.com/postProcessesLibrary/babylonjs.postProcess.min.js","https://preview.babylonjs.com/loaders/babylonjs.loaders.js","https://preview.babylonjs.com/serializers/babylonjs.serializers.min.js","https://preview.babylonjs.com/gui/babylon.gui.min.js","https://preview.babylonjs.com/inspector/babylon.inspector.bundle.js"],meta:{id:"experiment-babylon-demo",name:"chartName",icon:n,requirements:[{group:null,aggregate:null}]},engine:{resize:function(){}},canvas:{id:"",style:""},scene:{activeCamera:{},render:function(){}},sceneToRender:{activeCamera:{},render:function(){}},global:{Ammo:function(){},initFunction:function(){return e(o,void 0,void 0,(function(){return t(this,(function(e){return[2]}))}))},BABYLON:{Engine:function(e,t,n){}}},onMount:function(n,o){var s=this;if(void 0===n.containerId||!o.document)return;var r=o.window.BABYLON;this.global=o.window;if(!(null===r||void 0===r?void 0:r.Scene)||!this.global)return;this.canvas=o.document.createElement("canvas");this.canvas.id="babylonjs-canvas-container";this.canvas.style="width: 100%; height: 100%";o.document.getElementById(n.containerId).appendChild(this.canvas);var a=this;this.global.initFunction=function(){return e(this,void 0,void 0,(function(){var n,o;return t(this,(function(s){switch(s.label){case 0:return[4,a.global.Ammo()];case 1:s.sent();n=function(){return e(this,void 0,void 0,(function(){return t(this,(function(e){try{return[2,a.createDefaultEngine()]}catch(e){console.log("the available createEngine function failed. Creating the default engine instead");return[2,a.createDefaultEngine()]}return[2]}))}))};o=a;return[4,n()];case 2:o.engine=s.sent();if(!a.engine)throw"engine should not be null.";a.startRenderLoop(a.engine);a.scene=a.createScene(r,a.engine);return[2]}}))}))};this.global.initFunction().then((function(){s.sceneToRender=s.scene}))},onUpdated:function(e,t){},onUnMount:function(){},onResize:function(e,t){this.engine.resize()},createDefaultEngine:function(){return new this.global.BABYLON.Engine(this.canvas,true,{preserveDrawingBuffer:true,stencil:true,disableWebGL2Support:false})},startRenderLoop:function(e){var t=this;e.runRenderLoop((function(){if(t.sceneToRender&&t.sceneToRender.activeCamera)t.sceneToRender.render()}))},createScene:function(e,t){var n=new e.Scene(t)||{};var o=e.CubeTexture.CreateFromPrefilteredData("/textures/environment.dds",n);o.name="envTex";o.gammaSpace=false;n.environmentTexture=o;var s=e.MeshBuilder.CreateBox("skyBox",{size:1e3},n);var r=new e.StandardMaterial("skyBox",n);r.backFaceCulling=false;r.reflectionTexture=new e.CubeTexture("textures/skybox",n);r.reflectionTexture.coordinatesMode=e.Texture.SKYBOX_MODE;r.diffuseColor=new e.Color3(0,0,0);r.specularColor=new e.Color3(0,0,0);s.material=r;var a=new e.ArcRotateCamera("Camera",e.Tools.ToRadians(-120),e.Tools.ToRadians(80),65,new e.Vector3(0,-15,0),n);a.attachControl(this.canvas,false);n.enablePhysics(new e.Vector3(0,-12,0),new e.AmmoJSPlugin);var i=new e.PointLight("light1",new e.Vector3(0,5,-6),n);var l=new e.PointLight("light2",new e.Vector3(6,5,3.5),n);new e.DirectionalLight("light3",new e.Vector3(20,-5,20),n);i.intensity=15;l.intensity=5;var c=[new e.Vector3(.2,3.5,0),new e.Vector3(0,3.5,.2),new e.Vector3(-.2,3.5,0),new e.Vector3(0,3.5,-.2)];var u=e.MeshBuilder.CreateBox("killBox",{width:100,depth:100,height:.5},n);u.position=new e.Vector3(0,-50,0);u.visibility=0;var m=[];t.displayLoadingUI();Promise.all([e.SceneLoader.AppendAsync("https://models.babylonjs.com/Marble/marble/marble.gltf"),e.SceneLoader.AppendAsync("https://models.babylonjs.com/Marble/marbleTower/marbleTower.gltf")]).then((function(){var o=n.getMeshByName("marble");o.setParent(null);o.visibility=0;m.push(n.getMaterialByName("blueMat"),n.getMaterialByName("greenMat"),n.getMaterialByName("redMat"),n.getMaterialByName("purpleMat"),n.getMaterialByName("yellowMat"));var s=n.getMeshByName("tower");var r=n.getMeshByName("rockerBottom");var a=n.getMeshByName("rockerTop");var i=n.getMeshByName("spinner");var l=n.getMeshByName("supports");var c=n.getMeshByName("track");var u=n.getMeshByName("wheel");s.setParent(null);r.setParent(null);a.setParent(null);i.setParent(null);l.setParent(null);c.setParent(null);u.setParent(null);s.physicsImpostor=new e.PhysicsImpostor(s,e.PhysicsImpostor.MeshImpostor,{mass:0,friction:1},n);l.physicsImpostor=new e.PhysicsImpostor(l,e.PhysicsImpostor.MeshImpostor,{mass:0,friction:1},n);c.physicsImpostor=new e.PhysicsImpostor(c,e.PhysicsImpostor.MeshImpostor,{mass:0,friction:1},n);u.physicsImpostor=new e.PhysicsImpostor(u,e.PhysicsImpostor.MeshImpostor,{mass:0,friction:1},n);var p=new e.Mesh("rockerRoot",n);r.setParent(p);a.setParent(p);p.position=new e.Vector3(4.1,-6.4,0);p.rotation.x-=e.Tools.ToRadians(25);a.physicsImpostor=new e.PhysicsImpostor(a,e.PhysicsImpostor.ConvexHullImpostor,{mass:0},n);r.physicsImpostor=new e.PhysicsImpostor(r,e.PhysicsImpostor.ConvexHullImpostor,{mass:0},n);p.physicsImpostor=new e.PhysicsImpostor(p,e.PhysicsImpostor.NoImpostor,{mass:2},n);var d=e.MeshBuilder.CreateCylinder("Rocker",{diameter:.1,height:1},n);d.rotation.z+=e.Tools.ToRadians(90);d.position=new e.Vector3(4.1,-6.4,0);d.physicsImpostor=new e.PhysicsImpostor(d,e.PhysicsImpostor.MeshImpostor,{mass:0},n);d.visibility=0;var b=new e.HingeJoint({mainPivot:new e.Vector3(0,0,0),connectedPivot:new e.Vector3(0,0,0),mainAxis:new e.Vector3(-1,0,0),connectedAxis:new e.Vector3(0,1,0),nativeParams:{}});p.physicsImpostor.addJoint(d.physicsImpostor,b);var g;var y=8;var v=360/y;var f=120;var w=0;var I=new e.TransformNode("spinnerPivotParent");i.setParent(I);e.Animation.CreateAndStartAnimation("spinnerRotation",I,"rotation.y",30,f,e.Tools.ToRadians(0),e.Tools.ToRadians(360),1);var T=new e.TransformNode("wheelPivotParent");T.position.y-=28.8;u.setParent(T);e.Animation.CreateAndStartAnimation("marbleTowerWheelRot",T,"rotation.x",30,600,e.Tools.ToRadians(0),e.Tools.ToRadians(-360),1);n.actionManager=new e.ActionManager(n);n.actionManager.registerAction(new e.ExecuteCodeAction({trigger:e.ActionManager.OnEveryFrameTrigger},(function(){g=e.Tools.ToDegrees(I.rotation.y);if(360==v&&g<360/y)v=360/y;else if(g>=v){v+=360/y;h(w);w+=1;if(4==w)w=0}})));t.hideLoadingUI()}));function h(t){var o=n.getMeshByName("marble").clone("marbleClone");o.visibility=1;o.material=m[Math.floor(5*Math.random())];o.position=c[t];o.physicsImpostor=new e.PhysicsImpostor(o,e.PhysicsImpostor.SphereImpostor,{mass:2,friction:.5,restitution:0},n);o.actionManager=new e.ActionManager(n);o.actionManager.registerAction(new e.ExecuteCodeAction({trigger:e.ActionManager.OnIntersectionEnterTrigger,parameter:u},(function(){p(o)})))}function p(t){new e.Vector3(0,1,0);e.Vector3.Zero();e.Animation.CreateAndStartAnimation("marbleVisAnim",t,"visibility",30,30,1,0,0,null,(function(){t.dispose()}))}return n}}}return o})();