text: /**
   * skylark-threejs-ex - A version of threejs extentions library that ported to running on skylarkjs
   * @author Hudaokeji, Inc.
   * @version v0.9.0
   * @link https://github.com/skylark-integration/skylark-threejs-ex/
   * @license MIT
   */
  define(["skylark-threejs","../threex"],function(e,t){"use strict";var r=function(t,r){e.BufferGeometry.call(this);var o=[],n=[],a=[],p=[1,1,1],s=[1,1,0],u=new e.Vector3(0,1,0),y=new e.Vector3,c=new e.Vector3,i=new e.Quaternion,h=new e.Quaternion;h.setFromAxisAngle(u,Math.PI/2);var l=new e.Vector3,w=new e.Vector3;w.copy(t.getPointAt(0));for(var d=[new e.Vector3(-.225,0,0),new e.Vector3(0,-.05,0),new e.Vector3(0,-.175,0),new e.Vector3(0,-.05,0),new e.Vector3(.225,0,0),new e.Vector3(0,-.175,0)],f=2*Math.PI,V=5,z=[],x=0;x<V;x++){var A=x/V*f;z.push(new e.Vector3(.06*Math.sin(A),.06*Math.cos(A),0))}V=6;var m=[];for(x=0;x<V;x++){A=x/V*f;m.push(new e.Vector3(.025*Math.sin(A),.025*Math.cos(A),0))}var Q=new e.Vector3,v=new e.Vector3;function M(e,t){v.set(0,0,-1).applyQuaternion(i);for(var r=0;r<e.length;r++)Q.copy(e[r]),Q.applyQuaternion(i),Q.add(l),o.push(Q.x,Q.y,Q.z),n.push(v.x,v.y,v.z),a.push(t[0],t[1],t[2]);v.set(0,0,1).applyQuaternion(i);for(r=e.length-1;r>=0;r--)Q.copy(e[r]),Q.applyQuaternion(i),Q.add(l),o.push(Q.x,Q.y,Q.z),n.push(v.x,v.y,v.z),a.push(t[0],t[1],t[2])}var b=new e.Vector3,B=new e.Vector3,g=new e.Vector3,G=new e.Vector3,F=new e.Vector3,P=new e.Vector3,I=new e.Vector3,j=new e.Vector3;function O(e,t,r){for(var p=0,s=e.length;p<s;p++){var u=e[p],y=e[(p+1)%s];b.copy(u).add(t),b.applyQuaternion(i),b.add(l),B.copy(y).add(t),B.applyQuaternion(i),B.add(l),g.copy(y).add(t),g.applyQuaternion(h),g.add(w),G.copy(u).add(t),G.applyQuaternion(h),G.add(w),o.push(b.x,b.y,b.z),o.push(B.x,B.y,B.z),o.push(G.x,G.y,G.z),o.push(B.x,B.y,B.z),o.push(g.x,g.y,g.z),o.push(G.x,G.y,G.z),F.copy(u),F.applyQuaternion(i),F.normalize(),P.copy(y),P.applyQuaternion(i),P.normalize(),I.copy(y),I.applyQuaternion(h),I.normalize(),j.copy(u),j.applyQuaternion(h),j.normalize(),n.push(F.x,F.y,F.z),n.push(P.x,P.y,P.z),n.push(j.x,j.y,j.z),n.push(P.x,P.y,P.z),n.push(I.x,I.y,I.z),n.push(j.x,j.y,j.z),a.push(r[0],r[1],r[2]),a.push(r[0],r[1],r[2]),a.push(r[0],r[1],r[2]),a.push(r[0],r[1],r[2]),a.push(r[0],r[1],r[2]),a.push(r[0],r[1],r[2])}}var R=new e.Vector3;for(x=1;x<=r;x++){l.copy(t.getPointAt(x/r)),u.set(0,1,0),y.subVectors(l,w).normalize(),c.crossVectors(u,y).normalize(),u.crossVectors(y,c);A=Math.atan2(y.x,y.z);i.setFromAxisAngle(u,A),x%2==0&&M(d,s),O(z,R.set(0,-.125,0),s),O(m,R.set(.2,0,0),p),O(m,R.set(-.2,0,0),p),w.copy(l),h.copy(i)}this.setAttribute("position",new e.BufferAttribute(new Float32Array(o),3)),this.setAttribute("normal",new e.BufferAttribute(new Float32Array(n),3)),this.setAttribute("color",new e.BufferAttribute(new Float32Array(a),3))};r.prototype=Object.create(e.BufferGeometry.prototype);var o=function(t,r){e.BufferGeometry.call(this);var o=[],n=[],a=new e.Quaternion,p=new e.Vector3(0,1,0),s=new e.Vector3,u=new e.Vector3,y=[new e.Vector3(0,.05,-.05),new e.Vector3(0,.05,.05),new e.Vector3(0,-.05,0)],c=[new e.Vector3(-.05,0,.05),new e.Vector3(-.05,0,-.05),new e.Vector3(.05,0,0)],i=[new e.Vector3(.05,0,-.05),new e.Vector3(.05,0,.05),new e.Vector3(-.05,0,0)],h=new e.Vector3,l=new e.Vector3,w=new e.Vector3,d=new e.Vector3,f=new e.Vector3,V=new e.Vector3,z=new e.Vector3,x=new e.Vector3;function A(e,t,r){for(var p=0,s=e.length;p<s;p++){var u=e[p],y=e[(p+1)%s];h.copy(u),h.applyQuaternion(a),h.add(t),l.copy(y),l.applyQuaternion(a),l.add(t),w.copy(y),w.applyQuaternion(a),w.add(r),d.copy(u),d.applyQuaternion(a),d.add(r),o.push(h.x,h.y,h.z),o.push(l.x,l.y,l.z),o.push(d.x,d.y,d.z),o.push(l.x,l.y,l.z),o.push(w.x,w.y,w.z),o.push(d.x,d.y,d.z),f.copy(u),f.applyQuaternion(a),f.normalize(),V.copy(y),V.applyQuaternion(a),V.normalize(),z.copy(y),z.applyQuaternion(a),z.normalize(),x.copy(u),x.applyQuaternion(a),x.normalize(),n.push(f.x,f.y,f.z),n.push(V.x,V.y,V.z),n.push(x.x,x.y,x.z),n.push(V.x,V.y,V.z),n.push(z.x,z.y,z.z),n.push(x.x,x.y,x.z)}}for(var m=new e.Vector3,Q=new e.Vector3,v=1;v<=r;v++){s.copy(t.getPointAt(v/r)),u.copy(t.getTangentAt(v/r));var M=Math.atan2(u.x,u.z);a.setFromAxisAngle(p,M),s.y>10?(m.set(-.75,-.35,0),m.applyQuaternion(a),m.add(s),Q.set(.75,-.35,0),Q.applyQuaternion(a),Q.add(s),A(y,m,Q),m.set(-.7,-.3,0),m.applyQuaternion(a),m.add(s),Q.set(-.7,-s.y,0),Q.applyQuaternion(a),Q.add(s),A(c,m,Q),m.set(.7,-.3,0),m.applyQuaternion(a),m.add(s),Q.set(.7,-s.y,0),Q.applyQuaternion(a),Q.add(s),A(i,m,Q)):(m.set(0,-.2,0),m.applyQuaternion(a),m.add(s),Q.set(0,-s.y,0),Q.applyQuaternion(a),Q.add(s),A(i,m,Q))}this.setAttribute("position",new e.BufferAttribute(new Float32Array(o),3)),this.setAttribute("normal",new e.BufferAttribute(new Float32Array(n),3))};o.prototype=Object.create(e.BufferGeometry.prototype);var n=function(t,r){e.BufferGeometry.call(this);var o=[],n=new e.Vector3(0,1,0),a=new e.Vector3,p=new e.Quaternion,s=new e.Quaternion;s.setFromAxisAngle(n,Math.PI/2);var u=new e.Vector3,y=new e.Vector3;y.copy(t.getPointAt(0)),y.y=0;for(var c=new e.Vector3,i=new e.Vector3,h=new e.Vector3,l=new e.Vector3,w=1;w<=r;w++){u.copy(t.getPointAt(w/r)),u.y=0,a.subVectors(u,y);var d=Math.atan2(a.x,a.z);p.setFromAxisAngle(n,d),c.set(-.3,0,0),c.applyQuaternion(p),c.add(u),i.set(.3,0,0),i.applyQuaternion(p),i.add(u),h.set(.3,0,0),h.applyQuaternion(s),h.add(y),l.set(-.3,0,0),l.applyQuaternion(s),l.add(y),o.push(c.x,c.y,c.z),o.push(i.x,i.y,i.z),o.push(l.x,l.y,l.z),o.push(i.x,i.y,i.z),o.push(h.x,h.y,h.z),o.push(l.x,l.y,l.z),y.copy(u),s.copy(p)}this.setAttribute("position",new e.BufferAttribute(new Float32Array(o),3))};n.prototype=Object.create(e.BufferGeometry.prototype);var a=function(){e.BufferGeometry.call(this);for(var t=[],r=0;r<100;r++){var o=800*Math.random()-400,n=50*Math.random()+50,a=800*Math.random()-400,p=40*Math.random()+20;t.push(o-p,n,a-p),t.push(o+p,n,a-p),t.push(o-p,n,a+p),t.push(o+p,n,a-p),t.push(o+p,n,a+p),t.push(o-p,n,a+p)}this.setAttribute("position",new e.BufferAttribute(new Float32Array(t),3))};a.prototype=Object.create(e.BufferGeometry.prototype);var p=function(t){e.BufferGeometry.call(this);var r=[],o=[],n=new e.Raycaster;n.ray.direction.set(0,-1,0);for(var a=0;a<2e3;a++){var p=500*Math.random()-250,s=500*Math.random()-250;n.ray.origin.set(p,50,s);var u=n.intersectObject(t);if(0!==u.length){var y=u[0].point.y,c=5*Math.random()+.5,i=Math.random()*Math.PI*2;r.push(p+Math.sin(i),y,s+Math.cos(i)),r.push(p,y+c,s),r.push(p+Math.sin(i+Math.PI),y,s+Math.cos(i+Math.PI)),i+=Math.PI/2,r.push(p+Math.sin(i),y,s+Math.cos(i)),r.push(p,y+c,s),r.push(p+Math.sin(i+Math.PI),y,s+Math.cos(i+Math.PI));for(var h=.1*Math.random(),l=0;l<6;l++)o.push(.2+h,.4+h,0)}}this.setAttribute("position",new e.BufferAttribute(new Float32Array(r),3)),this.setAttribute("color",new e.BufferAttribute(new Float32Array(o),3))};return p.prototype=Object.create(e.BufferGeometry.prototype),t.misc.RollerCoaster={RollerCoasterGeometry:r,RollerCoasterLiftersGeometry:o,RollerCoasterShadowGeometry:n,SkyGeometry:a,TreesGeometry:p}});
  //# sourceMappingURL=../sourcemaps/misc/RollerCoaster.js.map
  