memoscan
← all memos

Memo 0x55569d24…47d2c9 on Ethereum

t+=a[m]*this._lookUpTableQuadratic[o][m]}this.vertex(e,t)}this.curFillColor=p[2],this.curStrokeColor=y[2],this.immediateMode._quadraticVertex[0]=arguments.length<=2?void 0:arguments[2],this.immediateMode._quadraticVertex[1]=arguments.length<=3?void 0:arguments[3]}else if(6===l){this.isQuadratic=!0,i=[this.immediateMode._quadraticVertex[0],arguments.length<=0?void 0:arguments[0],arguments.length<=3?void 0:arguments[3]],a=[this.immediateMode._quadraticVertex[1],arguments.length<=1?void 0:arguments[1],arguments.length<=4?void 0:arguments[4]];var v=[this.immediateMode._quadraticVertex[2],arguments.length<=2?void 0:arguments[2],arguments.length<=5?void 0:arguments[5]],b=Math.hypot(i[0]-i[1],a[0]-a[1],v[0]-v[1]);for(b/=b+Math.hypot(i[1]-i[2],a[1]-a[2],v[1]-v[2]),n=0;n<4;n++)p[1].push(p[0][n]*(1-b)+p[2][n]*b),y[1].push(y[0][n]*(1-b)+y[2][n]*b);for(o=0;o<f;o++){for(this.curFillColor=[0,0,0,0],this.curStrokeColor=[0,0,0,0],m=e=t=r=0;m<3;m++){for(n=0;n<4;n++)this.curFillColor[n]+=this._lookUpTableQuadratic[o][m]*p[m][n],this.curStrokeColor[n]+=this._lookUpTableQuadratic[o][m]*y[m][n];e+=i[m]*this._lookUpTableQuadratic[o][m],t+=a[m]*this._lookUpTableQuadratic[o][m],r+=v[m]*this._lookUpTableQuadratic[o][m]}this.vertex(e,t,r)}this.curFillColor=p[2],this.curStrokeColor=y[2],this.immediateMode._quadraticVertex[0]=arguments.length<=3?void 0:arguments[3],this.immediateMode._quadraticVertex[1]=arguments.length<=4?void 0:arguments[4],this.immediateMode._quadraticVertex[2]=arguments.length<=5?void 0:arguments[5]}},S.default.RendererGL.prototype.curveVertex=function(){var e,t,r,o,n,s,i=[],a=[],l=arguments.length;if(0===this._lookUpTableBezier.length||this._lutBezierDetail!==this._pInst._curveDetail){this._lookUpTableBezier=[],this._lutBezierDetail=this._pInst._curveDetail;for(var u=1/this._lutBezierDetail,c=u,d=1,h=0;c<1;){if(s=parseFloat(c.toFixed(6)),this._lookUpTableBezier[h]=this._bezierCoefficients(s),d.toFixed(6)===u.toFixed(6)){s=parseFloat(d.toFixed(6))+parseFloat(c.toFixed(6)),++h,this._lookUpTableBezier[h]=this._bezierCoefficients(s);break}c+=u,d-=u,++h}}var f=this._lookUpTableBezier.length;if(2===l){if(this.immediateMode._curveVertex.push(arguments.length<=0?void 0:arguments[0]),this.immediateMode._curveVertex.push(arguments.length<=1?void 0:arguments[1]),8===this.immediateMode._curveVertex.length){for(this.isCurve=!0,i=this._bezierToCatmull([this.immediateMode._curveVertex[0],this.immediateMode._curveVertex[2],this.immediateMode._curveVertex[4],this.immediateMode._curveVertex[6]]),a=this._bezierToCatmull([this.immediateMode._curveVertex[1],this.immediateMode._curveVertex[3],this.immediateMode._curveVertex[5],this.immediateMode._curveVertex[7]]),n=0;n<f;n++)t=i[0]*this._lookUpTableBezier[n][0]+i[1]*this._lookUpTableBezier[n][1]+i[2]*this._lookUpTableBezier[n][2]+i[3]*this._lookUpTableBezier[n][3],r=a[0]*this._lookUpTableBezier[n][0]+a[1]*this._lookUpTableBezier[n][1]+a[2]*this._lookUpTableBezier[n][2]+a[3]*this._lookUpTableBezier[n][3],this.vertex(t,r);for(n=0;n<l;n++)this.immediateMode._curveVertex.shift()}}else if(3===l&&(this.immediateMode._curveVertex.push(arguments.length<=0?void 0:arguments[0]),this.immediateMode._curveVertex.push(arguments.length<=1?void 0:arguments[1]),this.immediateMode._curveVertex.push(arguments.length<=2?void 0:arguments[2]),12===this.immediateMode._curveVertex.length)){for(this.isCurve=!0,i=this._bezierToCatmull([this.immediateMode._curveVertex[0],this.immediateMode._curveVertex[3],this.immediateMode._curveVertex[6],this.immediateMode._curveVertex[9]]),a=this._bezierToCatmull([this.immediateMode._curveVertex[1],this.immediateMode._curveVertex[4],this.immediateMode._curveVertex[7],this.immediateMode._curveVertex[10]]),e=this._bezierToCatmull([this.immediateMode._curveVertex[2],this.immediateMode._curveVertex[5],this.immediateMode._curveVertex[8],this.immediateMode._curveVertex[11]]),n=0;n<f;n++)t=i[0]*this._lookUpTableBezier[n][0]+i[1]*this._lookUpTableBezier[n][1]+i[2]*this._lookUpTableBezier[n][2]+i[3]*this._lookUpTableBezier[n][3],r=a[0]*this._lookUpTableBezier[n][0]+a[1]*this._lookUpTableBezier[n][1]+a[2]*this._lookUpTableBezier[n][2]+a[3]*this._lookUpTableBezier[n][3],o=e[0]*this._lookUpTableBezier[n][0]+e[1]*this._lookUpTableBezier[n][1]+e[2]*this._lookUpTableBezier[n][2]+e[3]*this._lookUpTableBezier[n][3],this.vertex(t,r,o);for(n=0;n<l;n++)this.immediateMode._curveVertex.shift()}},S.default.RendererGL.prototype.image=function(e,t,r,o,n,s,i,a,l){this._isErasing&&this.blendMode(this._cachedBlendMode),this._pInst.push(),this._pInst.noLights(),this._pInst.noStroke(),this._pInst.texture(e),this._pInst.textureMode(j.NORMAL);var u=0,c=(t<=e.width&&(u=t/e.width),1),t=(t+o<=e.width&&(c=(t+o)/e.width),0),o=(r<=e.height&&(t=r/e.height),1);r+n<=e.height&&(o=(r+n)/e.height),this.beginShape(),this.vertex(s,i,0,u,t),this.vertex(s+a,i,0,c,t),this.vertex(s+a,i+l,0,c,o),this.vertex(s,i+l,0,u,o),this.endShape(j.CLOSE),this._pInst.pop(),this._isErasing&&this.blendMode(j.REMOVE)};var n=S.default;r.default=n},{"../core/constants":272,"../core/main":283,"./p5.Geometry":335,"core-js/modules/es.array.concat":153,"core-js/modules/es.array.for-each":161,"core-js/modules/es.array.iterator":165,"core-js/modules/es.array.slice":169,"core-js/modules/es.math.hypot":176,"core-js/modules/es.math.sign":178,"core-js/modules/es.number.to-fixed":182,"core-js/modules/es.object.get-own-property-descriptor":186,"core-js/modules/es.object.to-string":190,"core-js/modules/es.string.iterator":200,"core-js/modules/es.symbol":212,"core-js/modules/es.symbol.description":210,"core-js/modules/es.symbol.iterator":211,"core-js/modules/es.weak-map":244,"core-js/modules/web.dom-collections.iterator":246}],327:[function(e,t,r){"use strict";function o(e){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function i(e){return(i="function"==typeof Symbol&&"symbol"===o(Symbol.iterator)?function(e){return o(e)}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":o(e)})(e)}e("core-js/modules/es.symbol"),e("core-js/modules/es.symbol.description"),e("core-js/modules/es.symbol.iterator"),e("core-js/modules/es.array.every"),e("core-js/modules/es.array.from"),e("core-js/modules/es.array.iterator"),e("core-js/modules/es.array.map"),e("core-js/modules/es.object.assign"),e("core-js/modules/es.object.get-own-property-descriptor"),e("core-js/modules/es.object.to-string"),e("core-js/modules/es.regexp.to-string"),e("core-js/modules/es.string.iterator"),e("core-js/modules/es.weak-map"),e("core-js/modules/web.dom-collections.iterator"),e("core-js/modules/es.array.every"),e("core-js/modules/es.array.map"),e("core-js/modules/es.object.assign"),Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var n=(c=e("../core/main"))&&c.__esModule?c:{default:c},a=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==i(e)&&"function"!=typeof e)return{default:e};var t=l();if(t&&t.has(e))return t.get(e);var r,o={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(r in e){var s;Object.prototype.hasOwnProperty.call(e,r)&&((s=n?Object.getOwnPropertyDescriptor(e,r):null)&&(s.get||s.set)?Object.defineProperty(o,r,s):o[r]=e[r])}o.default=e,t&&t.set(e,o);return o}(e("../core/constants"));function l(){var e;return"function"!=typeof WeakMap?null:(e=new WeakMap,l=function(){return e},e)}function s(e){return function(e){if(Array.isArray(e)){for(var t=0,r=new Array(e.length);t<e.length;t++)r[t]=e[t];return r}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function u(e,t){for(var r=0;r<t.length;r++){var o=t[r];o.enumerable=o.enumerable||!1,o.configurable=!0,"value"in o&&(o.writable=!0),Object.defineProperty(e,o.key,o)}}var c=function(){function t(e){if(!(this instanceof t))throw new TypeError("Cannot call a class as a function");(this.renderer=e)._pInst.push(),this.identityMatrix=new n.default.Matrix,e.uModelMatrix=new n.default.Matrix,this.geometry=new n.default.Geometry,this.geometry.gid="_p5_GeometryBuilder_".concat(t.nextGeometryId),t.nextGeometryId++,this.hasTransform=!1}var e,r,o;return e=t,(r=[{key:"transformVertices",value:function(e){var t=this;return this.hasTransform?e.map(function(e){return t.renderer.uModelMatrix.multiplyPoint(e)}):e}},{key:"transformNormals",value:function(e){var t=this;return this.hasTransform?e.map(function(e){return t.renderer.uNMatrix.multiplyVec3(e)}):e}},{key:"addGeometry",value:function(e){for(var t,r=this,o=(this.hasTransform=!this.renderer.uModelMatrix.mat4.every(function(e,t){return e===r.identityMatrix.mat4[t]}),this.hasTransform&&this.renderer.uNMatrix.inverseTranspose(this.renderer.uModelMatrix),this.geometry.vertices.length),n=((t=this.geometry.vertices).push.apply(t,s(this.transformVertices(e.vertices))),(t=this.geometry.vertexNormals).push.apply(t,s(this.transformNormals(e.vertexNormals))),(t=this.geometry.uvs).push.apply(t,s(e.uvs)),this.renderer._doFill&&(t=this.geometry.faces).push.apply(t,s(e.faces.map(function(e){return e.map(function(e){return e+o})}))),this.renderer._doStroke&&(t=this.geometry.edges).push.apply(t,s(e.edges.map(function(e){return e.map(function(e){return e+o})}))),s(e.vertexColors));n.length<4*e.vertices.length;)n.push.apply(n,s(this.renderer.curFillColor));(t=this.geometry.vertexColors).push.apply(t,s(n))}},{key:"addImmediate",value:function(){var e=this.renderer.immediateMode.geometry,t=this.renderer.immediateMode.shapeMode,r=[];if(this.renderer._doFill)if(t===a.TRIANGLE_STRIP||t===a.QUAD_STRIP)for(var o=2;o<e.vertices.length;o++)o%2==0?r.push([o,o-1,o-2]):r.push([o,o-2,o-1]);else if(t===a.TRIANGLE_FAN)for(var n=2;n<e.vertices.length;n++)r.push([0,n-1,n]);else for(var s=0;s<e.vertices.length;s+=3)r.push([s,s+1,s+2]);this.addGeometry(Object.assign({},e,{faces:r}))}},{key:"addRetained",value:function(e){this.addGeometry(e.model)}},{key:"finish",value:function(){return this.renderer._pInst.pop(),this.geometry}}])&&u(e.prototype,r),o&&u(e,o),t}();c.nextGeometryId=0,r.default=c},{"../core/constants":272,"../core/main":283,"core-js/modules/es.array.every":155,"core-js/modules/es.array.from":162,"core-js/modules/es.array.iterator":165,"core-js/modules/es.array.map":168,"core-js/modules/es.object.assign":183,"core-js/modules/es.object.get-own-property-descriptor":186,"core-js/modules/es.object.to-string":190,"core-js/modules/es.regexp.to-string":196,"core-js/modules/es.string.iterator":200,"core-js/modules/es.symbol":212,"core-js/modules/es.symbol.description":210,"core-js/modules/es.symbol.iterator":211,"core-js/modules/es.weak-map":244,"core-js/modules/web.dom-collections.iterator":246}],328:[function(e,t,r){"use strict";function o(e){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}e("core-js/modules/es.symbol"),e("core-js/modules/es.symbol.description"),e("core-js/modules/es.symbol.iterator"),e("core-js/modules/es.array.for-each"),e("core-js/modules/es.array.iterator"),e("core-js/modules/es.array.splice"),e("core-js/modules/es.math.hypot"),e("core-js/modules/es.math.sign"),e("core-js/modules/es.object.get-own-property-descriptor"),e("core-js/modules/es.object.to-string"),e("core-js/modules/es.regexp.to-string"),e("core-js/modules/es.string.iterator"),e("core-js/modules/es.weak-map"),e("core-js/modules/web.dom-collections.for-each"),e("core-js/modules/web.dom-collections.iterator"),e("core-js/modules/es.symbol"),e("core-js/modules/es.symbol.description"),e("core-js/modules/es.symbol.iterator"),e("core-js/modules/es.array.for-each"),e("core-js/modules/es.array.iterator"),e("core-js/modules/es.array.splice"),e("core-js/modules/es.math.hypot"),e("core-js/modules/es.math.sign"),e("core-js/modules/es.object.to-string"),e("core-js/modules/es.regexp.to-string"),e("core-js/modules/es.string.iterator"),e("core-js/modules/web.dom-collections.for-each"),e("core-js/modules/web.dom-collections.iterator"),Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var g=(s=e("../core/main"))&&s.__esModule?s:{default:s},n=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==v(e)&&"function"!=typeof e)return{default:e};var t=i();if(t&&t.has(e))return t.get(e);var r,o={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(r in e){var s;Object.prototype.hasOwnProperty.call(e,r)&&((s=n?Object.getOwnPropertyDescriptor(e,r):null)&&(s.get||s.set)?Object.defineProperty(o,r,s):o[r]=e[r])}o.default=e,t&&t.set(e,o);return o}(e("../core/constants"));function i(){var e;return"function"!=typeof WeakMap?null:(e=new WeakMap,i=function(){return e},e)}function v(e){return(v="function"==typeof Symbol&&"symbol"===o(Symbol.iterator)?function(e){return o(e)}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":o(e)})(e)}g.default.prototype.orbitControl=function(e,t,r,o){var n=this,s=(this._assert3d("orbitControl"),g.default._validateParameters("orbitControl",arguments),this._renderer._curCamera);void 0===e&&(e=1),void 0===t&&(t=e),void 0===r&&(r=1),"object"!==v(o)&&(o={}),!0!==this.contextMenuDisabled&&(this.canvas.oncontextmenu=function(){return!1},this._setProperty("contextMenuDisabled",!0)),!0!==this.wheelDefaultDisabled&&(this.canvas.onwheel=function(){return!1},this._setProperty("wheelDefaultDisabled",!0));var i=o.disableTouchActions;!0===this.touchActionsDisabled||void 0!==i&&!i||(this.canvas.style["touch-action"]="none",this._setProperty("touchActionsDisabled",!0));var a,l,u,i=o.freeRotation,o=void 0!==i&&i,c=[],i=(this.touches.forEach(function(t){n._renderer.prevTouches.forEach(function(e){t.id===e.id&&(e={x:t.x,y:t.y,px:e.x,py:e.y},c.push(e))})}),this._renderer.prevTouches=this.touches,0),d=0,h=0,f=0,p=0,m=this.height<this.width?this.height:this.width,y=!1;return 0<c.length?(y=0<c[0].x&&c[0].x<this.width&&0<c[0].y&&c[0].y<this.height,1===c.length?(d=-e*((a=c[0]).x-a.px)/m,h=t*(a.y-a.py)/m):(a=c[0],l=c[1],i=-(Math.hypot(a.x-l.x,a.y-l.y)-Math.hypot(a.px-l.px,a.py-l.py))*r*4e-4,f=.5*(a.x+l.x)-.5*(a.px+l.px),p=.5*(a.y+l.y)-.5*(a.py+l.py)),0<this.touches.length?y&&(this._renderer.executeRotateAndMove=!0,this._renderer.executeZoom=!0):(this._renderer.executeRotateAndMove=!1,this._renderer.executeZoom=!1)):(y=0<this.mouseX&&this.mouseX<this.width&&0<this.mouseY&&this.mouseY<this.height,0!==this._mouseWheelDeltaY?(i=Math.sign(this._mouseWheelDeltaY)*r,i*=.01,this._mouseWheelDeltaY=0,y&&(this._renderer.executeZoom=!0)):this._renderer.executeZoom=!1,this.mouseIsPressed?(this.mouseButton===this.LEFT?(d=-e*this.movedX/m,h=t*this.movedY/m):this.mouseButton===this.RIGHT&&(f=this.movedX,p=this.movedY*s.yScale),y&&(this._renderer.executeRotateAndMove=!0)):this._renderer.executeRotateAndMove=!1),0!==i&&this._renderer.executeZoom&&(this._renderer.zoomVelocity+=i),.001<Math.abs(this._renderer.zoomVelocity)?(o?s._orbitFree(0,0,this._renderer.zoomVelocity):s._orbit(0,0,this._renderer.zoomVelocity),0!==s.projMatrix.mat4[15]&&(s.projMatrix.mat4[0]*=Math.pow(10,-this._renderer.zoomVelocity),s.projMatrix.mat4[5]*=Math.pow(10,-this._renderer.zoomVelocity),this._renderer.uPMatrix.mat4[0]=s.projMatrix.mat4[0],this._renderer.uPMatrix.mat4[5]=s.projMatrix.mat4[5]),this._renderer.zoomVelocity*=.85):this._renderer.zoomVelocity=0,0===d&&0===h||!this._renderer.executeRotateAndMove||this._renderer.rotateVelocity.add(.6*d,.6*h),1e-6<this._renderer.rotateVelocity.magSq()?(o?s._orbitFree(-this._renderer.rotateVelocity.x,this._renderer.rotateVelocity.y,0):s._orbit(this._renderer.rotateVelocity.x,this._renderer.rotateVelocity.y,0),this._renderer.rotateVelocity.mult(.85)):this._renderer.rotateVelocity.set(0,0),0===f&&0===p||!this._renderer.executeRotateAndMove||(a=2*f/this.width,l=2*-p/this.height,this._renderer.moveVelocity.add(.15*a,.15*l)),1e-6<this._renderer.moveVelocity.magSq()?(r=s._getLocalAxes(),e=s.eyeX-s.centerX,t=s.eyeY-s.centerY,m=s.eyeZ-s.centerZ,y=Math.sqrt(e*e+t*t+m*m),i=new g.default.Vector(s.centerX,s.centerY,s.centerZ),i=s.cameraMatrix.multiplyPoint(i),(i=this._renderer.uPMatrix.multiplyAndNormalizePoint(i)).x-=this._renderer.moveVelocity.x,i.y-=this._renderer.moveVelocity.y,h=0===(d=this._renderer.uPMatrix.mat4)[15]?(u=(d[8]+i.x)/d[0]*y,(d[9]+i.y)/d[5]*y):(u=(i.x-d[12])/d[0],(i.y-d[13])/d[5]),s.setPosition(s.eyeX+u*r.x[0]+h*r.y[0],s.eyeY+u*r.x[1]+h*r.y[1],s.eyeZ+u*r.x[2]+h*r.y[2]),this._renderer.moveVelocity.mult(.85)):this._renderer.moveVelocity.set(0,0),this},g.default.prototype.debugMode=function(){this._assert3d("debugMode");for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];g.default._validateParameters("debugMode",t);for(var o=this._registeredMethods.post.length-1;0<=o;o--)this._registeredMethods.post[o].toString()!==this._grid().toString()&&this._registeredMethods.post[o].toString()!==this._axesIcon().toString()||this._registeredMethods.post.splice(o,1);t[0]===n.GRID?this.registerMethod("post",this._grid(t[1],t[2],t[3],t[4],t[5])):t[0]===n.AXES?this.registerMethod("post",this._axesIcon(t[1],t[2],t[3],t[4])):(this.registerMethod("post",this._grid(t[0],t[1],t[2],t[3],t[4])),this.registerMethod("post",this._axesIcon(t[5],t[6],t[7],t[8])))},g.default.prototype.noDebugMode=function(){this._assert3d("noDebugMode");for(var e=this._registeredMethods.post.length-1;0<=e;e--)this._registeredMethods.post[e].toString()!==this._grid().toString()&&this._registeredMethods.post[e].toString()!==this._axesIcon().toString()||this._registeredMethods.post.splice(e,1)},g.default.prototype._grid=function(e,r,o,n,s){void 0===e&&(e=this.width/2),void 0===r&&(r=Math.round(e/30)<4?4:Math.round(e/30)),void 0===o&&(o=0),void 0===n&&(n=0),void 0===s&&(s=0);var i=e/r,a=e/2;return function(){this.push(),this.stroke(255*this._renderer.curStrokeColor[0],255*this._renderer.curStrokeColor[1],255*this._renderer.curStrokeColor[2]),this._renderer.uModelMatrix.reset();for(var e=0;e<=r;e++)this.beginShape(this.LINES),this.vertex(-a+o,n,e*i-a+s),this.vertex(a+o,n,e*i-a+s),this.endShape();for(var t=0;t<=r;t++)this.beginShape(this.LINES),this.vertex(t*i-a+o,n,-a+s),this.vertex(t*i-a+o,n,a+s),this.endShape();this.pop()}},g.default.prototype._axesIcon=function(e,t,r,o){return void 0===e&&(e=40<this.width/20?this.width/20:40),void 0===t&&(t=-this.width/4),void 0===r&&(r=t),void 0===o&&(o=t),function(){this.push(),this._renderer.uModelMatrix.reset(),this.strokeWeight(2),this.stroke(255,0,0),this.beginShape(this.LINES),this.vertex(t,r,o),this.vertex(t+e,r,o),this.endShape(),this.stroke(0,255,0),this.beginShape(this.LINES),this.vertex(t,r,o),this.vertex(t,r+e,o),this.endShape(),this.stroke(0,0,255),this.beginShape(this.LINES),this.vertex(t,r,o),this.vertex(t,r,o+e),this.endShape(),this.pop()}};var s=g.default;r.default=s},{"../core/constants":272,"../core/main":283,"core-js/modules/es.array.for-each":161,"core-js/modules/es.array.iterator":165,"core-js/modules/es.array.splice":171,"core-js/modules/es.math.hypot":176,"core-js/modules/es.math.sign":178,"core-js/modules/es.object.get-own-property-descriptor":186,"core-js/modules/es.object.to-string":190,"core-js/modules/es.regexp.to-string":196,"core-js/modules/es.string.iterator":200,"core-js/modules/es.symbol":212,"core-js/modules/es.symbol.description":210,"core-js/modules/es.symbol.iterator":211,"core-js/modules/es.weak-map":244,"core-js/modules/web.dom-collections.for-each":245,"core-js/modules/web.dom-collections.iterator":246}],329:[function(e,t,r){"use strict";e("core-js/modules/es.array.filter"),e("core-js/modules/es.array.filter"),Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var m=(e=e("../core/main"))&&e.__esModule?e:{default:e};m.default.prototype.ambientLight=function(e,t,r,o){this._assert3d("ambientLight"),m.default._validateParameters("ambientLight",arguments);var n=this.color.apply(this,arguments);return this._renderer.ambientLightColors.push(n._array[0],n._array[1],n._array[2]),this._renderer._enableLighting=!0,this},m.default.prototype.specularColor=function(e,t,r){this._assert3d("specularColor"),m.default._validateParameters("specularColor",arguments);var o=this.color.apply(this,arguments);return this._renderer.specularColors=[o._array[0],o._array[1],o._array[2]],this},m.default.prototype.directionalLight=function(e,t,r,o,n,s){this._assert3d("directionalLight"),m.default._validateParameters("directionalLight",arguments),e=e instanceof m.default.Color?e:this.color(e,t,r);var i,a,t=arguments[arguments.length-1],r="number"==typeof t?(i=arguments[arguments.length-3],a=arguments[arguments.length-2],arguments[arguments.length-1]):(i=t.x,a=t.y,t.z),t=Math.sqrt(i*i+a*a+r*r);return this._renderer.directionalLightDirections.push(i/t,a/t,r/t),this._renderer.directionalLightDiffuseColors.push(e._array[0],e._array[1],e._array[2]),Array.prototype.push.apply(this._renderer.directionalLightSpecularColors,this._renderer.specularColors),this._renderer._enableLighting=!0,this},m.default.prototype.pointLight=function(e,t,r,o,n,s){this._assert3d("pointLight"),m.default._validateParameters("pointLight",arguments),e=e instanceof m.default.Color?e:this.color(e,t,r);var i,a,t=arguments[arguments.length-1],r="number"==typeof t?(i=arguments[arguments.length-3],a=arguments[arguments.length-2],arguments[arguments.length-1]):(i=t.x,a=t.y,t.z);return this._renderer.pointLightPositions.push(i,a,r),this._renderer.pointLightDiffuseColors.push(e._array[0],e._array[1],e._array[2]),Array.prototype.push.apply(this._renderer.pointLightSpecularColors,this._renderer.specularColors),this._renderer._enableLighting=!0,this},m.default.prototype.imageLight=function(e){this._renderer.activeImageLight=e,this._renderer._enableLighting=!0},m.default.prototype.panorama=function(e){this.filter(this._renderer._getSphereMapping(e))},m.default.prototype.lights=function(){this._assert3d("lights");var e=this.color("rgb(128,128,128)");return this.ambientLight(e),this.directionalLight(e,0,0,-1),this},m.default.prototype.lightFalloff=function(e,t,r){return this._assert3d("lightFalloff"),m.default._validateParameters("lightFalloff",arguments),e<0&&(e=0,console.warn("Value of constant argument in lightFalloff() should be never be negative. Set to 0.")),t<0&&(t=0,console.warn("Value of linear argument in lightFalloff() should be never be negative. Set to 0.")),r<0&&(r=0,console.warn("Value of quadratic argument in lightFalloff() should be never be negative. Set to 0.")),0===e&&0===t&&0===r&&(e=1,console.warn("Either one of the three arguments in lightFalloff() should be greater than zero. Set constant argument to 1.")),this._renderer.constantAttenuation=e,this._renderer.linearAttenuation=t,this._renderer.quadraticAttenuation=r,this},m.default.prototype.spotLight=function(e,t,r,o,n,s,i,a,l,u,c){this._assert3d("spotLight"),m.default._validateParameters("spotLight",arguments);var d,h,f,p=arguments.length;switch(p){case 11:case 10:d=this.color(e,t,r),h=new m.default.Vector(o,n,s),f=new m.default.Vector(i,a,l);break;case 9:e instanceof m.default.Color?(d=e,h=new m.default.Vector(t,r,o),f=new m.default.Vector(n,s,i),u=a,c=l):o instanceof m.default.Vector?(d=this.color(e,t,r),h=o,f=new m.default.Vector(n,s,i),u=a,c=l):i instanceof m.default.Vector?(d=this.color(e,t,r),h=new m.default.Vector(o,n,s),f=i,u=a,c=l):(d=this.color(e,t,r),h=new m.default.Vector(o,n,s),f=new m.default.Vector(i,a,l));break;case 8:u=(f=e instanceof m.default.Color?(d=e,h=new m.default.Vector(t,r,o),new m.default.Vector(n,s,i)):o instanceof m.default.Vector?(d=this.color(e,t,r),h=o,new m.default.Vector(n,s,i)):(d=this.color(e,t,r),h=new m.default.Vector(o,n,s),i),a);break;case 7:e instanceof m.default.Color&&t instanceof m.default.Vector?(d=e,h=t,f=new m.default.Vector(r,o,n),u=s,c=i):e instanceof m.default.Color&&n instanceof m.default.Vector?(d=e,h=new m.default.Vector(t,r,o),f=n,u=s,c=i):o instanceof m.default.Vector&&n instanceof m.default.Vector?(d=this.color(e,t,r),h=o,f=n,u=s,c=i):f=e instanceof m.default.Color?(d=e,h=new m.default.Vector(t,r,o),new m.default.Vector(n,s,i)):o instanceof m.default.Vector?(d=this.color(e,t,r),h=o,new m.default.Vector(n,s,i)):(d=this.color(e,t,r),h=new m.default.Vector(o,n,s),i);break;case 6:o instanceof m.default.Vector&&n instanceof m.default.Vector?(d=this.color(e,t,r),h=o,f=n,u=s):e instanceof m.default.Color&&n instanceof m.default.Vector?(d=e,h=new m.default.Vector(t,r,o),f=n,u=s):e instanceof m.default.Color&&t instanceof m.default.Vector&&(d=e,h=t,f=new m.default.Vector(r,o,n),u=s);break;case 5:e instanceof m.default.Color&&t instanceof m.default.Vector&&r instanceof m.default.Vector?(d=e,h=t,f=r,u=o,c=n):o instanceof m.default.Vector&&n instanceof m.default.Vector?(d=this.color(e,t,r),h=o,f=n):e instanceof m.default.Color&&n instanceof m.default.Vector?(d=e,h=new m.default.Vector(t,r,o),f=n):e instanceof m.default.Color&&t instanceof m.default.Vector&&(d=e,h=t,f=new m.default.Vector(r,o,n));break;case 4:d=e,h=t,f=r,u=o;break;case 3:d=e,h=t,f=r;break;default:return console.warn("Sorry, input for spotlight() is not in prescribed format. Too ".concat(p<3?"few":"many"," arguments were provided")),this}return this._renderer.spotLightDiffuseColors.push(d._array[0],d._array[1],d._array[2]),Array.prototype.push.apply(this._renderer.spotLightSpecularColors,this._renderer.specularColors),this._renderer.spotLightPositions.push(h.x,h.y,h.z),f.normalize(),this._renderer.spotLightDirections.push(f.x,f.y,f.z),void 0===u&&(u=Math.PI/3),void 0!==c&&c<1?(c=1,console.warn("Value of concentration needs to be greater than 1. Setting it to 1")):void 0===c&&(c=100),u=this._renderer._pInst._toRadians(u),this._renderer.spotLightAngle.push(Math.cos(u)),this._renderer.spotLightConc.push(c),this._renderer._enableLighting=!0,this},m.default.prototype.noLights=function(){this._assert3d("noLights");for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return m.default._validateParameters("noLights",t),this._renderer.activeImageLight=null,this._renderer._enableLighting=!1,this._renderer.ambientLightColors.length=0,this._renderer.specularColors=[1,1,1],this._renderer.directionalLightDirections.length=0,this._renderer.directionalLightDiffuseColors.length=0,this._renderer.directionalLightSpecularColors.length=0,this._renderer.pointLightPositions.length=0,this._renderer.pointLightDiffuseColors.length=0,this._renderer.pointLightSpecularColors.length=0,this._renderer.spotLightPositions.length=0,this._renderer.spotLightDirections.length=0,this._renderer.spotLightDiffuseColors.length=0,this._renderer.spotLightSpecularColors.length=0,this._renderer.spotLightAngle.length=0,this._renderer.spotLightConc.length=0,this._renderer.constantAttenuation=1,this._renderer.linearAttenuation=0,this._renderer.quadraticAttenuation=0,this._renderer._useShininess=1,this._renderer._useMetalness=0,this};e=m.default;r.default=e},{"../core/main":283,"core-js/modules/es.array.filter":157}],330:[function(e,t,r){"use strict";function o(e){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}e("core-js/modules/es.symbol"),e("core-js/modules/es.symbol.description"),e("core-js/modules/es.symbol.iterator"),e("core-js/modules/es.array.concat"),e("core-js/modules/es.array.from"),e("core-js/modules/es.array.index-of"),e("core-js/modules/es.array.iterator"),e("core-js/modules/es.array.join"),e("core-js/modules/es.array.slice"),e("core-js/modules/es.array.splice"),e("core-js/modules/es.object.assign"),e("core-js/modules/es.object.to-string"),e("core-js/modules/es.promise"),e("core-js/modules/es.regexp.exec"),e("core-js/modules/es.regexp.to-string"),e("core-js/modules/es.set"),e("core-js/modules/es.string.iterator"),e("core-js/modules/es.string.match"),e("core-js/modules/es.string.split"),e("core-js/modules/es.string.trim"),e("core-js/modules/web.dom-collections.iterator"),e("core-js/modules/es.symbol"),e("core-js/modules/es.symbol.description"),e("core-js/modules/es.symbol.iterator"),e("core-js/modules/es.array.concat"),e("core-js/modules/es.array.index-of"),e("core-js/modules/es.array.iterator"),e("core-js/modules/es.array.join"),e("core-js/modules/es.array.slice"),e("core-js/modules/es.array.splice"),e("core-js/modules/es.object.assign"),e("core-js/modules/es.object.to-string"),e("core-js/modules/es.promise"),e("core-js/modules/es.regexp.exec"),e("core-js/modules/es.set"),e("core-js/modules/es.string.iterator"),e("core-js/modules/es.string.match"),e("core-js/modules/es.string.split"),e("core-js/modules/es.string.trim"),e("core-js/modules/web.dom-collections.iterator"),Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0,e("regenerator-runtime/runtime");var L=(n=e("../core/main"))&&n.__esModule?n:{default:n};function f(e){return function(e){if(Array.isArray(e)){for(var t=0,r=new Array(e.length);t<e.length;t++)r[t]=e[t];return r}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function l(e,t,r,o,n,s,i){try{var a=e[s](i),l=a.value}catch(e){return void r(e)}a.done?t(l):Promise.resolve(l).then(o,n)}function p(a){return function(){var e=this,i=arguments;return new Promise(function(t,r){var o=a.apply(e,i);function n(e){l(o,t,r,n,s,"next",e)}function s(e){l(o,t,r,n,s,"throw",e)}n(void 0)})}}function m(e){return(m="function"==typeof Symbol&&"symbol"===o(Symbol.iterator)?function(e){return o(e)}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":o(e)})(e)}function y(e,t,r){for(var o=2<arguments.length&&void 0!==r?r:{},n={v:[],vt:[],vn:[]},s={},i=null,a=new Set,l=!1,u=!1,c=0;c<t.length;++c){var d=t[c].trim().split(/\b\s+/);if(0<d.length)if("usemtl"===d[0])i=d[1];else if("v"===d[0]||"vn"===d[0]){var h=new L.default.Vector(parseFloat(d[1]),parseFloat(d[2]),parseFloat(d[3]));n[d[0]].push(h)}else if("vt"===d[0]){h=[parseFloat(d[1]),1-parseFloat(d[2])];n[d[0]].push(h)}else if("f"===d[0])for(var f=3;f<d.length;++f){for(var p=[],m=[1,f-1,f],y=0;y<m.length;++y){for(var g,v=d[m[y]],b=v.split("/"),_=0;_<b.length;_++){var j=parseInt(b[_]);0<j&&--j,b[_]=j}s[v]||(s[v]={}),void 0===s[v][i]?(g=e.vertices.length,e.vertices.push(n.v.at(b[0]).copy()),e.uvs.push(n.vt.at(b[1])?n.vt.at(b[1]).slice():[0,0]),e.vertexNormals.push(n.vn.at(b[2])?n.vn.at(b[2]).copy():new L.default.Vector),s[v][i]=g,p.push(g),i&&o[i]&&o[i].diffuseColor&&a.add(n.v.at(b[0]))):p.push(s[v][i])}if(p[0]!==p[1]&&p[0]!==p[2]&&p[1]!==p[2])if(e.faces.push(p),i&&o[i]&&o[i].diffuseColor)for(var l=l=!0,x=o[i].diffuseColor,w=0;w<p.length;w++)e.vertexColors.push(x[0]),e.vertexColors.push(x[1]),e.vertexColors.push(x[2]);else u=!0}}if(0===e.vertexNormals.length&&e.computeNormals(),l===u)throw new Error("Model coloring is inconsistent. Either all vertices should have colors or none should.")}function g(e,t){if(function(e){for(var t=new DataView(e),r=[115,111,108,105,100],o=0;o<5;o++)if(function(e,t,r){for(var o=0,n=e.length;o<n;o++)if(e[o]!==t.getUint8(r+o,!1))return;return 1}(r,t,o))return;return 1}(t)){for(var r,o,n,s,i,a,l,u=e,c=new DataView(t),d=c.getUint32(80,!0),h=!1,f=0;f<70;f++)1129270351===c.getUint32(f,!1)&&82===c.getUint8(f+4)&&61===c.getUint8(f+5)&&(h=!0,s=[],i=c.getUint8(f+6)/255,a=c.getUint8(f+7)/255,l=c.getUint8(f+8)/255);for(var p=0;p<d;p++){for(var m,y=84+50*p,g=c.getFloat32(y,!0),v=c.getFloat32(4+y,!0),b=c.getFloat32(8+y,!0),_=(h&&(m=c.getUint16(48+y,!0),n=0==(32768&m)?(r=(31&m)/31,o=(m>>5&31)/31,(m>>10&31)/31):(r=i,o=a,l)),new L.default.Vector(g,v,b)),j=1;j<=3;j++){var x=y+12*j,x=new L.default.Vector(c.getFloat32(x,!0),c.getFloat32(4+x,!0),c.getFloat32(8+x,!0));u.vertices.push(x),u.vertexNormals.push(_),h&&s.push(r,o,n)}u.faces.push([3*p,3*p+1,3*p+2]),u.uvs.push([0,0],[0,0],[0,0])}}else{t=new DataView(t);if("TextDecoder"in window)for(var w,S,T=e,E=new TextDecoder("utf-8").decode(t).split("\n"),M="",k=[],O=0;O<E.length;++O){for(var C=E[O].trim(),P=C.split(" "),A=0;A<P.length;++A)""===P[A]&&P.splice(A,1);if(0!==P.length)switch(M){case"":if("solid"!==P[0])return void(console.error(C),console.error('Invalid state "'.concat(P[0],'", should be "solid"')));M="solid";break;case"solid":if("facet"!==P[0]||"normal"!==P[1])return void(console.error(C),console.error('Invalid state "'.concat(P[0],'", should be "facet normal"')));w=new L.default.Vector(parseFloat(P[2]),parseFloat(P[3]),parseFloat(P[4])),T.vertexNormals.push(w,w,w),M="facet normal";break;case"facet normal":if("outer"!==P[0]||"loop"!==P[1])return void(console.error(C),console.error('Invalid state "'.concat(P[0],'", should be "outer loop"')));M="vertex";break;case"vertex":if("vertex"===P[0])S=new L.default.Vector(parseFloat(P[1]),parseFloat(P[2]),parseFloat(P[3])),T.vertices.push(S),T.uvs.push([0,0]),k.push(T.vertices.indexOf(S));else{if("endloop"!==P[0])return void(console.error(C),console.error('Invalid state "'.concat(P[0],'", should be "vertex" or "endloop"')));T.faces.push(k),k=[],M="endloop"}break;case"endloop":if("endfacet"!==P[0])return void(console.error(C),console.error('Invalid state "'.concat(P[0],'", should be "endfacet"')));M="endfacet";break;case"endfacet":if("endsolid"!==P[0]){if("facet"!==P[0]||"normal"!==P[1])return void(console.error(C),console.error('Invalid state "'.concat(P[0],'", should be "endsolid" or "facet normal"')));w=new L.default.Vector(parseFloat(P[2]),parseFloat(P[3]),parseFloat(P[4])),T.vertexNormals.push(w,w,w),M="facet normal"}break;default:console.error('Invalid state "'.concat(M,'"'))}}else console.warn("Sorry, ASCII STL loading only works in browsers that support TextDecoder (https://caniuse.com/#feat=textencoder)")}}e("./p5.Geometry"),L.default.prototype.loadModel=function(i,e){L.default._validateParameters("loadModel",arguments);var o,n,s=!1,a=!1,l=!1,t=i.slice(-4),u=(e&&"object"===m(e)?(s=e.normalize||!1,o=e.successCallback,n=e.failureCallback,t=e.fileType||t,a=e.flipU||!1,l=e.flipV||!1):"boolean"==typeof e?(s=e,o=arguments[2],n=arguments[3],void 0!==arguments[4]&&(t=arguments[4])):(o="function"==typeof e?e:void 0,n=arguments[2],void 0!==arguments[3]&&(t=arguments[3])),new L.default.Geometry),c=(u.gid="".concat(i,"|").concat(s),this);function d(){return(d=p(regeneratorRuntime.mark(function e(t){var r,o,n,s;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:for(r=[],o=0;o<t.length;o++)(n=t[o].match(/^mtllib (.+)/))&&!function(){var o="",e=n[1],t=i.split("/");o=1<t.length?(t.pop(),t.join("/")+"/"+e):e,r.push(function(){return h.apply(this,arguments)}(o).then(function(e){return e?(t=c,r=o,new Promise(function(n,e){var s=null,i={};t.loadStrings(r,function(e){for(var t=0;t<e.length;++t){var r,o=e[t].trim().split(/\s+/);"newmtl"===o[0]?(r=o[1],i[s=r]={}):"Kd"===o[0]?i[s].diffuseColor=[parseFloat(o[1]),parseFloat(o[2]),parseFloat(o[3])]:"Ka"===o[0]?i[s].ambientColor=[parseFloat(o[1]),parseFloat(o[2]),parseFloat(o[3])]:"Ks"===o[0]?i[s].specularColor=[parseFloat(o[1]),parseFloat(o[2]),parseFloat(o[3])]:"map_Kd"===o[0]&&(i[s].texturePath=o[1])}n(i)},e)})):(console.warn("MTL file not found or error in parsing; proceeding without materials: ".concat(o)),{});var t,r}).catch(function(e){return console.warn("Error loading MTL file: ".concat(o),e),{}}))}();return e.prev=2,e.next=5,Promise.all(r);case 5:return s=e.sent,s=Object.assign.apply(Object,[{}].concat(f(s))),e.abrupt("return",s);case 10:return e.prev=10,e.t0=e.catch(2),e.abrupt("return",{});case 13:case"end":return e.stop()}},e,null,[[2,10]])}))).apply(this,arguments)}function h(){return(h=p(regeneratorRuntime.mark(function e(t){var r;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,fetch(t,{method:"HEAD"});case 3:return r=e.sent,e.abrupt("return",r.ok);case 7:return e.prev=7,e.t0=e.catch(0),e.abrupt("return",!1);case 10:case"end":return e.stop()}},e,null,[[0,7]])}))).apply(this,arguments)}return t.match(/\.stl$/i)?this.httpDo(i,"GET","arrayBuffer",function(e){g(u,e),s&&u.normalize(),a&&u.flipU(),l&&u.flipV(),c._decrementPreload(),"function"==typeof o&&o(u)},n):t.match(/\.obj$/i)?this.loadStrings(i,function(){var t=p(regeneratorRuntime.mark(function e(t){var r;return regeneratorRuntime.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:return e.prev=0,e.next=3,function(){return d.apply(this,arguments)}(t);case 3:r=e.sent,y(u,t,r),e.next=11;break;case 7:return e.prev=7,e.t0=e.catch(0),n?n(e.t0):L.default._friendlyError("Error during parsing: "+e.t0.message),e.abrupt("return");case 11:return e.prev=11,s&&u.normalize(),a&&u.flipU(),l&&u.flipV(),u._makeTriangleEdges(),c._decrementPreload(),"function"==typeof o&&o(u),e.finish(11);case 19:case"end":return e.stop()}},e,null,[[0,7,11,19]])}));return function(e){return t.apply(this,arguments)}}(),n):(L.default._friendlyFileLoadError(3,i),n?n():L.default._friendlyError("Sorry, the file type is invalid. Only OBJ and STL files are supported.")),u},L.default.prototype.model=function(e){this._assert3d("model"),L.default._validateParameters("model",arguments),0<e.vertices.length&&(this._renderer.geometryInHash(e.gid)||(e._edgesToVertices(),this._renderer.createBuffers(e.gid,e)),this._renderer.drawBuffers(e.gid))};var u=0,n=(L.default.prototype.createModel=function(e){var t,r,o=1<arguments.length&&void 0!==arguments[1]?arguments[1]:" ",n=2<arguments.length?arguments[2]:void 0,s=(L.default._validateParameters("createModel",arguments),!1),i=!1,a=!1,n=(n&&"object"===m(n)?(s=n.normalize||!1,t=n.successCallback,r=n.failureCallback,i=n.flipU||!1,a=n.flipV||!1):r="boolean"==typeof n?(s=n,t=arguments[3],arguments[4]):(t="function"==typeof arguments[2]?arguments[2]:void 0,arguments[3]),new L.default.Geometry);if(n.gid="".concat(o,"|").concat(s,"|").concat(u++),o.match(/\.stl$/i))try{g(n,(new TextEncoder).encode(e).buffer)}catch(e){return void(r?r(e):L.default._friendlyError("Error during parsing: "+e.message))}else if(o.match(/\.obj$/i))try{y(n,e.split("\n"))}catch(e){return void(r?r(e):L.default._friendlyError("Error during parsing: "+e.message))}else L.default._friendlyFileLoadError(3,e),r?r():L.default._friendlyError("Sorry, the file type is invalid. Only OBJ and STL files are supported.");return s&&n.normalize(),i&&n.flipU(),a&&n.flipV(),n._makeTriangleEdges(),"function"==typeof t&&t(n),n},L.default);r.default=n},{"../core/main":283,"./p5.Geometry":335,"core-js/modules/es.array.concat":153,"core-js/modules/es.array.from":162,"core-js/modules/es.array.index-of":164,"core-js/modules/es.array.iterator":165,"core-js/modules/es.array.join":166,"core-js/modules/es.array.slice":169,"core-js/modules/es.array.splice":171,"core-js/modules/es.object.assign":183,"core-js/modules/es.object.to-string":190,"core-js/modules/es.promise":191,"core-js/modules/es.regexp.exec":195,"core-js/modules/es.regexp.to-string":196,"core-js/modules/es.set":197,"core-js/modules/es.string.iterator":200,"core-js/modules/es.string.match":201,"core-js/modules/es.string.split":206,"core-js/modules/es.string.trim":209,"core-js/modules/es.symbol":212,"core-js/modules/es.symbol.description":210,"core-js/modules/es.symbol.iterator":211,"core-js/modules/web.dom-collections.iterator":246,"regenerator-runtime/runtime":260}],331:[function(e,t,r){"use strict";function o(e){return(o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function i(e){return(i="function"==typeof Symbol&&"symbol"===o(Symbol.iterator)?function(e){return o(e)}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":o(e)})(e)}e("core-js/modules/es.symbol"),e("core-js/modules/es.symbol.description"),e("core-js/modules/es.symbol.iterator"),e("core-js/modules/es.array.includes"),e("core-js/modules/es.array.iterator"),e("core-js/modules/es.array.join"),e("core-js/modules/es.object.get-own-property-descriptor"),e("core-js/modules/es.object.to-string"),e("core-js/modules/es.string.includes"),e("core-js/modules/es.string.iterator"),e("core-js/modules/es.weak-map"),e("core-js/modules/web.dom-collections.iterator"),e("core-js/modules/es.symbol"),e("core-js/modules/es.symbol.description"),e("core-js/modules/es.symbol.iterator"),e("core-js/modules/es.array.includes"),e("core-js/modules/es.array.iterator"),e("core-js/modules/es.array.join"),e("core-js/modules/es.object.to-string"),e("core-js/modules/es.string.includes"),e("core-js/modules/es.string.iterator"),e("core-js/modules/web.dom-collections.iterator"),Object.defineProperty(r,"__esModule",{value:!0}),r.default=void 0;var u=(s=e("../core/main"))&&s.__esModule?s:{default:s},n=function(e){if(e&&e.__esModule)return e;if(null===e||"object"!==i(e)&&"function"!=typeof e)return{default:e};var t=a();if(t&&t.has(e))return t.get(e);var r,o={},n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(r in e){var s;Object.prototype.hasOwnProperty.call(e,r)&&((s=n?Object.getOwnPropertyDescriptor(e,r):null)&&(s.get||s.set)?Object.defineProperty(o,r,s):o[r]=e[r])}o.default=e,t&&t.set(e,o);return o}(e("../core/constants"));function a(){var e;return"function"!=typeof WeakMap?null:(e=new WeakMap,a=function(){return e},e)}e("./p5.Texture"),u.default.prototype.loadShader=function(e,t,r,o){u.default._validateParameters("loadShader",arguments),o=o||console.error;function n(){i._decrementPreload(),r&&r(s)}var s=new u.default.Shader,i=this,a=!1,l=!1;return this.loadStrings(e,function(e){s._vertSrc=e.join("\n"),l=!0,a&&n()},o),this.loadStrings(t,function(e){s._fragSrc=e.join("\n"),a=!0,l&&n()},o),s},u.default.prototype.createShader=function(e,t,r){return u.default._validateParameters("createShader",arguments),new u.default.Shader(this._renderer,e,t,r)},u.default.prototype.createFilterShader=function(e){u.default._validateParameters("createFilterShader",arguments);var t=e.includes("#version 300 es")?"#version 300 es\n uniform mat4 uModelViewMatrix;\n uniform mat4 uProjectionMatrix;\n\n in vec3 aPosition;\n in vec2 aTexCoord;\n out vec2 vTexCoord;\n\n void main() {\n // transferring texcoords for the frag shader\n vTexCoord = aTexCoord;\n\n // copy position with a fourth coordinate for projection (1.0 is normal)\n vec4 positionVec4 = vec4(aPosition, 1.0);\n\n // project to 3D space\n gl_Position = uProjectionMatrix * uModelViewMatrix * positionVec4;\n }\n ":"\n uniform mat4 uModelViewMatrix;\n uniform mat4 uProjectionMatrix;\n\n attribute vec3 aPosition;\n // texcoords only come from p5 to vertex shader\n // so pass texcoords on to the fragment shader in a varying variable\n attribute vec2 aTexCoord;\n varying vec2 vTexCoord;\n\n void main() {\n // transferring texcoords for the frag shader\n vTexCoord = aTexCoord;\n\n // copy position with a fourth coordinate for projection (1.0 is normal)\n vec4 positionVec4 = vec4(aPosition, 1.0);\n\n // project to 3D space\n gl_Position = uProjectionMatrix * uModelViewMatrix * positionVec4;\n }\n ",t=new u.default.Shader(this._renderer,t,e);return this._renderer.GL?t.ensureCompiledOnContext(this):t.ensureCompiledOnContext(this._renderer.getFilterGraphicsLayer()),t},u.default.prototype.shader=function(e){return this._assert3d("shader"),u.default._validateParameters("shader",arguments),e.ensureCompiledOnContext(this),e.isStrokeShader()?this._renderer.userStrokeShader=e:(this._renderer.userFillShader=e,this._renderer._useNormalMaterial=!1),e.setDefaultUniforms(),this},u.default.prototype.baseMaterialShader=function(){return this._assert3d("baseMaterialShader"),this._renderer.baseMaterialShader()},u.default.prototype.baseNormalShader=function(){return this._assert3d("baseNormalShader"),this._renderer.baseNormalShader()},u.default.prototype.baseColorShader=function(){return this._assert3d("baseColorShader"),this._renderer.baseColorShader()},u.default.prototype.baseStrokeShader=function(){return this._assert3d("baseStrokeShader"),this._renderer.baseStrokeShader()},u.default.prototype.resetShader=function(){return this._renderer.userFillShader=this._renderer.userStrokeShader=null,this},u.default.prototype.texture=function(e){return this._assert3d("texture"),u.default._validateParameters("texture",arguments),e.gifProperties&&e._animateGif(this),this._renderer.drawMode=n.TEXTURE,this._renderer._useNormalMaterial=!1,this._renderer._tex=e,this._renderer._setProperty("_doFill",!0),this},u.default.prototype.textureMode=function(e){e!==n.IMAGE&&e!==n.NORMAL?console.warn("You tried to set ".concat(e," textureMode only supports IMAGE & NORMAL ")):this._renderer.textureMode=e},u.default.prototype.textureWrap=function(e){var t=1<arguments.length&&void 0!==arguments[1]?arguments[1]:e,r=(this._renderer.textureWrapX=e,this._renderer.textureWrapY=t,!0),o=!1,n=void 0;try{for(var s,i=this._renderer.textures.values()[Symbol.iterator]();!(r=(s=i.next()).done);r=!0)s.value.setWrapMode(e,t)}catch(e){o=!0,n=e}finally{try{r||null==i.return||i.return()}finally{if(o)throw n}}},u.default.prototype.normalMaterial=function(){this._assert3d("normalMaterial");for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return u.default._validateParameters("normalMaterial",t),this._renderer.drawMode=n.FILL,this._renderer._useSpecularMaterial=!1,this._renderer._useEmissiveMaterial=!1,this._renderer._useNormalMaterial=!0,this._renderer.curFillColor=[1,1,1,1],this._renderer._setProperty("_doFill",!0),this.noStroke(),this},u.default.prototype.ambientMaterial=function(e,t,r){this._assert3d("ambientMaterial"),u.default._validateParameters("ambientMaterial",arguments);var o=u.default.prototype.color.apply(this,arguments);return this._renderer._hasSetAmbient=!0,this._renderer.curAmbientColor=o._array,this._renderer._useNormalMaterial=!1,this._renderer._enableLighting=!0,this._renderer._setProperty("_doFill",!0),this},u.default.prototype.emissiveMaterial=function(e,t,r,o){this._assert3d("emissiveMaterial"),u.default._validateParameters("emissiveMaterial",arguments);var n=u.default.prototype.color.apply(this,arguments);return this._renderer.curEmissiveColor=n._array,this._renderer._useEmissiveMaterial=!0,this._renderer._useNormalMaterial=!1,this._renderer._enableLighting=!0,this},u.default.prototype.specularMaterial=function(e,t,r,o){this._assert3d("specularMaterial"),u.default._validateParameters("specularMaterial",arguments);var n=u.default.prototype.color.apply(this,arguments);return this._renderer.curSpecularColor=n._array,this._renderer._useSpecularMaterial=!0,this._renderer._useNormalMaterial=!1,this._renderer._enableLighting=!0,this},u.default.prototype.shininess=function(e){return this._assert3d("shininess"),u.default._validateParameters("shininess",arguments),this._renderer._useShininess=e=e<1?1:e,this},u.default.prototype.metalness=function(e){this._assert3d("metalness");e=1-Math.exp(-e/100);return this._renderer._useMetalness=e,this},u.default.RendererGL.prototype._applyColorBlend=function(e,t){var r=this.GL,o=this.drawMode===n.TEXTURE,t=t||this.userFillShader||this.userStrokeShader||this.userPointShader||o||this.curBlendMode!==n.BLEND||e[e.length-1]<1||this._isErasing;return t!==this._isBlending&&(t||this.curBlendMode!==n.BLEND&&this.curBlendMode!==n.ADD?r.enable(r.BLEND):r.disable(r.BLEND),r.depthMask(!0),this._isBlending=t),this._applyBlendMode(),e},u.default.RendererGL.prototype._applyBlendMode=function(){if(this._cachedBlendMode!==this.curBlendMode){var e=this.GL;switch(this.curBlendMode){case n.BLEND:e.blendEquation(e.FUNC_ADD),e.blendFunc(e.ONE,e.ONE_MINUS_SRC_ALP