(function(a){varb=function(a){for(varb=a.length,e=0,g=b-1,f=0;f<b;g=f++)e+=a[g].x*a[f].y-a[f].x*a[g].y;return0.5*e};a.Triangulate=function(a,d){vare=a.length;if(3>e)returnnull;varg=[],f=[],h=[],k,m,n;if(0<b(a))for(m=0;m<e;m++)f[m]=m;elsefor(m=0;m<e;m++)f[m]=e-1-m;varq=2*e;for(m=e-1;2<e;){if(0>=q--){console.log("Warning, unable to triangulate polygon!");break}k=m;e<=k&&(k=0);m=k+1;e<=m&&(m=0);n=m+1;e<=n&&(n=0);vars;a:{vart=s=void0,r=void0,p=void0,v=void0,x=void0,u=void0,E=void0,y=
a[f[n]]]);h.push([f[k],f[m],f[n]]);k=m;for(n=m+1;n<e;k++,n++)f[k]=f[n];e--;q=2*e}}returnd?h:g};a.Triangulate.area=b;returna})(THREE.FontUtils);self._typeface_js={faces:THREE.FontUtils.faces,loadFace:THREE.FontUtils.loadFace};THREE.typeface_js=self._typeface_js;THREE.Curve=function(){};THREE.Curve.prototype.getPoint=function(a){console.log("Warning, getPoint() not implemented!");returnnull};THREE.Curve.prototype.getPointAt=function(a){a=this.getUtoTmapping(a);returnthis.getPoint(a)};
THREE.Curve=function(){};THREE.Curve.prototype.getPoint=function(a){console.log("Warning, getPoint() not implemented!");returnnull};THREE.Curve.prototype.getPointAt=function(a){a=this.getUtoTmapping(a);returnthis.getPoint(a)};THREE.Curve.prototype.getPoints=function(a){a||(a=5);varb,c=[];for(b=0;b<=a;b++)c.push(this.getPoint(b/a));returnc};THREE.Curve.prototype.getSpacedPoints=function(a){a||(a=5);varb,c=[];for(b=0;b<=a;b++)c.push(this.getPointAt(b/a));returnc};
THREE.PlaneGeometry=function(a,b,c,d){console.info("THREE.PlaneGeometry: Consider using THREE.PlaneBufferGeometry for lower memory footprint.");THREE.Geometry.call(this);this.type="PlaneGeometry";this.parameters={width:a,height:b,widthSegments:c,heightSegments:d};this.fromBufferGeometry(newTHREE.PlaneBufferGeometry(a,b,c,d))};THREE.PlaneGeometry.prototype=Object.create(THREE.Geometry.prototype);