From f98838b2ed921eceb5a83bf41f78d8d8d17e75e5 Mon Sep 17 00:00:00 2001 From: Dave Pagurek Date: Sat, 25 Jan 2025 14:04:49 -0500 Subject: [PATCH] Fix FES errors, parameter data omitting classes --- docs/parameterData.json | 5338 ++++++++----------- src/color/creating_reading.js | 55 + src/core/friendly_errors/param_validator.js | 65 +- src/shape/custom_shapes.js | 1 + test/unit/core/param_errors.js | 2 +- utils/convert.js | 37 +- 6 files changed, 2301 insertions(+), 3197 deletions(-) diff --git a/docs/parameterData.json b/docs/parameterData.json index 7757a85a7f..dfa2e306ff 100644 --- a/docs/parameterData.json +++ b/docs/parameterData.json @@ -39,27 +39,6 @@ ] ] }, - "alpha": { - "overloads": [ - [ - "p5.Color|Number[]|String" - ] - ] - }, - "blue": { - "overloads": [ - [ - "p5.Color|Number[]|String" - ] - ] - }, - "brightness": { - "overloads": [ - [ - "p5.Color|Number[]|String" - ] - ] - }, "color": { "overloads": [ [ @@ -83,37 +62,35 @@ ] ] }, - "green": { + "red": { "overloads": [ [ "p5.Color|Number[]|String" ] ] }, - "hue": { + "green": { "overloads": [ [ "p5.Color|Number[]|String" ] ] }, - "lerpColor": { + "blue": { "overloads": [ [ - "p5.Color", - "p5.Color", - "Number" + "p5.Color|Number[]|String" ] ] }, - "lightness": { + "alpha": { "overloads": [ [ "p5.Color|Number[]|String" ] ] }, - "red": { + "hue": { "overloads": [ [ "p5.Color|Number[]|String" @@ -127,6 +104,37 @@ ] ] }, + "brightness": { + "overloads": [ + [ + "p5.Color|Number[]|String" + ] + ] + }, + "lightness": { + "overloads": [ + [ + "p5.Color|Number[]|String" + ] + ] + }, + "lerpColor": { + "overloads": [ + [ + "p5.Color", + "p5.Color", + "Number" + ] + ] + }, + "paletteLerp": { + "overloads": [ + [ + null, + "Number" + ] + ] + }, "beginClip": { "overloads": [ [ @@ -270,6 +278,13 @@ [] ] }, + "blendMode": { + "overloads": [ + [ + "BLEND|DARKEST|LIGHTEST|DIFFERENCE|MULTIPLY|EXCLUSION|SCREEN|REPLACE|OVERLAY|HARD_LIGHT|SOFT_LIGHT|DODGE|BURN|ADD|REMOVE|SUBTRACT" + ] + ] + }, "print": { "overloads": [ [ @@ -349,6 +364,18 @@ [] ] }, + "worldToScreen": { + "overloads": [ + [ + "p5.Vector" + ] + ] + }, + "sketchVerifier": { + "overloads": [ + [] + ] + }, "setup": { "overloads": [ [] @@ -374,7 +401,7 @@ [ "Number?", "Number?", - "String?", + "P2D|WEBGL?", "HTMLCanvasElement?" ], [ @@ -403,7 +430,7 @@ [ "Number", "Number", - "String?", + "P2D|WEBGL?", "HTMLCanvasElement?" ], [ @@ -427,60 +454,32 @@ ] ] }, - "blendMode": { + "noLoop": { "overloads": [ - [ - "BLEND|DARKEST|LIGHTEST|DIFFERENCE|MULTIPLY|EXCLUSION|SCREEN|REPLACE|OVERLAY|HARD_LIGHT|SOFT_LIGHT|DODGE|BURN|ADD|REMOVE|SUBTRACT" - ] + [] ] }, - "arc": { + "loop": { "overloads": [ - [ - "Number", - "Number", - "Number", - "Number", - "Number", - "Number", - "CHORD|PIE|OPEN?", - "Integer?" - ] + [] ] }, - "ellipse": { + "isLooping": { "overloads": [ - [ - "Number", - "Number", - "Number", - "Number?" - ], - [ - "Number", - "Number", - "Number", - "Number", - "Integer?" - ] + [] ] }, - "circle": { + "redraw": { "overloads": [ [ - "Number", - "Number", - "Number" + "Integer?" ] ] }, - "line": { + "applyMatrix": { "overloads": [ [ - "Number", - "Number", - "Number", - "Number" + "Array" ], [ "Number", @@ -489,36 +488,11 @@ "Number", "Number", "Number" - ] - ] - }, - "point": { - "overloads": [ - [ - "Number", - "Number", - "Number?" ], [ - "p5.Vector" - ] - ] - }, - "quad": { - "overloads": [ - [ - "Number", - "Number", - "Number", - "Number", - "Number", "Number", "Number", "Number", - "Integer?", - "Integer?" - ], - [ "Number", "Number", "Number", @@ -531,1430 +505,1427 @@ "Number", "Number", "Number", - "Integer?", - "Integer?" + "Number" ] ] }, - "rect": { + "resetMatrix": { "overloads": [ - [ - "Number", - "Number", - "Number", - "Number?", - "Number?", - "Number?", - "Number?", - "Number?" - ], - [ - "Number", - "Number", - "Number", - "Number", - "Integer?", - "Integer?" - ] + [] ] }, - "square": { + "rotate": { "overloads": [ [ "Number", - "Number", - "Number", - "Number?", - "Number?", - "Number?", - "Number?" + "p5.Vector|Number[]?" ] ] }, - "triangle": { + "rotateX": { "overloads": [ [ - "Number", - "Number", - "Number", - "Number", - "Number", "Number" ] ] }, - "ellipseMode": { + "rotateY": { "overloads": [ [ - "CENTER|RADIUS|CORNER|CORNERS" + "Number" ] ] }, - "noSmooth": { - "overloads": [ - [] - ] - }, - "rectMode": { + "rotateZ": { "overloads": [ [ - "CENTER|RADIUS|CORNER|CORNERS" + "Number" ] ] }, - "smooth": { - "overloads": [ - [] - ] - }, - "strokeCap": { + "scale": { "overloads": [ [ - "ROUND|SQUARE|PROJECT" + "Number|p5.Vector|Number[]", + "Number?", + "Number?" + ], + [ + "p5.Vector|Number[]" ] ] }, - "strokeJoin": { + "shearX": { "overloads": [ [ - "MITER|BEVEL|ROUND" + "Number" ] ] }, - "strokeWeight": { + "shearY": { "overloads": [ [ "Number" ] ] }, - "bezier": { + "translate": { "overloads": [ [ "Number", "Number", - "Number", - "Number", - "Number", - "Number", - "Number", - "Number" + "Number?" ], [ - "Number", - "Number", - "Number", - "Number", - "Number", - "Number", - "Number", - "Number", - "Number", - "Number", - "Number", - "Number" + "p5.Vector" ] ] }, - "bezierDetail": { + "push": { "overloads": [ - [ - "Number" - ] + [] ] }, - "bezierPoint": { + "pop": { + "overloads": [ + [] + ] + }, + "storeItem": { "overloads": [ [ - "Number", - "Number", - "Number", - "Number", - "Number" + "String", + "String|Number|Boolean|Object|Array" ] ] }, - "bezierTangent": { + "getItem": { "overloads": [ [ - "Number", - "Number", - "Number", - "Number", - "Number" + "String" ] ] }, - "curve": { + "clearStorage": { + "overloads": [ + [] + ] + }, + "removeItem": { "overloads": [ [ - "Number", - "Number", - "Number", - "Number", - "Number", - "Number", - "Number", - "Number" + "String" + ] + ] + }, + "createStringDict": { + "overloads": [ + [ + "String", + "String" ], [ - "Number", - "Number", - "Number", - "Number", - "Number", - "Number", - "Number", - "Number", - "Number", - "Number", - "Number", - "Number" + "Object" ] ] }, - "curveDetail": { + "createNumberDict": { "overloads": [ [ + "Number", "Number" + ], + [ + "Object" ] ] }, - "curveTightness": { + "select": { "overloads": [ [ - "Number" + "String", + "String|p5.Element|HTMLElement?" ] ] }, - "curvePoint": { + "selectAll": { "overloads": [ [ - "Number", - "Number", - "Number", - "Number", - "Number" + "String", + "String|p5.Element|HTMLElement?" ] ] }, - "curveTangent": { + "createElement": { "overloads": [ [ - "Number", - "Number", - "Number", - "Number", - "Number" + "String", + "String?" ] ] }, - "beginContour": { + "removeElements": { "overloads": [ [] ] }, - "beginShape": { + "addElement": { + "overloads": [ + [] + ] + }, + "createDiv": { "overloads": [ [ - "POINTS|LINES|TRIANGLES|TRIANGLE_FAN|TRIANGLE_STRIP|QUADS|QUAD_STRIP|TESS?" + "String?" ] ] }, - "bezierVertex": { + "createP": { "overloads": [ [ - "Number", - "Number", - "Number", - "Number", - "Number", - "Number" - ], + "String?" + ] + ] + }, + "createSpan": { + "overloads": [ [ - "Number", - "Number", - "Number", - "Number", - "Number", - "Number", - "Number", - "Number", - "Number" + "String?" ] ] }, - "curveVertex": { + "createImg": { "overloads": [ [ - "Number", - "Number" + "String", + "String" ], + [ + "String", + "String", + "String?", + "Function?" + ] + ] + }, + "createA": { + "overloads": [ + [ + "String", + "String", + "String?" + ] + ] + }, + "createSlider": { + "overloads": [ [ "Number", "Number", + "Number?", "Number?" ] ] }, - "endContour": { + "createButton": { "overloads": [ - [] + [ + "String", + "String?" + ] ] }, - "endShape": { + "createCheckbox": { "overloads": [ [ - "CLOSE?", - "Integer?" + "String?", + "Boolean?" ] ] }, - "quadraticVertex": { + "createSelect": { "overloads": [ [ - "Number", - "Number", - "Number", - "Number" + "Boolean?" ], [ - "Number", - "Number", - "Number", - "Number", - "Number", - "Number" + "Object" ] ] }, - "vertex": { + "createRadio": { "overloads": [ [ - "Number", - "Number" + "Object?" ], [ - "Number", - "Number", - "Number?" + "String?" ], + [] + ] + }, + "createColorPicker": { + "overloads": [ [ - "Number", - "Number", - "Number?", - "Number?", - "Number?" + "String|p5.Color?" ] ] }, - "normal": { + "createInput": { "overloads": [ [ - "p5.Vector" + "String?", + "String?" ], [ - "Number", - "Number", + "String?" + ] + ] + }, + "createFileInput": { + "overloads": [ + [ + "Function", + "Boolean?" + ] + ] + }, + "setMoveThreshold": { + "overloads": [ + [ "Number" ] ] }, - "noLoop": { + "setShakeThreshold": { "overloads": [ - [] + [ + "Number" + ] ] }, - "loop": { + "deviceMoved": { "overloads": [ [] ] }, - "isLooping": { + "deviceTurned": { "overloads": [ [] ] }, - "push": { + "deviceShaken": { "overloads": [ [] ] }, - "pop": { + "keyPressed": { "overloads": [ - [] + [ + "KeyboardEvent?" + ] ] }, - "redraw": { + "keyReleased": { "overloads": [ [ - "Integer?" + "KeyboardEvent?" ] ] }, - "applyMatrix": { + "keyTyped": { "overloads": [ [ - "Array" - ], + "KeyboardEvent?" + ] + ] + }, + "keyIsDown": { + "overloads": [ [ - "Number", - "Number", - "Number", - "Number", - "Number", - "Number" - ], - [ - "Number", - "Number", - "Number", - "Number", - "Number", - "Number", - "Number", - "Number", - "Number", - "Number", - "Number", - "Number", - "Number", - "Number", - "Number", "Number" ] ] }, - "resetMatrix": { + "mouseMoved": { "overloads": [ - [] + [ + "MouseEvent?" + ] ] }, - "rotate": { + "mouseDragged": { "overloads": [ [ - "Number", - "p5.Vector|Number[]?" + "MouseEvent?" ] ] }, - "rotateX": { + "mousePressed": { "overloads": [ [ - "Number" + "MouseEvent?" ] ] }, - "rotateY": { + "mouseReleased": { "overloads": [ [ - "Number" + "MouseEvent?" ] ] }, - "rotateZ": { + "mouseClicked": { "overloads": [ [ - "Number" + "MouseEvent?" ] ] }, - "scale": { + "doubleClicked": { "overloads": [ [ - "Number|p5.Vector|Number[]", - "Number?", - "Number?" - ], - [ - "p5.Vector|Number[]" + "MouseEvent?" ] ] }, - "shearX": { + "mouseWheel": { "overloads": [ [ - "Number" + "WheelEvent?" ] ] }, - "shearY": { + "requestPointerLock": { + "overloads": [ + [] + ] + }, + "exitPointerLock": { + "overloads": [ + [] + ] + }, + "createImage": { "overloads": [ [ - "Number" + "Integer", + "Integer" ] ] }, - "translate": { + "saveCanvas": { "overloads": [ [ - "Number", - "Number", - "Number?" + "p5.Framebuffer|p5.Element|HTMLCanvasElement", + "String?", + "String?" ], [ - "p5.Vector" + "String?", + "String?" ] ] }, - "storeItem": { + "saveFrames": { "overloads": [ [ "String", - "String|Number|Boolean|Object|Array" + "String", + "Number", + "Number", + "function(Array)?" ] ] }, - "getItem": { + "loadImage": { "overloads": [ [ - "String" + "String|Request", + "function(p5.Image)?", + "function(Event)?" ] ] }, - "clearStorage": { - "overloads": [ - [] - ] - }, - "removeItem": { + "saveGif": { "overloads": [ [ - "String" + "String", + "Number", + "Object?" ] ] }, - "createStringDict": { + "image": { "overloads": [ [ - "String", - "String" + "p5.Image|p5.Element|p5.Texture|p5.Framebuffer|p5.FramebufferTexture", + "Number", + "Number", + "Number?", + "Number?" ], [ - "Object" + "p5.Image|p5.Element|p5.Texture|p5.Framebuffer|p5.FramebufferTexture", + "Number", + "Number", + "Number", + "Number", + "Number", + "Number", + "Number?", + "Number?", + "CONTAIN|COVER?", + "LEFT|RIGHT|CENTER?", + "TOP|BOTTOM|CENTER?" ] ] }, - "createNumberDict": { + "tint": { "overloads": [ [ "Number", - "Number" + "Number", + "Number", + "Number?" ], [ - "Object" + "String" + ], + [ + "Number", + "Number?" + ], + [ + "Number[]" + ], + [ + "p5.Color" ] ] }, - "select": { + "noTint": { + "overloads": [ + [] + ] + }, + "imageMode": { "overloads": [ [ - "String", - "String|p5.Element|HTMLElement?" + "CORNER|CORNERS|CENTER" ] ] }, - "selectAll": { + "blend": { "overloads": [ [ - "String", - "String|p5.Element|HTMLElement?" + "p5.Image", + "Integer", + "Integer", + "Integer", + "Integer", + "Integer", + "Integer", + "Integer", + "Integer", + "BLEND|DARKEST|LIGHTEST|DIFFERENCE|MULTIPLY|EXCLUSION|SCREEN|REPLACE|OVERLAY|HARD_LIGHT|SOFT_LIGHT|DODGE|BURN|ADD|NORMAL" + ], + [ + "Integer", + "Integer", + "Integer", + "Integer", + "Integer", + "Integer", + "Integer", + "Integer", + "BLEND|DARKEST|LIGHTEST|DIFFERENCE|MULTIPLY|EXCLUSION|SCREEN|REPLACE|OVERLAY|HARD_LIGHT|SOFT_LIGHT|DODGE|BURN|ADD|NORMAL" ] ] }, - "removeElements": { + "copy": { "overloads": [ - [] + [ + "p5.Image|p5.Element", + "Integer", + "Integer", + "Integer", + "Integer", + "Integer", + "Integer", + "Integer", + "Integer" + ], + [ + "Integer", + "Integer", + "Integer", + "Integer", + "Integer", + "Integer", + "Integer", + "Integer" + ] ] }, - "changed": { + "filter": { "overloads": [ [ - "Function|Boolean" + "THRESHOLD|GRAY|OPAQUE|INVERT|POSTERIZE|BLUR|ERODE|DILATE|BLUR", + "Number?", + "Boolean?" + ], + [ + "p5.Shader" ] ] }, - "input": { + "get": { "overloads": [ [ - "Function|Boolean" + "Number", + "Number", + "Number", + "Number" + ], + [], + [ + "Number", + "Number" + ], + [ + "String|Integer" ] ] }, - "addElement": { + "loadPixels": { "overloads": [ [] ] }, - "createDiv": { + "set": { "overloads": [ [ - "String?" + "Number", + "Number", + "Number|Number[]|Object" + ], + [ + "String|Integer", + "String|Number" ] ] }, - "createP": { + "updatePixels": { "overloads": [ [ - "String?" - ] + "Number?", + "Number?", + "Number?", + "Number?" + ], + [] ] }, - "createSpan": { + "loadJSON": { "overloads": [ [ - "String?" + "String|Request", + "Function?", + "Function?" ] ] }, - "createImg": { + "loadStrings": { "overloads": [ [ - "String", - "String" - ], - [ - "String", - "String", - "String?", + "String|Request", + "Function?", "Function?" ] ] }, - "createA": { + "loadTable": { "overloads": [ [ - "String", - "String", - "String?" + "String|Request", + "String?", + "String?", + "Function?", + "Function?" ] ] }, - "createSlider": { - "overloads": [ - [], - [], - [], - [], - [], - [], - [], - [], - [], - [], - [], - [], - [], - [] - ] - }, - "createButton": { + "loadXML": { "overloads": [ [ - "String", - "String?" + "String|Request", + "Function?", + "Function?" ] ] }, - "createCheckbox": { + "loadBytes": { "overloads": [ [ - "String?", - "Boolean?" + "String|Request", + "Function?", + "Function?" ] ] }, - "createSelect": { + "httpGet": { "overloads": [ [ - "Boolean?" + "String|Request", + "String?", + "Function?", + "Function?" ], [ - "Object" + "String|Request", + "Function", + "Function?" ] ] }, - "createRadio": { + "httpPost": { "overloads": [ [ - "Object?" + "String|Request", + "Object|Boolean?", + "String?", + "Function?", + "Function?" ], [ - "String?" + "String|Request", + "Object|Boolean", + "Function?", + "Function?" ], - [] - ] - }, - "createColorPicker": { - "overloads": [ [ - "String|p5.Color?" + "String|Request", + "Function?", + "Function?" ] ] }, - "createInput": { + "httpDo": { "overloads": [ [ + "String|Request", "String?", - "String?" + "String?", + "Object?", + "Function?", + "Function?" ], [ - "String?" + "String|Request", + "Function?", + "Function?" ] ] }, - "createFileInput": { + "createWriter": { "overloads": [ [ - "Function", - "Boolean?" + "String", + "String?" ] ] }, - "createMedia": { - "overloads": [ - [] - ] - }, - "createVideo": { + "write": { "overloads": [ [ - "String|String[]", - "Function?" + "String|Number|Array" ] ] }, - "createAudio": { + "close": { "overloads": [ - [], - [], - [], - [], - [], - [], - [], - [], - [], - [], - [], - [], - [], [] ] }, - "createCapture": { + "save": { "overloads": [ [ - "AUDIO|VIDEO|Object?", - "Object?", - "Function?" + "Object|String?", + "String?", + "Boolean|String?" ] ] }, - "createElement": { + "saveJSON": { "overloads": [ [ + "Array|Object", "String", - "String?" - ] - ] - }, - "removeClass": { - "overloads": [ - [ - "String" + "Boolean?" ] ] }, - "hasClass": { + "saveStrings": { "overloads": [ [ - null + "String[]", + "String", + "String?", + "Boolean?" ] ] }, - "toggleClass": { + "saveTable": { "overloads": [ [ - null + "p5.Table", + "String", + "String?" ] ] }, - "child": { + "abs": { "overloads": [ - [], [ - "String|p5.Element?" + "Number" ] ] }, - "center": { + "ceil": { "overloads": [ [ - "String?" + "Number" ] ] }, - "position": { + "constrain": { "overloads": [ - [], [ - "Number?", - "Number?", - "String?" + "Number", + "Number", + "Number" ] ] }, - "style": { + "dist": { "overloads": [ [ - "String" + "Number", + "Number", + "Number", + "Number" ], [ - "String", - "String|p5.Color" + "Number", + "Number", + "Number", + "Number", + "Number", + "Number" ] ] }, - "attribute": { + "exp": { "overloads": [ - [], [ - "String", - "String" + "Number" ] ] }, - "removeAttribute": { + "floor": { "overloads": [ [ - "String" + "Number" ] ] }, - "value": { + "lerp": { "overloads": [ - [], [ - "String|Number" + "Number", + "Number", + "Number" ] ] }, - "show": { - "overloads": [ - [] - ] - }, - "hide": { - "overloads": [ - [] - ] - }, - "size": { + "log": { "overloads": [ - [], [ - "Number|AUTO?", - "Number|AUTO?" + "Number" ] ] }, - "remove": { - "overloads": [ - [], - [], - [], - [], - [], - [], - [], - [], - [], - [], - [], - [], - [], - [] - ] - }, - "drop": { + "mag": { "overloads": [ [ - "Function", - "Function?" + "Number", + "Number" ] ] }, - "draggable": { + "map": { "overloads": [ [ - "p5.Element?" + "Number", + "Number", + "Number", + "Number", + "Number", + "Boolean?" ] ] }, - "volume": { + "max": { "overloads": [ [ + "Number", "Number" + ], + [ + "Number[]" ] ] }, - "setMoveThreshold": { + "min": { "overloads": [ [ + "Number", "Number" + ], + [ + "Number[]" ] ] }, - "setShakeThreshold": { + "norm": { "overloads": [ [ + "Number", + "Number", "Number" ] ] }, - "deviceMoved": { + "pow": { "overloads": [ - [] + [ + "Number", + "Number" + ] ] }, - "deviceTurned": { + "round": { "overloads": [ - [] + [ + "Number", + "Number?" + ] ] }, - "deviceShaken": { + "sq": { "overloads": [ - [] + [ + "Number" + ] ] }, - "keyPressed": { + "sqrt": { "overloads": [ [ - "KeyboardEvent?" + "Number" ] ] }, - "keyReleased": { + "fract": { "overloads": [ [ - "KeyboardEvent?" + "Number" ] ] }, - "keyTyped": { + "createVector": { "overloads": [ [ - "KeyboardEvent?" + "Number?", + "Number?", + "Number?" ] ] }, - "keyIsDown": { + "createMatrix": { + "overloads": [ + [] + ] + }, + "noise": { + "overloads": [ + [ + "Number", + "Number?", + "Number?" + ] + ] + }, + "noiseDetail": { "overloads": [ [ + "Number", "Number" ] ] }, - "mouseMoved": { + "noiseSeed": { "overloads": [ [ - "MouseEvent?" + "Number" ] ] }, - "mouseDragged": { + "randomSeed": { "overloads": [ [ - "MouseEvent?" + "Number" ] ] }, - "mousePressed": { + "random": { "overloads": [ [ - "MouseEvent?" + "Number?", + "Number?" + ], + [ + "Array" ] ] }, - "mouseReleased": { + "randomGaussian": { "overloads": [ [ - "MouseEvent?" + "Number?", + "Number?" ] ] }, - "mouseClicked": { + "acos": { "overloads": [ [ - "MouseEvent?" + "Number" ] ] }, - "doubleClicked": { + "asin": { "overloads": [ [ - "MouseEvent?" + "Number" ] ] }, - "mouseWheel": { + "atan": { "overloads": [ [ - "WheelEvent?" + "Number" ] ] }, - "requestPointerLock": { + "atan2": { "overloads": [ - [] + [ + "Number", + "Number" + ] ] }, - "exitPointerLock": { + "cos": { "overloads": [ - [] + [ + "Number" + ] ] }, - "touchStarted": { + "sin": { "overloads": [ [ - "TouchEvent?" + "Number" ] ] }, - "touchMoved": { + "tan": { "overloads": [ [ - "TouchEvent?" + "Number" ] ] }, - "touchEnded": { + "degrees": { "overloads": [ [ - "TouchEvent?" + "Number" ] ] }, - "createImage": { + "radians": { "overloads": [ [ - "Integer", - "Integer" + "Number" ] ] }, - "saveCanvas": { + "angleMode": { "overloads": [ [ - "p5.Framebuffer|p5.Element|HTMLCanvasElement", - "String?", - "String?" + "RADIANS|DEGREES" ], + [] + ] + }, + "arc": { + "overloads": [ [ - "String?", - "String?" + "Number", + "Number", + "Number", + "Number", + "Number", + "Number", + "CHORD|PIE|OPEN?", + "Integer?" ] ] }, - "saveFrames": { + "ellipse": { "overloads": [ [ - "String", - "String", "Number", "Number", - "Function?" + "Number", + "Number?" + ], + [ + "Number", + "Number", + "Number", + "Number", + "Integer?" ] ] }, - "loadImage": { + "circle": { "overloads": [ [ - "String", - "Function?", - "Function?" + "Number", + "Number", + "Number" ] ] }, - "saveGif": { + "line": { "overloads": [ [ - "String", "Number", - "Object?" + "Number", + "Number", + "Number" + ], + [ + "Number", + "Number", + "Number", + "Number", + "Number", + "Number" ] ] }, - "image": { + "point": { "overloads": [ [ - "p5.Image|p5.Element|p5.Texture|p5.Framebuffer|p5.FramebufferTexture", "Number", "Number", - "Number?", "Number?" ], [ - "p5.Image|p5.Element|p5.Texture|p5.Framebuffer|p5.FramebufferTexture", + "p5.Vector" + ] + ] + }, + "quad": { + "overloads": [ + [ "Number", "Number", "Number", "Number", "Number", "Number", - "Number?", - "Number?", - "CONTAIN|COVER?", - "LEFT|RIGHT|CENTER?", - "TOP|BOTTOM|CENTER?" + "Number", + "Number", + "Integer?", + "Integer?" + ], + [ + "Number", + "Number", + "Number", + "Number", + "Number", + "Number", + "Number", + "Number", + "Number", + "Number", + "Number", + "Number", + "Integer?", + "Integer?" ] ] }, - "tint": { + "rect": { "overloads": [ [ "Number", "Number", "Number", + "Number?", + "Number?", + "Number?", + "Number?", "Number?" ], [ - "String" - ], + "Number", + "Number", + "Number", + "Number", + "Integer?", + "Integer?" + ] + ] + }, + "square": { + "overloads": [ [ "Number", + "Number", + "Number", + "Number?", + "Number?", + "Number?", "Number?" - ], - [ - "Number[]" - ], - [ - "p5.Color" ] ] }, - "noTint": { + "triangle": { "overloads": [ - [] + [ + "Number", + "Number", + "Number", + "Number", + "Number", + "Number" + ] ] }, - "imageMode": { + "ellipseMode": { "overloads": [ [ - "CORNER|CORNERS|CENTER" + "CENTER|RADIUS|CORNER|CORNERS" ] ] }, - "blend": { + "noSmooth": { + "overloads": [ + [] + ] + }, + "rectMode": { "overloads": [ [ - "p5.Image", - "Integer", - "Integer", - "Integer", - "Integer", - "Integer", - "Integer", - "Integer", - "Integer", - "BLEND|DARKEST|LIGHTEST|DIFFERENCE|MULTIPLY|EXCLUSION|SCREEN|REPLACE|OVERLAY|HARD_LIGHT|SOFT_LIGHT|DODGE|BURN|ADD|NORMAL" - ], - [ - "Integer", - "Integer", - "Integer", - "Integer", - "Integer", - "Integer", - "Integer", - "Integer", - "BLEND|DARKEST|LIGHTEST|DIFFERENCE|MULTIPLY|EXCLUSION|SCREEN|REPLACE|OVERLAY|HARD_LIGHT|SOFT_LIGHT|DODGE|BURN|ADD|NORMAL" + "CENTER|RADIUS|CORNER|CORNERS" ] ] }, - "copy": { + "smooth": { + "overloads": [ + [] + ] + }, + "strokeCap": { "overloads": [ [ - "p5.Image|p5.Element", - "Integer", - "Integer", - "Integer", - "Integer", - "Integer", - "Integer", - "Integer", - "Integer" - ], - [ - "Integer", - "Integer", - "Integer", - "Integer", - "Integer", - "Integer", - "Integer", - "Integer" + "ROUND|SQUARE|PROJECT" ] ] }, - "filter": { + "strokeJoin": { "overloads": [ [ - "THRESHOLD|GRAY|OPAQUE|INVERT|POSTERIZE|BLUR|ERODE|DILATE|BLUR", - "Number?", - "Boolean?" - ], - [ - "THRESHOLD|GRAY|OPAQUE|INVERT|POSTERIZE|BLUR|ERODE|DILATE|BLUR", - "Number?", - "Boolean?" - ], + "MITER|BEVEL|ROUND" + ] + ] + }, + "strokeWeight": { + "overloads": [ [ - "p5.Shader" + "Number" ] ] }, - "get": { + "bezier": { "overloads": [ [ + "Number", + "Number", + "Number", + "Number", "Number", "Number", "Number", "Number" ], - [], [ + "Number", + "Number", + "Number", + "Number", + "Number", + "Number", + "Number", + "Number", + "Number", + "Number", "Number", "Number" - ], - [ - "String|Integer" ] ] }, - "loadPixels": { + "bezierDetail": { "overloads": [ - [], - [] + [ + "Number" + ] ] }, - "set": { + "bezierPoint": { "overloads": [ [ "Number", "Number", - "Number|Number[]|Object" - ], - [ - "String|Integer", - "String|Number" + "Number", + "Number", + "Number" ] ] }, - "updatePixels": { - "overloads": [ - [ - "Number?", - "Number?", - "Number?", - "Number?" - ], - [] - ] - }, - "loadJSON": { + "bezierTangent": { "overloads": [ [ - "String", - "Function?", - "Function?" + "Number", + "Number", + "Number", + "Number", + "Number" ] ] }, - "loadStrings": { + "curve": { "overloads": [ [ - "String", - "Function?", - "Function?" - ] - ] - }, - "loadTable": { - "overloads": [ + "Number", + "Number", + "Number", + "Number", + "Number", + "Number", + "Number", + "Number" + ], [ - "String", - "String?", - "String?", - "Function?", - "Function?" + "Number", + "Number", + "Number", + "Number", + "Number", + "Number", + "Number", + "Number", + "Number", + "Number", + "Number", + "Number" ] ] }, - "loadXML": { + "curvePoint": { "overloads": [ [ - "String", - "Function?", - "Function?" + "Number", + "Number", + "Number", + "Number", + "Number" ] ] }, - "loadBytes": { + "curveTangent": { "overloads": [ [ - "String", - "Function?", - "Function?" + "Number", + "Number", + "Number", + "Number", + "Number" ] ] }, - "httpGet": { + "vertex": { "overloads": [ [ - "String", - "String?", - "Object|Boolean?", - "Function?", - "Function?" + "Number", + "Number" ], [ - "String", - "Object|Boolean", - "Function?", - "Function?" + "Number", + "Number", + "Number?" ], [ - "String", - "Function", - "Function?" + "Number", + "Number", + "Number?", + "Number?", + "Number?" ] ] }, - "httpPost": { + "beginContour": { "overloads": [ - [ - "String", - "String?", - "Object|Boolean?", - "Function?", - "Function?" - ], - [ - "String", - "Object|Boolean", - "Function?", - "Function?" - ], - [ - "String", - "Function", - "Function?" - ] + [] ] }, - "httpDo": { + "endContour": { "overloads": [ [ - "String", - "String?", - "String?", - "Object?", - "Function?", - "Function?" - ], - [ - "String", - "Object", - "Function?", - "Function?" + "OPEN|CLOSE?" ] ] }, - "createWriter": { + "beginShape": { "overloads": [ [ - "String", - "String?" + "POINTS|LINES|TRIANGLES|TRIANGLE_FAN|TRIANGLE_STRIP|QUADS|QUAD_STRIP|PATH?" ] ] }, - "write": { - "overloads": [ - [ - "String|Number|Array" - ] - ] - }, - "close": { - "overloads": [ - [] - ] - }, - "save": { - "overloads": [ - [ - "Object|String?", - "String?", - "Boolean|String?" - ] - ] - }, - "saveJSON": { - "overloads": [ - [ - "Array|Object", - "String", - "Boolean?" - ] - ] - }, - "saveStrings": { - "overloads": [ - [ - "String[]", - "String", - "String?", - "Boolean?" - ] - ] - }, - "saveTable": { - "overloads": [ - [ - "p5.Table", - "String", - "String?" - ] - ] - }, - "abs": { - "overloads": [ - [ - "Number" - ] - ] - }, - "ceil": { - "overloads": [ - [ - "Number" - ] - ] - }, - "constrain": { + "bezierVertex": { "overloads": [ [ "Number", "Number", - "Number" - ] - ] - }, - "dist": { - "overloads": [ - [ "Number", "Number", "Number", @@ -1966,1348 +1937,1311 @@ "Number", "Number", "Number", + "Number", + "Number", + "Number", "Number" ] ] }, - "exp": { + "curveVertex": { "overloads": [ [ + "Number", "Number" + ], + [ + "Number", + "Number", + "Number?" ] ] }, - "floor": { + "endShape": { "overloads": [ [ - "Number" + "CLOSE?", + "Integer?" ] ] }, - "lerp": { + "quadraticVertex": { "overloads": [ [ + "Number", "Number", "Number", "Number" - ] - ] - }, - "log": { - "overloads": [ + ], [ + "Number", + "Number", + "Number", + "Number", + "Number", "Number" ] ] }, - "mag": { + "normal": { "overloads": [ + [ + "p5.Vector" + ], [ + "Number", "Number", "Number" ] ] }, - "map": { + "vertexProperty": { "overloads": [ [ - "Number", - "Number", - "Number", - "Number", - "Number", - "Boolean?" + "String", + "Number|Number[]" + ], + [ + "String", + "Number|Number[]", + "Number?" ] ] }, - "max": { + "append": { "overloads": [ [ - "Number", - "Number" - ], - [ - "Number[]" + "Array", + "Any" ] ] }, - "min": { + "arrayCopy": { "overloads": [ [ - "Number", - "Number" + "Array", + "Integer", + "Array", + "Integer", + "Integer" ], [ - "Number[]" + "Array", + "Array", + "Integer?" ] ] }, - "norm": { + "concat": { "overloads": [ [ - "Number", - "Number", - "Number" + "Array", + "Array" ] ] }, - "pow": { + "reverse": { "overloads": [ [ - "Number", - "Number" + "Array" ] ] }, - "round": { + "shorten": { "overloads": [ [ - "Number", - "Number?" + "Array" ] ] }, - "sq": { + "shuffle": { "overloads": [ [ - "Number" + "Array", + "Boolean?" ] ] }, - "sqrt": { + "sort": { "overloads": [ [ - "Number" + "Array", + "Integer?" ] ] }, - "fract": { + "splice": { "overloads": [ [ - "Number" + "Array", + "Any", + "Integer" ] ] }, - "createVector": { + "subset": { "overloads": [ [ - "Number?", - "Number?", - "Number?" + "Array", + "Integer", + "Integer?" ] ] }, - "noise": { + "float": { "overloads": [ [ - "Number", - "Number?", - "Number?" + "String" + ], + [ + "String[]" ] ] }, - "noiseDetail": { + "int": { "overloads": [ [ - "Number", - "Number" + "String|Boolean|Number" + ], + [ + "Array" ] ] }, - "noiseSeed": { + "str": { "overloads": [ [ - "Number" + "String|Boolean|Number" ] ] }, - "randomSeed": { + "boolean": { "overloads": [ [ - "Number" + "String|Boolean|Number" + ], + [ + "Array" ] ] }, - "random": { + "byte": { "overloads": [ [ - "Number?", - "Number?" + "String|Boolean|Number" ], [ "Array" ] ] }, - "randomGaussian": { + "char": { "overloads": [ [ - "Number?", - "Number?" + "String|Number" + ], + [ + "Array" ] ] }, - "acos": { + "unchar": { "overloads": [ [ - "Number" + "String" + ], + [ + "String[]" ] ] }, - "asin": { + "hex": { "overloads": [ [ - "Number" + "Number", + "Number?" + ], + [ + "Number[]", + "Number?" ] ] }, - "atan": { + "unhex": { "overloads": [ [ - "Number" + "String" + ], + [ + "String[]" ] ] }, - "atan2": { + "join": { "overloads": [ [ - "Number", - "Number" + "Array", + "String" ] ] }, - "cos": { + "match": { "overloads": [ [ - "Number" + "String", + "String" ] ] }, - "sin": { + "matchAll": { "overloads": [ [ - "Number" + "String", + "String" ] ] }, - "tan": { + "nf": { "overloads": [ [ - "Number" + "Number|String", + "Integer|String?", + "Integer|String?" + ], + [ + "Number[]", + "Integer|String?", + "Integer|String?" ] ] }, - "degrees": { + "nfc": { "overloads": [ [ - "Number" + "Number|String", + "Integer|String?" + ], + [ + "Number[]", + "Integer|String?" ] ] }, - "radians": { + "nfp": { "overloads": [ [ - "Number" + "Number", + "Integer?", + "Integer?" + ], + [ + "Number[]", + "Integer?", + "Integer?" ] ] }, - "angleMode": { + "nfs": { "overloads": [ [ - "RADIANS|DEGREES" + "Number", + "Integer?", + "Integer?" ], - [] + [ + "Array", + "Integer?", + "Integer?" + ] ] }, - "textAlign": { + "split": { "overloads": [ [ - "LEFT|CENTER|RIGHT", - "TOP|BOTTOM|BASELINE|CENTER?" - ], - [] + "String", + "String" + ] ] }, - "textLeading": { + "splitTokens": { "overloads": [ [ - "Number" - ], - [] + "String", + "String?" + ] ] }, - "textSize": { + "trim": { "overloads": [ [ - "Number" + "String" ], + [ + "String[]" + ] + ] + }, + "day": { + "overloads": [ [] ] }, - "textStyle": { + "hour": { "overloads": [ - [ - "NORMAL|ITALIC|BOLD|BOLDITALIC" - ], [] ] }, - "textWidth": { + "minute": { "overloads": [ - [ - "String" - ] + [] ] }, - "textAscent": { + "millis": { "overloads": [ [] ] }, - "textDescent": { + "month": { "overloads": [ [] ] }, - "textWrap": { + "second": { "overloads": [ - [ - "WORD|CHAR" - ] + [] ] }, - "loadFont": { + "year": { "overloads": [ - [ - "String", - "Function?", - "Function?" - ] + [] ] }, - "text": { + "strokeMode": { "overloads": [ [ - "String|Object|Array|Number|Boolean", - "Number", - "Number", - "Number?", - "Number?" + "string" ] ] }, - "textFont": { + "buildGeometry": { "overloads": [ - [], [ - "Object|String", - "Number?" + "Function" ] ] }, - "append": { + "freeGeometry": { "overloads": [ [ - "Array", - "Any" + "p5.Geometry" ] ] }, - "arrayCopy": { + "plane": { "overloads": [ [ - "Array", - "Integer", - "Array", - "Integer", - "Integer" - ], - [ - "Array", - "Array", + "Number?", + "Number?", + "Integer?", "Integer?" ] ] }, - "concat": { + "box": { "overloads": [ [ - "Array", - "Array" + "Number?", + "Number?", + "Number?", + "Integer?", + "Integer?" ] ] }, - "reverse": { + "sphere": { "overloads": [ [ - "Array" + "Number?", + "Integer?", + "Integer?" ] ] }, - "shorten": { + "cylinder": { "overloads": [ [ - "Array" + "Number?", + "Number?", + "Integer?", + "Integer?", + "Boolean?", + "Boolean?" ] ] }, - "shuffle": { + "cone": { "overloads": [ [ - "Array", + "Number?", + "Number?", + "Integer?", + "Integer?", "Boolean?" ] ] }, - "sort": { + "ellipsoid": { "overloads": [ [ - "Array", + "Number?", + "Number?", + "Number?", + "Integer?", "Integer?" ] ] }, - "splice": { + "torus": { "overloads": [ [ - "Array", - "Any", - "Integer" + "Number?", + "Number?", + "Integer?", + "Integer?" ] ] }, - "subset": { + "curveDetail": { "overloads": [ [ - "Array", - "Integer", - "Integer?" + "Number" ] ] }, - "float": { + "orbitControl": { "overloads": [ [ - "String" - ], - [ - "String[]" + "Number?", + "Number?", + "Number?", + "Object?" ] ] }, - "int": { + "debugMode": { "overloads": [ + [], [ - "String|Boolean|Number" + "GRID|AXES" ], [ - "Array" + "GRID|AXES", + "Number?", + "Number?", + "Number?", + "Number?", + "Number?" + ], + [ + "GRID|AXES", + "Number?", + "Number?", + "Number?", + "Number?" + ], + [ + "Number?", + "Number?", + "Number?", + "Number?", + "Number?", + "Number?", + "Number?", + "Number?", + "Number?" ] ] }, - "str": { + "noDebugMode": { "overloads": [ - [ - "String|Boolean|Number" - ] + [] ] }, - "boolean": { + "ambientLight": { "overloads": [ [ - "String|Boolean|Number" + "Number", + "Number", + "Number", + "Number?" ], [ - "Array" - ] - ] - }, - "byte": { - "overloads": [ + "Number", + "Number?" + ], [ - "String|Boolean|Number" + "String" ], [ - "Array" + "Number[]" + ], + [ + "p5.Color" ] ] }, - "char": { + "specularColor": { "overloads": [ [ - "String|Number" + "Number", + "Number", + "Number" ], [ - "Array" - ] - ] - }, - "unchar": { - "overloads": [ + "Number" + ], [ "String" ], [ - "String[]" + "Number[]" + ], + [ + "p5.Color" ] ] }, - "hex": { + "directionalLight": { "overloads": [ [ "Number", - "Number?" + "Number", + "Number", + "Number", + "Number", + "Number" ], [ - "Number[]", - "Number?" + "Number", + "Number", + "Number", + "p5.Vector" + ], + [ + "p5.Color|Number[]|String", + "Number", + "Number", + "Number" + ], + [ + "p5.Color|Number[]|String", + "p5.Vector" ] ] }, - "unhex": { + "pointLight": { "overloads": [ [ - "String" + "Number", + "Number", + "Number", + "Number", + "Number", + "Number" ], [ - "String[]" + "Number", + "Number", + "Number", + "p5.Vector" + ], + [ + "p5.Color|Number[]|String", + "Number", + "Number", + "Number" + ], + [ + "p5.Color|Number[]|String", + "p5.Vector" ] ] }, - "join": { + "imageLight": { "overloads": [ [ - "Array", - "String" + "p5.image" ] ] }, - "match": { + "panorama": { "overloads": [ [ - "String", - "String" + "p5.Image" ] ] }, - "matchAll": { + "lights": { "overloads": [ - [ - "String", - "String" - ] + [] ] }, - "nf": { + "lightFalloff": { "overloads": [ [ - "Number|String", - "Integer|String?", - "Integer|String?" - ], - [ - "Number[]", - "Integer|String?", - "Integer|String?" + "Number", + "Number", + "Number" ] ] }, - "nfc": { + "spotLight": { "overloads": [ [ - "Number|String", - "Integer|String?" + "Number", + "Number", + "Number", + "Number", + "Number", + "Number", + "Number", + "Number", + "Number", + "Number?", + "Number?" ], [ - "Number[]", - "Integer|String?" - ] - ] - }, - "nfp": { - "overloads": [ + "p5.Color|Number[]|String", + "p5.Vector", + "p5.Vector", + "Number?", + "Number?" + ], [ "Number", - "Integer?", - "Integer?" + "Number", + "Number", + "p5.Vector", + "p5.Vector", + "Number?", + "Number?" ], [ - "Number[]", - "Integer?", - "Integer?" - ] - ] - }, - "nfs": { - "overloads": [ + "p5.Color|Number[]|String", + "Number", + "Number", + "Number", + "p5.Vector", + "Number?", + "Number?" + ], [ + "p5.Color|Number[]|String", + "p5.Vector", "Number", - "Integer?", - "Integer?" + "Number", + "Number", + "Number?", + "Number?" ], [ - "Array", - "Integer?", - "Integer?" + "Number", + "Number", + "Number", + "Number", + "Number", + "Number", + "p5.Vector", + "Number?", + "Number?" + ], + [ + "Number", + "Number", + "Number", + "p5.Vector", + "Number", + "Number", + "Number", + "Number?", + "Number?" + ], + [ + "p5.Color|Number[]|String", + "Number", + "Number", + "Number", + "Number", + "Number", + "Number", + "Number?", + "Number?" ] ] }, - "split": { + "noLights": { "overloads": [ - [ - "String", - "String" - ] + [] ] }, - "splitTokens": { + "loadModel": { "overloads": [ [ - "String", + "String|Request", + "Boolean", + "function(p5.Geometry)?", + "function(Event)?", "String?" - ] - ] - }, - "trim": { - "overloads": [ + ], [ - "String" + "String|Request", + "function(p5.Geometry)?", + "function(Event)?", + "String?" ], [ - "String[]" + "String|Request", + "Object?", + "function(p5.Geometry)?", + "function(Event)?", + "String?", + "Boolean?", + "Boolean?", + "Boolean?" ] ] }, - "day": { + "parseObj": { "overloads": [ [] ] }, - "hour": { + "parseSTL": { "overloads": [ [] ] }, - "minute": { + "isBinary": { "overloads": [ [] ] }, - "millis": { + "matchDataViewAt": { "overloads": [ [] ] }, - "month": { + "parseBinarySTL": { "overloads": [ [] ] }, - "second": { + "parseASCIISTL": { "overloads": [ [] ] }, - "year": { + "model": { "overloads": [ - [] + [ + "p5.Geometry" + ] ] }, - "beginGeometry": { + "loadShader": { "overloads": [ - [] + [ + "String|Request", + "String|Request", + "Function?", + "Function?" + ] ] }, - "endGeometry": { + "createShader": { "overloads": [ - [] + [ + "String", + "String", + "Object?" + ] ] }, - "buildGeometry": { + "loadFilterShader": { "overloads": [ [ - "Function" + "String", + "Function?", + "Function?" ] ] }, - "freeGeometry": { + "createFilterShader": { "overloads": [ [ - "p5.Geometry" + "String" ] ] }, - "plane": { + "shader": { "overloads": [ [ - "Number?", - "Number?", - "Integer?", - "Integer?" + "p5.Shader" ] ] }, - "box": { + "strokeShader": { "overloads": [ [ - "Number?", - "Number?", - "Number?", - "Integer?", - "Integer?" + "p5.Shader" ] ] }, - "sphere": { + "imageShader": { "overloads": [ [ - "Number?", - "Integer?", - "Integer?" + "p5.Shader" ] ] }, - "cylinder": { + "baseMaterialShader": { "overloads": [ - [ - "Number?", - "Number?", - "Integer?", - "Integer?", - "Boolean?", - "Boolean?" - ] + [] ] }, - "cone": { + "baseNormalShader": { "overloads": [ - [ - "Number?", - "Number?", - "Integer?", - "Integer?", - "Boolean?" - ] + [] ] }, - "ellipsoid": { + "baseColorShader": { "overloads": [ - [ - "Number?", - "Number?", - "Number?", - "Integer?", - "Integer?" - ] + [] ] }, - "torus": { + "baseStrokeShader": { + "overloads": [ + [] + ] + }, + "resetShader": { + "overloads": [ + [] + ] + }, + "texture": { "overloads": [ [ - "Number?", - "Number?", - "Integer?", - "Integer?" + "p5.Image|p5.MediaElement|p5.Graphics|p5.Texture|p5.Framebuffer|p5.FramebufferTexture" ] ] }, - "orbitControl": { + "textureMode": { "overloads": [ [ - "Number?", - "Number?", - "Number?", - "Object?" + "IMAGE|NORMAL" ] ] }, - "debugMode": { + "textureWrap": { "overloads": [ - [], - [ - "GRID|AXES" - ], - [ - "GRID|AXES", - "Number?", - "Number?", - "Number?", - "Number?", - "Number?" - ], - [ - "GRID|AXES", - "Number?", - "Number?", - "Number?", - "Number?" - ], [ - "Number?", - "Number?", - "Number?", - "Number?", - "Number?", - "Number?", - "Number?", - "Number?", - "Number?" + "CLAMP|REPEAT|MIRROR", + "CLAMP|REPEAT|MIRROR?" ] ] }, - "noDebugMode": { + "normalMaterial": { "overloads": [ [] ] }, - "ambientLight": { + "ambientMaterial": { "overloads": [ [ "Number", "Number", - "Number", - "Number?" - ], - [ - "Number", - "Number?" - ], - [ - "String" + "Number" ], [ - "Number[]" + "Number" ], [ - "p5.Color" + "p5.Color|Number[]|String" ] ] }, - "specularColor": { + "emissiveMaterial": { "overloads": [ [ "Number", "Number", - "Number" + "Number", + "Number?" ], [ "Number" ], [ - "String" - ], - [ - "Number[]" - ], - [ - "p5.Color" + "p5.Color|Number[]|String" ] ] }, - "directionalLight": { + "specularMaterial": { "overloads": [ [ "Number", - "Number", - "Number", - "Number", - "Number", - "Number" + "Number?" ], [ "Number", "Number", "Number", - "p5.Vector" - ], - [ - "p5.Color|Number[]|String", - "Number", - "Number", - "Number" + "Number?" ], [ - "p5.Color|Number[]|String", - "p5.Vector" + "p5.Color|Number[]|String" ] ] }, - "pointLight": { + "shininess": { "overloads": [ [ - "Number", - "Number", - "Number", - "Number", - "Number", "Number" - ], - [ - "Number", - "Number", - "Number", - "p5.Vector" - ], + ] + ] + }, + "metalness": { + "overloads": [ [ - "p5.Color|Number[]|String", - "Number", - "Number", "Number" - ], - [ - "p5.Color|Number[]|String", - "p5.Vector" ] ] }, - "imageLight": { + "camera": { "overloads": [ [ - "p5.image" + "Number?", + "Number?", + "Number?", + "Number?", + "Number?", + "Number?", + "Number?", + "Number?", + "Number?" ] ] }, - "panorama": { + "perspective": { "overloads": [ [ - "p5.Image" + "Number?", + "Number?", + "Number?", + "Number?" ] ] }, - "lights": { + "linePerspective": { "overloads": [ + [ + "Boolean" + ], [] ] }, - "lightFalloff": { + "ortho": { "overloads": [ [ - "Number", - "Number", - "Number" + "Number?", + "Number?", + "Number?", + "Number?", + "Number?", + "Number?" ] ] }, - "spotLight": { + "frustum": { "overloads": [ [ - "Number", - "Number", - "Number", - "Number", - "Number", - "Number", - "Number", - "Number", - "Number", "Number?", - "Number?" - ], - [ - "p5.Color|Number[]|String", - "p5.Vector", - "p5.Vector", "Number?", - "Number?" - ], - [ - "Number", - "Number", - "Number", - "p5.Vector", - "p5.Vector", "Number?", - "Number?" - ], - [ - "p5.Color|Number[]|String", - "Number", - "Number", - "Number", - "p5.Vector", "Number?", - "Number?" - ], - [ - "p5.Color|Number[]|String", - "p5.Vector", - "Number", - "Number", - "Number", "Number?", "Number?" - ], + ] + ] + }, + "createCamera": { + "overloads": [ + [] + ] + }, + "setCamera": { + "overloads": [ [ - "Number", - "Number", - "Number", - "Number", - "Number", - "Number", - "p5.Vector", - "Number?", - "Number?" - ], - [ - "Number", - "Number", - "Number", - "p5.Vector", - "Number", - "Number", - "Number", - "Number?", - "Number?" - ], - [ - "p5.Color|Number[]|String", - "Number", - "Number", - "Number", - "Number", - "Number", - "Number", - "Number?", - "Number?" + "p5.Camera" ] ] }, - "noLights": { + "saveObj": { "overloads": [ - [] + [ + "String?" + ] ] }, - "loadModel": { + "saveStl": { "overloads": [ [ - "String", - "Boolean", - "Function?", - "Function?", - "String?" - ], + "String?", + "Object?" + ] + ] + }, + "setAttributes": { + "overloads": [ [ "String", - "Function?", - "Function?", - "String?" + "Boolean" ], [ - "String", - "Object?", - "Function?", - "Function?", - "String?", - "Boolean?", - "Boolean?", - "Boolean?" + "Object" ] ] }, - "parseObj": { + "update": { "overloads": [ [] ] }, - "parseSTL": { + "bindTexture": { "overloads": [ [] ] }, - "isBinary": { + "unbindTexture": { "overloads": [ [] ] }, - "matchDataViewAt": { + "setInterpolation": { "overloads": [ - [] + [ + "String", + "String" + ] ] }, - "parseBinarySTL": { + "setWrapMode": { "overloads": [ - [] + [ + "String", + "String" + ] ] }, - "parseASCIISTL": { + "remove": { "overloads": [ [] ] }, - "model": { + "loadFont": { "overloads": [ [ - "p5.Geometry" + null ] ] + } + }, + "p5.Element": { + "remove": { + "overloads": [ + [] + ] }, - "loadShader": { + "child": { "overloads": [ + [], [ - "String", - "String", - "Function?", - "Function?" + "String|p5.Element?" ] ] }, - "createShader": { + "html": { "overloads": [ + [], [ - "String", - "String" + "String?", + "Boolean?" ] ] }, - "createFilterShader": { + "addClass": { "overloads": [ [ "String" ] ] }, - "shader": { + "removeClass": { "overloads": [ [ - "p5.Shader" + "String" ] ] }, - "resetShader": { + "hasClass": { "overloads": [ - [] + [ + null + ] ] }, - "texture": { + "toggleClass": { "overloads": [ [ - "p5.Image|p5.MediaElement|p5.Graphics|p5.Texture|p5.Framebuffer|p5.FramebufferTexture" + null ] ] }, - "textureMode": { + "center": { "overloads": [ [ - "IMAGE|NORMAL" + "String?" ] ] }, - "textureWrap": { + "position": { "overloads": [ + [], [ - "CLAMP|REPEAT|MIRROR", - "CLAMP|REPEAT|MIRROR?" + "Number?", + "Number?", + "String?" ] ] }, - "normalMaterial": { + "show": { "overloads": [ [] ] }, - "ambientMaterial": { + "hide": { "overloads": [ + [] + ] + }, + "size": { + "overloads": [ + [], [ - "Number", - "Number", - "Number" - ], - [ - "Number" - ], - [ - "p5.Color|Number[]|String" + "Number|AUTO?", + "Number|AUTO?" ] ] }, - "emissiveMaterial": { + "style": { "overloads": [ [ - "Number", - "Number", - "Number", - "Number?" - ], - [ - "Number" + "String" ], [ - "p5.Color|Number[]|String" + "String", + "String|p5.Color" ] ] }, - "specularMaterial": { + "attribute": { "overloads": [ + [], [ - "Number", - "Number?" - ], - [ - "Number", - "Number", - "Number", - "Number?" - ], - [ - "p5.Color|Number[]|String" + "String", + "String" ] ] }, - "shininess": { + "removeAttribute": { "overloads": [ [ - "Number" + "String" ] ] }, - "metalness": { + "value": { "overloads": [ + [], [ - "Number" + "String|Number" ] ] }, - "camera": { + "changed": { "overloads": [ [ - "Number?", - "Number?", - "Number?", - "Number?", - "Number?", - "Number?", - "Number?", - "Number?", - "Number?" + "Function|Boolean" ] ] }, - "perspective": { + "input": { "overloads": [ [ - "Number?", - "Number?", - "Number?", - "Number?" + "Function|Boolean" ] ] }, - "linePerspective": { + "drop": { "overloads": [ [ - "Boolean" - ], - [] + "Function", + "Function?" + ] ] }, - "ortho": { + "draggable": { "overloads": [ [ - "Number?", - "Number?", - "Number?", - "Number?", - "Number?", - "Number?" + "p5.Element?" ] ] }, - "frustum": { + "volume": { "overloads": [ [ - "Number?", - "Number?", - "Number?", - "Number?", - "Number?", - "Number?" + "Number" ] ] }, - "createCamera": { + "createMedia": { "overloads": [ [] ] }, - "setCamera": { + "createVideo": { "overloads": [ [ - "p5.Camera" + "String|String[]", + "Function?" ] ] }, - "saveObj": { + "createAudio": { "overloads": [ [ - "String?" + "String|String[]?", + "Function?" ] ] }, - "saveStl": { + "createCapture": { "overloads": [ [ - "String?", - "Object?" - ] - ] - }, - "setAttributes": { - "overloads": [ - [ - "String", - "Boolean" - ], - [ - "Object" - ] - ] - }, - "update": { - "overloads": [ - [] - ] - }, - "bindTexture": { - "overloads": [ - [] - ] - }, - "unbindTexture": { - "overloads": [ - [] - ] - }, - "setInterpolation": { - "overloads": [ - [ - "String", - "String" - ] - ] - }, - "setWrapMode": { - "overloads": [ - [ - "String", - "String" - ] - ] - } - }, - "p5.Element": { - "addClass": { - "overloads": [ - [ - "String" - ] - ] - }, - "html": { - "overloads": [ - [], - [ - "String?", - "Boolean?" + "AUDIO|VIDEO|Object?", + "Object?", + "Function?" ] ] }, @@ -3464,32 +3398,6 @@ ] } }, - "p5.Graphics": { - "reset": { - "overloads": [ - [] - ] - }, - "remove": { - "overloads": [ - [] - ] - }, - "createFramebuffer": { - "overloads": [ - [ - "Object?" - ] - ] - } - }, - "p5.Renderer": { - "resize": { - "overloads": [ - [] - ] - } - }, "p5.TypedDict": { "size": { "overloads": [ @@ -3611,896 +3519,1149 @@ ] } }, - "p5.MediaElement": { - "play": { + "p5.Table": { + "addRow": { "overloads": [ - [] + [ + "p5.TableRow?" + ] ] }, - "stop": { + "removeRow": { "overloads": [ - [] + [ + "Integer" + ] ] }, - "pause": { + "getRow": { "overloads": [ - [] + [ + "Integer" + ] ] }, - "loop": { + "getRows": { "overloads": [ [] ] }, - "noLoop": { + "findRow": { "overloads": [ - [] + [ + "String", + "Integer|String" + ] ] }, - "autoplay": { + "findRows": { "overloads": [ [ - "Boolean?" + "String", + "Integer|String" ] ] }, - "volume": { + "matchRow": { "overloads": [ - [] + [ + "String|RegExp", + "String|Integer" + ] ] }, - "speed": { + "matchRows": { "overloads": [ - [], [ - "Number" + "String", + "String|Integer?" ] ] }, - "time": { + "getColumn": { "overloads": [ - [], [ - "Number" + "String|Number" ] ] }, - "duration": { + "clearRows": { "overloads": [ [] ] }, - "onended": { - "overloads": [ - [ - "Function" - ] - ] - }, - "connect": { + "addColumn": { "overloads": [ [ - "AudioNode|Object" + "String?" ] ] }, - "disconnect": { - "overloads": [ - [] - ] - }, - "showControls": { + "getColumnCount": { "overloads": [ [] ] }, - "hideControls": { + "getRowCount": { "overloads": [ [] ] }, - "addCue": { + "removeTokens": { "overloads": [ [ - "Number", - "Function", - "Object?" + "String", + "String|Integer?" ] ] }, - "removeCue": { + "trim": { "overloads": [ [ - "Number" + "String|Integer?" ] ] }, - "clearCues": { - "overloads": [ - [] - ] - } - }, - "p5.Image": { - "pixelDensity": { + "removeColumn": { "overloads": [ [ - "Number?" + "String|Integer" ] ] }, - "loadPixels": { - "overloads": [ - [] - ] - }, - "updatePixels": { + "set": { "overloads": [ [ "Integer", - "Integer", - "Integer", - "Integer" - ], - [] + "String|Integer", + "String|Number" + ] ] }, - "get": { + "setNum": { "overloads": [ [ - "Number", - "Number", - "Number", - "Number" - ], - [], - [ - "Number", + "Integer", + "String|Integer", "Number" ] ] }, - "set": { + "setString": { "overloads": [ [ - "Number", - "Number", - "Number|Number[]|Object" + "Integer", + "String|Integer", + "String" ] ] }, - "resize": { + "get": { "overloads": [ [ - "Number", - "Number" + "Integer", + "String|Integer" ] ] }, - "copy": { + "getNum": { "overloads": [ [ - "p5.Image|p5.Element", - "Integer", - "Integer", - "Integer", - "Integer", - "Integer", - "Integer", - "Integer", - "Integer" - ], - [ - "Integer", "Integer", - "Integer", - "Integer", - "Integer", - "Integer", - "Integer", - "Integer" + "String|Integer" ] ] }, - "mask": { + "getString": { "overloads": [ [ - "p5.Image" + "Integer", + "String|Integer" ] ] }, - "filter": { + "getObject": { "overloads": [ [ - "THRESHOLD|GRAY|OPAQUE|INVERT|POSTERIZE|ERODE|DILATE|BLUR", - "Number?" + "String?" ] ] }, - "blend": { + "getArray": { + "overloads": [ + [] + ] + } + }, + "p5.Graphics": { + "reset": { + "overloads": [ + [] + ] + }, + "remove": { + "overloads": [ + [] + ] + }, + "createFramebuffer": { "overloads": [ [ - "p5.Image", - "Integer", - "Integer", - "Integer", - "Integer", - "Integer", - "Integer", - "Integer", - "Integer", - "BLEND|DARKEST|LIGHTEST|DIFFERENCE|MULTIPLY|EXCLUSION|SCREEN|REPLACE|OVERLAY|HARD_LIGHT|SOFT_LIGHT|DODGE|BURN|ADD|NORMAL" - ], + "Object?" + ] + ] + } + }, + "p5.Renderer": { + "resize": { + "overloads": [ + [] + ] + }, + "textBounds": { + "overloads": [ [ - "Integer", - "Integer", - "Integer", - "Integer", - "Integer", - "Integer", - "Integer", - "Integer", - "BLEND|DARKEST|LIGHTEST|DIFFERENCE|MULTIPLY|EXCLUSION|SCREEN|REPLACE|OVERLAY|HARD_LIGHT|SOFT_LIGHT|DODGE|BURN|ADD|NORMAL" + "string", + "number", + "number", + "number", + "number" ] ] }, - "save": { + "fontBounds": { "overloads": [ [ - "String", - "String?" + "string", + "number", + "number", + "number", + "number" ] ] }, - "reset": { + "textWidth": { "overloads": [ - [] + [ + "string" + ] ] }, - "getCurrentFrame": { + "fontWidth": { "overloads": [ - [] + [ + "string" + ] ] }, - "setFrame": { + "textAscent": { "overloads": [ [ - "Number" + null ] ] }, - "numFrames": { + "fontAscent": { "overloads": [ [] ] }, - "play": { + "textDescent": { "overloads": [ - [] + [ + null + ] ] }, - "pause": { + "fontDescent": { "overloads": [ [] ] }, - "delay": { + "textFont": { "overloads": [ [ - "Number", - "Number?" + "p5.Font|string", + "number", + "object" + ] + ] + }, + "textSize": { + "overloads": [ + [ + null ] ] + }, + "textProperty": { + "overloads": [ + [] + ] + }, + "textProperties": { + "overloads": [ + [] + ] } }, - "p5.XML": { - "getParent": { + "p5.MediaElement": { + "play": { "overloads": [ [] ] }, - "getName": { + "stop": { "overloads": [ [] ] }, - "setName": { + "pause": { "overloads": [ - [ - "String" - ] + [] ] }, - "hasChildren": { + "loop": { "overloads": [ [] ] }, - "listChildren": { + "noLoop": { "overloads": [ [] ] }, - "getChildren": { + "autoplay": { "overloads": [ [ - "String?" + "Boolean?" ] ] }, - "getChild": { + "volume": { "overloads": [ - [ - "String|Integer" - ] + [] ] }, - "addChild": { + "speed": { "overloads": [ + [], [ - "p5.XML" + "Number" ] ] }, - "removeChild": { + "time": { "overloads": [ + [], [ - "String|Integer" + "Number" ] ] }, - "getAttributeCount": { + "duration": { "overloads": [ [] ] }, - "listAttributes": { + "onended": { "overloads": [ - [] + [ + "Function" + ] ] }, - "hasAttribute": { + "connect": { "overloads": [ [ - "String" + "AudioNode|Object" ] ] }, - "getNum": { + "disconnect": { "overloads": [ - [ - "String", - "Number?" - ] + [] ] }, - "getString": { + "showControls": { "overloads": [ - [ - "String", - "Number?" - ] + [] ] }, - "setAttribute": { + "hideControls": { + "overloads": [ + [] + ] + }, + "addCue": { "overloads": [ [ - "String", - "Number|String|Boolean" + "Number", + "Function", + "Object?" ] ] }, - "getContent": { + "removeCue": { "overloads": [ [ - "String?" + "Number" ] ] }, - "serialize": { + "clearCues": { "overloads": [ [] ] } }, - "p5.Vector": { - "toString": { - "overloads": [ - [] - ] - }, - "set": { + "p5.Image": { + "pixelDensity": { "overloads": [ [ - "Number?", - "Number?", "Number?" - ], - [ - "p5.Vector|Number[]" ] ] }, - "copy": { + "loadPixels": { "overloads": [ - [], - [ - "p5.Vector" - ] + [] ] }, - "add": { + "updatePixels": { "overloads": [ [ - "Number", - "Number?", - "Number?" - ], - [ - "p5.Vector|Number[]" - ], - [ - "p5.Vector", - "p5.Vector", - "p5.Vector?" + "Integer", + "Integer", + "Integer", + "Integer" ] ] }, - "rem": { + "get": { "overloads": [ [ + "Number", "Number", "Number", "Number" ], + [], [ - "p5.Vector|Number[]" - ], - [ - "p5.Vector", - "p5.Vector" - ], - [ - "p5.Vector", - "p5.Vector" + "Number", + "Number" ] ] }, - "sub": { + "set": { "overloads": [ [ "Number", - "Number?", - "Number?" - ], - [ - "p5.Vector|Number[]" - ], - [ - "p5.Vector", - "p5.Vector", - "p5.Vector?" + "Number", + "Number|Number[]|Object" ] ] }, - "mult": { + "resize": { "overloads": [ [ + "Number", "Number" - ], + ] + ] + }, + "copy": { + "overloads": [ [ - "Number", - "Number", - "Number?" - ], - [ - "Number[]" - ], - [ - "p5.Vector" - ], - [], - [ - "Number", - "Number", - "Number?" - ], - [ - "p5.Vector", - "Number", - "p5.Vector?" - ], - [ - "p5.Vector", - "p5.Vector", - "p5.Vector?" + "p5.Image|p5.Element", + "Integer", + "Integer", + "Integer", + "Integer", + "Integer", + "Integer", + "Integer", + "Integer" ], [ - "p5.Vector", - "Number[]", - "p5.Vector?" + "Integer", + "Integer", + "Integer", + "Integer", + "Integer", + "Integer", + "Integer", + "Integer" ] ] }, - "div": { + "mask": { "overloads": [ [ - "Number" - ], - [ - "Number", - "Number", - "Number?" - ], - [ - "Number[]" - ], - [ - "p5.Vector" - ], - [], + "p5.Image" + ] + ] + }, + "filter": { + "overloads": [ [ - "Number", - "Number", + "THRESHOLD|GRAY|OPAQUE|INVERT|POSTERIZE|ERODE|DILATE|BLUR", "Number?" - ], - [ - "p5.Vector", - "Number", - "p5.Vector?" - ], + ] + ] + }, + "blend": { + "overloads": [ [ - "p5.Vector", - "p5.Vector", - "p5.Vector?" + "p5.Image", + "Integer", + "Integer", + "Integer", + "Integer", + "Integer", + "Integer", + "Integer", + "Integer", + "BLEND|DARKEST|LIGHTEST|DIFFERENCE|MULTIPLY|EXCLUSION|SCREEN|REPLACE|OVERLAY|HARD_LIGHT|SOFT_LIGHT|DODGE|BURN|ADD|NORMAL" ], [ - "p5.Vector", - "Number[]", - "p5.Vector?" + "Integer", + "Integer", + "Integer", + "Integer", + "Integer", + "Integer", + "Integer", + "Integer", + "BLEND|DARKEST|LIGHTEST|DIFFERENCE|MULTIPLY|EXCLUSION|SCREEN|REPLACE|OVERLAY|HARD_LIGHT|SOFT_LIGHT|DODGE|BURN|ADD|NORMAL" ] ] }, - "mag": { + "save": { "overloads": [ - [], - [], [ - "p5.Vector" + "String", + "String?" ] ] }, - "magSq": { + "reset": { + "overloads": [ + [] + ] + }, + "getCurrentFrame": { + "overloads": [ + [] + ] + }, + "setFrame": { "overloads": [ - [], - [], [ - "p5.Vector" + "Number" ] ] }, - "dot": { + "numFrames": { + "overloads": [ + [] + ] + }, + "play": { + "overloads": [ + [] + ] + }, + "pause": { + "overloads": [ + [] + ] + }, + "delay": { "overloads": [ [ "Number", - "Number?", "Number?" - ], - [ - "p5.Vector" - ], - [], - [ - "p5.Vector", - "p5.Vector" ] ] + } + }, + "p5.XML": { + "getParent": { + "overloads": [ + [] + ] }, - "cross": { + "getName": { "overloads": [ - [ - "p5.Vector" - ], - [], - [ - "p5.Vector", - "p5.Vector" - ] + [] ] }, - "dist": { + "setName": { "overloads": [ [ - "p5.Vector" - ], - [], - [ - "p5.Vector", - "p5.Vector" + "String" ] ] }, - "normalize": { + "hasChildren": { "overloads": [ - [], - [], - [ - "p5.Vector", - "p5.Vector?" - ] + [] ] }, - "limit": { + "listChildren": { + "overloads": [ + [] + ] + }, + "getChildren": { "overloads": [ [ - "Number" - ], - [], - [ - "p5.Vector", - "Number", - "p5.Vector?" + "String?" ] ] }, - "setMag": { + "getChild": { "overloads": [ [ - "Number" - ], - [], - [ - "p5.Vector", - "Number", - "p5.Vector?" + "String|Integer" ] ] }, - "heading": { + "addChild": { "overloads": [ - [], - [], [ - "p5.Vector" + "p5.XML" ] ] }, - "setHeading": { + "removeChild": { "overloads": [ [ - "Number" + "String|Integer" ] ] }, - "rotate": { + "getAttributeCount": { + "overloads": [ + [] + ] + }, + "listAttributes": { + "overloads": [ + [] + ] + }, + "hasAttribute": { "overloads": [ [ - "Number" - ], - [], - [ - "p5.Vector", - "Number", - "p5.Vector?" + "String" ] ] }, - "angleBetween": { + "getNum": { "overloads": [ [ - "p5.Vector" - ], - [], - [ - "p5.Vector", - "p5.Vector" + "String", + "Number?" ] ] }, - "lerp": { + "getString": { "overloads": [ [ - "Number", - "Number", - "Number", - "Number" - ], + "String", + "Number?" + ] + ] + }, + "setAttribute": { + "overloads": [ [ - "p5.Vector", - "Number" - ], - [], + "String", + "Number|String|Boolean" + ] + ] + }, + "getContent": { + "overloads": [ [ - "p5.Vector", - "p5.Vector", - "Number", - "p5.Vector?" + "String?" ] ] }, - "slerp": { + "serialize": { + "overloads": [ + [] + ] + } + }, + "p5.Vector": { + "getValue": { "overloads": [ [ - "p5.Vector", - "Number" - ], - [], + "number" + ] + ] + }, + "setValue": { + "overloads": [ [ - "p5.Vector", - "p5.Vector", - "Number", - "p5.Vector?" + "number", + "number" ] ] }, - "reflect": { + "set": { "overloads": [ [ - "p5.Vector" + "Number?", + "Number?", + "Number?" ], - [], [ - "p5.Vector", - "p5.Vector", - "p5.Vector?" + "p5.Vector|Number[]" ] ] }, - "array": { + "copy": { "overloads": [ - [], [], [ "p5.Vector" ] ] }, - "equals": { + "add": { "overloads": [ [ - "Number?", + "Number", "Number?", "Number?" ], [ - "p5.Vector|Array" + "p5.Vector|Number[]" ], - [], [ - "p5.Vector|Array", - "p5.Vector|Array" + "p5.Vector", + "p5.Vector", + "p5.Vector?" ] ] }, - "fromAngle": { + "rem": { "overloads": [ [ "Number", - "Number?" + "Number", + "Number" + ], + [ + "p5.Vector|Number[]" + ], + [ + "p5.Vector", + "p5.Vector" ] ] }, - "fromAngles": { + "sub": { "overloads": [ [ "Number", - "Number", + "Number?", "Number?" + ], + [ + "p5.Vector|Number[]" + ], + [ + "p5.Vector", + "p5.Vector", + "p5.Vector?" ] ] }, - "random2D": { - "overloads": [ - [] - ] - }, - "random3D": { - "overloads": [ - [] - ] - } - }, - "p5.Font": { - "textBounds": { + "mult": { "overloads": [ [ - "String", + "Number" + ], + [ "Number", "Number", "Number?" + ], + [ + "Number[]" + ], + [ + "p5.Vector" + ], + [], + [ + "p5.Vector", + "Number", + "p5.Vector?" + ], + [ + "p5.Vector", + "p5.Vector", + "p5.Vector?" + ], + [ + "p5.Vector", + "Number[]", + "p5.Vector?" ] ] }, - "textToPoints": { + "div": { "overloads": [ [ - "String", + "Number" + ], + [ "Number", "Number", - "Number?", - "Object?" + "Number?" + ], + [ + "Number[]" + ], + [ + "p5.Vector" + ], + [], + [ + "p5.Vector", + "Number", + "p5.Vector?" + ], + [ + "p5.Vector", + "p5.Vector", + "p5.Vector?" + ], + [ + "p5.Vector", + "Number[]", + "p5.Vector?" ] ] - } - }, - "p5.Camera": { - "perspective": { + }, + "mag": { "overloads": [ + [], [ - "Number?", - "Number?", - "Number?", - "Number?" + "p5.Vector" ] ] }, - "ortho": { + "magSq": { "overloads": [ + [], [ - "Number?", - "Number?", - "Number?", - "Number?", - "Number?", - "Number?" + "p5.Vector" ] ] }, - "frustum": { + "dot": { "overloads": [ [ - "Number?", - "Number?", - "Number?", - "Number?", + "Number", "Number?", "Number?" + ], + [ + "p5.Vector" + ], + [], + [ + "p5.Vector", + "p5.Vector" ] ] }, - "pan": { + "cross": { "overloads": [ [ - "Number" + "p5.Vector" + ], + [], + [ + "p5.Vector", + "p5.Vector" ] ] }, - "tilt": { + "dist": { "overloads": [ [ - "Number" + "p5.Vector" + ], + [], + [ + "p5.Vector", + "p5.Vector" ] ] }, - "lookAt": { + "normalize": { "overloads": [ + [], [ - "Number", - "Number", - "Number" + "p5.Vector", + "p5.Vector?" ] ] }, - "camera": { + "limit": { "overloads": [ [ - "Number?", - "Number?", - "Number?", - "Number?", - "Number?", - "Number?", - "Number?", - "Number?", - "Number?" + "Number" + ], + [], + [ + "p5.Vector", + "Number", + "p5.Vector?" ] ] }, - "move": { + "setMag": { "overloads": [ [ - "Number", - "Number", + "Number" + ], + [], + [ + "p5.Vector", + "Number", + "p5.Vector?" + ] + ] + }, + "heading": { + "overloads": [ + [], + [ + "p5.Vector" + ] + ] + }, + "setHeading": { + "overloads": [ + [ + "Number" + ] + ] + }, + "rotate": { + "overloads": [ + [ + "Number" + ], + [], + [ + "p5.Vector", + "Number", + "p5.Vector?" + ] + ] + }, + "angleBetween": { + "overloads": [ + [ + "p5.Vector" + ], + [], + [ + "p5.Vector", + "p5.Vector" + ] + ] + }, + "lerp": { + "overloads": [ + [ + "Number", + "Number", + "Number", + "Number" + ], + [ + "p5.Vector", + "Number" + ], + [], + [ + "p5.Vector", + "p5.Vector", + "Number", + "p5.Vector?" + ] + ] + }, + "slerp": { + "overloads": [ + [ + "p5.Vector", + "Number" + ], + [], + [ + "p5.Vector", + "p5.Vector", + "Number", + "p5.Vector?" + ] + ] + }, + "reflect": { + "overloads": [ + [ + "p5.Vector" + ], + [], + [ + "p5.Vector", + "p5.Vector", + "p5.Vector?" + ] + ] + }, + "array": { + "overloads": [ + [], + [ + "p5.Vector" + ] + ] + }, + "equals": { + "overloads": [ + [ + "Number?", + "Number?", + "Number?" + ], + [ + "p5.Vector|Array" + ], + [], + [ + "p5.Vector|Array", + "p5.Vector|Array" + ] + ] + }, + "fromAngle": { + "overloads": [ + [ + "Number", + "Number?" + ] + ] + }, + "fromAngles": { + "overloads": [ + [ + "Number", + "Number", + "Number?" + ] + ] + }, + "random2D": { + "overloads": [ + [] + ] + }, + "random3D": { + "overloads": [ + [] + ] + } + }, + "p5.Camera": { + "perspective": { + "overloads": [ + [ + "Number?", + "Number?", + "Number?", + "Number?" + ] + ] + }, + "ortho": { + "overloads": [ + [ + "Number?", + "Number?", + "Number?", + "Number?", + "Number?", + "Number?" + ] + ] + }, + "frustum": { + "overloads": [ + [ + "Number?", + "Number?", + "Number?", + "Number?", + "Number?", + "Number?" + ] + ] + }, + "pan": { + "overloads": [ + [ + "Number" + ] + ] + }, + "tilt": { + "overloads": [ + [ + "Number" + ] + ] + }, + "lookAt": { + "overloads": [ + [ + "Number", + "Number", + "Number" + ] + ] + }, + "camera": { + "overloads": [ + [ + "Number?", + "Number?", + "Number?", + "Number?", + "Number?", + "Number?", + "Number?", + "Number?", + "Number?" + ] + ] + }, + "move": { + "overloads": [ + [ + "Number", + "Number", "Number" ] ] @@ -4638,6 +4799,23 @@ } }, "p5.Shader": { + "version": { + "overloads": [ + [] + ] + }, + "inspectHooks": { + "overloads": [ + [] + ] + }, + "modify": { + "overloads": [ + [ + "Object?" + ] + ] + }, "copyToContext": { "overloads": [ [ @@ -4653,1167 +4831,5 @@ ] ] } - }, - "p5.Table": { - "addRow": { - "overloads": [ - [ - "p5.TableRow?" - ], - [ - "p5.TableRow?" - ], - [ - "p5.TableRow?" - ], - [ - "p5.TableRow?" - ], - [ - "p5.TableRow?" - ], - [ - "p5.TableRow?" - ], - [ - "p5.TableRow?" - ], - [ - "p5.TableRow?" - ], - [ - "p5.TableRow?" - ], - [ - "p5.TableRow?" - ], - [ - "p5.TableRow?" - ], - [ - "p5.TableRow?" - ], - [ - "p5.TableRow?" - ], - [ - "p5.TableRow?" - ] - ] - }, - "removeRow": { - "overloads": [ - [ - "Integer" - ], - [ - "Integer" - ], - [ - "Integer" - ], - [ - "Integer" - ], - [ - "Integer" - ], - [ - "Integer" - ], - [ - "Integer" - ], - [ - "Integer" - ], - [ - "Integer" - ], - [ - "Integer" - ], - [ - "Integer" - ], - [ - "Integer" - ], - [ - "Integer" - ], - [ - "Integer" - ] - ] - }, - "getRow": { - "overloads": [ - [ - "Integer" - ], - [ - "Integer" - ], - [ - "Integer" - ], - [ - "Integer" - ], - [ - "Integer" - ], - [ - "Integer" - ], - [ - "Integer" - ], - [ - "Integer" - ], - [ - "Integer" - ], - [ - "Integer" - ], - [ - "Integer" - ], - [ - "Integer" - ], - [ - "Integer" - ], - [ - "Integer" - ] - ] - }, - "getRows": { - "overloads": [ - [], - [], - [], - [], - [], - [], - [], - [], - [], - [], - [], - [], - [], - [] - ] - }, - "findRow": { - "overloads": [ - [ - "String", - "Integer|String" - ], - [ - "String", - "Integer|String" - ], - [ - "String", - "Integer|String" - ], - [ - "String", - "Integer|String" - ], - [ - "String", - "Integer|String" - ], - [ - "String", - "Integer|String" - ], - [ - "String", - "Integer|String" - ], - [ - "String", - "Integer|String" - ], - [ - "String", - "Integer|String" - ], - [ - "String", - "Integer|String" - ], - [ - "String", - "Integer|String" - ], - [ - "String", - "Integer|String" - ], - [ - "String", - "Integer|String" - ], - [ - "String", - "Integer|String" - ] - ] - }, - "findRows": { - "overloads": [ - [ - "String", - "Integer|String" - ], - [ - "String", - "Integer|String" - ], - [ - "String", - "Integer|String" - ], - [ - "String", - "Integer|String" - ], - [ - "String", - "Integer|String" - ], - [ - "String", - "Integer|String" - ], - [ - "String", - "Integer|String" - ], - [ - "String", - "Integer|String" - ], - [ - "String", - "Integer|String" - ], - [ - "String", - "Integer|String" - ], - [ - "String", - "Integer|String" - ], - [ - "String", - "Integer|String" - ], - [ - "String", - "Integer|String" - ], - [ - "String", - "Integer|String" - ] - ] - }, - "matchRow": { - "overloads": [ - [ - "String|RegExp", - "String|Integer" - ], - [ - "String|RegExp", - "String|Integer" - ], - [ - "String|RegExp", - "String|Integer" - ], - [ - "String|RegExp", - "String|Integer" - ], - [ - "String|RegExp", - "String|Integer" - ], - [ - "String|RegExp", - "String|Integer" - ], - [ - "String|RegExp", - "String|Integer" - ], - [ - "String|RegExp", - "String|Integer" - ], - [ - "String|RegExp", - "String|Integer" - ], - [ - "String|RegExp", - "String|Integer" - ], - [ - "String|RegExp", - "String|Integer" - ], - [ - "String|RegExp", - "String|Integer" - ], - [ - "String|RegExp", - "String|Integer" - ], - [ - "String|RegExp", - "String|Integer" - ] - ] - }, - "matchRows": { - "overloads": [ - [ - "String", - "String|Integer?" - ], - [ - "String", - "String|Integer?" - ], - [ - "String", - "String|Integer?" - ], - [ - "String", - "String|Integer?" - ], - [ - "String", - "String|Integer?" - ], - [ - "String", - "String|Integer?" - ], - [ - "String", - "String|Integer?" - ], - [ - "String", - "String|Integer?" - ], - [ - "String", - "String|Integer?" - ], - [ - "String", - "String|Integer?" - ], - [ - "String", - "String|Integer?" - ], - [ - "String", - "String|Integer?" - ], - [ - "String", - "String|Integer?" - ], - [ - "String", - "String|Integer?" - ] - ] - }, - "getColumn": { - "overloads": [ - [ - "String|Number" - ], - [ - "String|Number" - ], - [ - "String|Number" - ], - [ - "String|Number" - ], - [ - "String|Number" - ], - [ - "String|Number" - ], - [ - "String|Number" - ], - [ - "String|Number" - ], - [ - "String|Number" - ], - [ - "String|Number" - ], - [ - "String|Number" - ], - [ - "String|Number" - ], - [ - "String|Number" - ], - [ - "String|Number" - ] - ] - }, - "clearRows": { - "overloads": [ - [], - [], - [], - [], - [], - [], - [], - [], - [], - [], - [], - [], - [], - [] - ] - }, - "addColumn": { - "overloads": [ - [ - "String?" - ], - [ - "String?" - ], - [ - "String?" - ], - [ - "String?" - ], - [ - "String?" - ], - [ - "String?" - ], - [ - "String?" - ], - [ - "String?" - ], - [ - "String?" - ], - [ - "String?" - ], - [ - "String?" - ], - [ - "String?" - ], - [ - "String?" - ], - [ - "String?" - ] - ] - }, - "getColumnCount": { - "overloads": [ - [], - [], - [], - [], - [], - [], - [], - [], - [], - [], - [], - [], - [], - [] - ] - }, - "getRowCount": { - "overloads": [ - [], - [], - [], - [], - [], - [], - [], - [], - [], - [], - [], - [], - [], - [] - ] - }, - "removeTokens": { - "overloads": [ - [ - "String", - "String|Integer?" - ], - [ - "String", - "String|Integer?" - ], - [ - "String", - "String|Integer?" - ], - [ - "String", - "String|Integer?" - ], - [ - "String", - "String|Integer?" - ], - [ - "String", - "String|Integer?" - ], - [ - "String", - "String|Integer?" - ], - [ - "String", - "String|Integer?" - ], - [ - "String", - "String|Integer?" - ], - [ - "String", - "String|Integer?" - ], - [ - "String", - "String|Integer?" - ], - [ - "String", - "String|Integer?" - ], - [ - "String", - "String|Integer?" - ], - [ - "String", - "String|Integer?" - ] - ] - }, - "trim": { - "overloads": [ - [ - "String|Integer?" - ], - [ - "String|Integer?" - ], - [ - "String|Integer?" - ], - [ - "String|Integer?" - ], - [ - "String|Integer?" - ], - [ - "String|Integer?" - ], - [ - "String|Integer?" - ], - [ - "String|Integer?" - ], - [ - "String|Integer?" - ], - [ - "String|Integer?" - ], - [ - "String|Integer?" - ], - [ - "String|Integer?" - ], - [ - "String|Integer?" - ], - [ - "String|Integer?" - ] - ] - }, - "removeColumn": { - "overloads": [ - [ - "String|Integer" - ], - [ - "String|Integer" - ], - [ - "String|Integer" - ], - [ - "String|Integer" - ], - [ - "String|Integer" - ], - [ - "String|Integer" - ], - [ - "String|Integer" - ], - [ - "String|Integer" - ], - [ - "String|Integer" - ], - [ - "String|Integer" - ], - [ - "String|Integer" - ], - [ - "String|Integer" - ], - [ - "String|Integer" - ], - [ - "String|Integer" - ] - ] - }, - "set": { - "overloads": [ - [ - "Integer", - "String|Integer", - "String|Number" - ], - [ - "Integer", - "String|Integer", - "String|Number" - ], - [ - "Integer", - "String|Integer", - "String|Number" - ], - [ - "Integer", - "String|Integer", - "String|Number" - ], - [ - "Integer", - "String|Integer", - "String|Number" - ], - [ - "Integer", - "String|Integer", - "String|Number" - ], - [ - "Integer", - "String|Integer", - "String|Number" - ], - [ - "Integer", - "String|Integer", - "String|Number" - ], - [ - "Integer", - "String|Integer", - "String|Number" - ], - [ - "Integer", - "String|Integer", - "String|Number" - ], - [ - "Integer", - "String|Integer", - "String|Number" - ], - [ - "Integer", - "String|Integer", - "String|Number" - ], - [ - "Integer", - "String|Integer", - "String|Number" - ], - [ - "Integer", - "String|Integer", - "String|Number" - ] - ] - }, - "setNum": { - "overloads": [ - [ - "Integer", - "String|Integer", - "Number" - ], - [ - "Integer", - "String|Integer", - "Number" - ], - [ - "Integer", - "String|Integer", - "Number" - ], - [ - "Integer", - "String|Integer", - "Number" - ], - [ - "Integer", - "String|Integer", - "Number" - ], - [ - "Integer", - "String|Integer", - "Number" - ], - [ - "Integer", - "String|Integer", - "Number" - ], - [ - "Integer", - "String|Integer", - "Number" - ], - [ - "Integer", - "String|Integer", - "Number" - ], - [ - "Integer", - "String|Integer", - "Number" - ], - [ - "Integer", - "String|Integer", - "Number" - ], - [ - "Integer", - "String|Integer", - "Number" - ], - [ - "Integer", - "String|Integer", - "Number" - ], - [ - "Integer", - "String|Integer", - "Number" - ] - ] - }, - "setString": { - "overloads": [ - [ - "Integer", - "String|Integer", - "String" - ], - [ - "Integer", - "String|Integer", - "String" - ], - [ - "Integer", - "String|Integer", - "String" - ], - [ - "Integer", - "String|Integer", - "String" - ], - [ - "Integer", - "String|Integer", - "String" - ], - [ - "Integer", - "String|Integer", - "String" - ], - [ - "Integer", - "String|Integer", - "String" - ], - [ - "Integer", - "String|Integer", - "String" - ], - [ - "Integer", - "String|Integer", - "String" - ], - [ - "Integer", - "String|Integer", - "String" - ], - [ - "Integer", - "String|Integer", - "String" - ], - [ - "Integer", - "String|Integer", - "String" - ], - [ - "Integer", - "String|Integer", - "String" - ], - [ - "Integer", - "String|Integer", - "String" - ] - ] - }, - "get": { - "overloads": [ - [ - "Integer", - "String|Integer" - ], - [ - "Integer", - "String|Integer" - ], - [ - "Integer", - "String|Integer" - ], - [ - "Integer", - "String|Integer" - ], - [ - "Integer", - "String|Integer" - ], - [ - "Integer", - "String|Integer" - ], - [ - "Integer", - "String|Integer" - ], - [ - "Integer", - "String|Integer" - ], - [ - "Integer", - "String|Integer" - ], - [ - "Integer", - "String|Integer" - ], - [ - "Integer", - "String|Integer" - ], - [ - "Integer", - "String|Integer" - ], - [ - "Integer", - "String|Integer" - ], - [ - "Integer", - "String|Integer" - ] - ] - }, - "getNum": { - "overloads": [ - [ - "Integer", - "String|Integer" - ], - [ - "Integer", - "String|Integer" - ], - [ - "Integer", - "String|Integer" - ], - [ - "Integer", - "String|Integer" - ], - [ - "Integer", - "String|Integer" - ], - [ - "Integer", - "String|Integer" - ], - [ - "Integer", - "String|Integer" - ], - [ - "Integer", - "String|Integer" - ], - [ - "Integer", - "String|Integer" - ], - [ - "Integer", - "String|Integer" - ], - [ - "Integer", - "String|Integer" - ], - [ - "Integer", - "String|Integer" - ], - [ - "Integer", - "String|Integer" - ], - [ - "Integer", - "String|Integer" - ] - ] - }, - "getString": { - "overloads": [ - [ - "Integer", - "String|Integer" - ], - [ - "Integer", - "String|Integer" - ], - [ - "Integer", - "String|Integer" - ], - [ - "Integer", - "String|Integer" - ], - [ - "Integer", - "String|Integer" - ], - [ - "Integer", - "String|Integer" - ], - [ - "Integer", - "String|Integer" - ], - [ - "Integer", - "String|Integer" - ], - [ - "Integer", - "String|Integer" - ], - [ - "Integer", - "String|Integer" - ], - [ - "Integer", - "String|Integer" - ], - [ - "Integer", - "String|Integer" - ], - [ - "Integer", - "String|Integer" - ], - [ - "Integer", - "String|Integer" - ] - ] - }, - "getObject": { - "overloads": [ - [ - "String?" - ], - [ - "String?" - ], - [ - "String?" - ], - [ - "String?" - ], - [ - "String?" - ], - [ - "String?" - ], - [ - "String?" - ], - [ - "String?" - ], - [ - "String?" - ], - [ - "String?" - ], - [ - "String?" - ], - [ - "String?" - ], - [ - "String?" - ], - [ - "String?" - ] - ] - }, - "getArray": { - "overloads": [ - [], - [], - [], - [], - [], - [], - [], - [], - [], - [], - [], - [], - [], - [] - ] - } } } \ No newline at end of file diff --git a/src/color/creating_reading.js b/src/color/creating_reading.js index 9396c0f0a9..f848ba3a25 100644 --- a/src/color/creating_reading.js +++ b/src/color/creating_reading.js @@ -1527,6 +1527,61 @@ function creatingReading(p5, fn){ // p5._validateParameters('lerpColor', arguments); return c1.lerp(c2, amt, this._renderer.states.colorMode); }; + + /** + * Blends multiple colors to find a color between them. + * + * The `amt` parameter specifies the amount to interpolate between the color + * stops which are colors at each `amt` value "location" with `amt` values + * that are between 2 color stops interpolating between them based on its relative + * distance to both. + * + * The way that colors are interpolated depends on the current + * colorMode(). + * + * @method paletteLerp + * @param {[p5.Color|String|Number|Number[], Number][]} colors_stops color stops to interpolate from + * @param {Number} amt number to use to interpolate relative to color stops + * @return {p5.Color} interpolated color. + * + * @example + *
+ * + * function setup() { + * createCanvas(400, 400); + * } + * + * function draw() { + * // The background goes from white to red to green to blue fill + * background(paletteLerp([ + * ['white', 0], + * ['red', 0.05], + * ['green', 0.25], + * ['blue', 1] + * ], millis() / 10000 % 1)); + * } + * + *
+ */ + fn.paletteLerp = function(color_stops, amt) { + const first_color_stop = color_stops[0]; + if (amt < first_color_stop[1]) + return this.color(first_color_stop[0]); + + for (let i = 1; i < color_stops.length; i++) { + const color_stop = color_stops[i]; + if (amt < color_stop[1]) { + const prev_color_stop = color_stops[i - 1]; + return this.lerpColor( + this.color(prev_color_stop[0]), + this.color(color_stop[0]), + (amt - prev_color_stop[1]) / (color_stop[1] - prev_color_stop[1]) + ); + } + } + + return this.color(color_stops[color_stops.length - 1][0]); + }; } export default creatingReading; diff --git a/src/core/friendly_errors/param_validator.js b/src/core/friendly_errors/param_validator.js index 973f950cd0..7768c90f85 100644 --- a/src/core/friendly_errors/param_validator.js +++ b/src/core/friendly_errors/param_validator.js @@ -19,10 +19,13 @@ function validateParams(p5, fn, lifecycles) { // const p5Constructors = {}; // NOTE: This is a tempt fix for unit test but is not correct // Attaced constructors are `undefined` - const p5Constructors = Object.keys(dataDoc).reduce((acc, val) => { - if (val !== 'p5') { - const className = val.substring(3); - acc[className] = p5[className]; + const p5Constructors = Object.keys(p5).reduce((acc, val) => { + if ( + val.match(/^[A-Z]/) && // Starts with a capital + !val.match(/^[A-Z][A-Z0-9]*$/) && // Is not an all caps constant + p5[val] instanceof Function // Is a function + ) { + acc[val] = p5[val]; } return acc; }, {}); @@ -125,18 +128,6 @@ function validateParams(p5, fn, lifecycles) { * @returns {z.ZodSchema} Zod schema */ fn.generateZodSchemasForFunc = function (func) { - // A special case for `p5.Color.paletteLerp`, which has an unusual and - // complicated function signature not shared by any other function in p5. - if (func === 'p5.Color.paletteLerp') { - return z.tuple([ - z.array(z.tuple([ - z.instanceof(p5.Color), - z.number() - ])), - z.number() - ]); - } - const { funcName, funcClass } = extractFuncNameAndClass(func); let funcInfo = dataDoc[funcClass][funcName]; @@ -149,18 +140,27 @@ function validateParams(p5, fn, lifecycles) { // Returns a schema for a single type, i.e. z.boolean() for `boolean`. const generateTypeSchema = type => { + if (!type) return z.any(); + const isArray = type.endsWith('[]'); const baseType = isArray ? type.slice(0, -2) : type; let typeSchema; - // Type only contains uppercase letters and underscores -> type is a - // constant. Note that because we're ultimately interested in the value of + // Check for constants. Note that because we're ultimately interested in the value of // the constant, mapping constants to their values via `constantsMap` is // necessary. - if (/^[A-Z_]+$/.test(baseType)) { + if (baseType in constantsMap) { typeSchema = z.literal(constantsMap[baseType]); } + // Some more constants are attached directly to p5.prototype, e.g. by addons: + else if (baseType.match(/^[A-Z][A-Z0-9]*$/) && baseType in fn) { + typeSchema = z.literal(fn[baseType]); + } + // Function types + else if (baseType.startsWith('function')) { + typeSchema = z.function(); + } // All p5 objects start with `p5` in the documentation, i.e. `p5.Camera`. else if (baseType.startsWith('p5')) { const className = baseType.substring(baseType.indexOf('.') + 1); @@ -169,6 +169,19 @@ function validateParams(p5, fn, lifecycles) { // For primitive types and web API objects. else if (schemaMap[baseType]) { typeSchema = schemaMap[baseType]; + } + // Tuple types + else if (baseType.startsWith('[') && baseType.endsWith(']')) { + typeSchema = z.tuple( + baseType + .slice(1, -1) + .split(/, */g) + .map(entry => generateTypeSchema(entry)) + ); + } + // JavaScript classes, e.g. Request + else if (baseType.match(/^[A-Z]/) && baseType in window) { + typeSchema = z.instanceof(window[baseType]); } else { throw new Error(`Unsupported type '${type}' in parameter validation. Please report this issue.`); } @@ -179,8 +192,8 @@ function validateParams(p5, fn, lifecycles) { // Generate a schema for a single parameter. In the case where a parameter can // be of multiple types, `generateTypeSchema` is called for each type. const generateParamSchema = param => { - const isOptional = param.endsWith('?'); - param = param.replace(/\?$/, ''); + const isOptional = param?.endsWith('?'); + param = param?.replace(/\?$/, ''); let schema; @@ -193,7 +206,7 @@ function validateParams(p5, fn, lifecycles) { // our constants sometimes have numeric or non-primitive values. // 2) In some cases, the type can be constants or strings, making z.enum() // insufficient for the use case. - if (param.includes('|')) { + if (param?.includes('|')) { const types = param.split('|'); schema = z.union(types .map(t => generateTypeSchema(t)) @@ -218,11 +231,11 @@ function validateParams(p5, fn, lifecycles) { // combinations that are valid for all numbers of parameters. const generateOverloadCombinations = params => { // No optional parameters, return the original parameter list right away. - if (!params.some(p => p.endsWith('?'))) { + if (!params.some(p => p?.endsWith('?'))) { return [params]; } - const requiredParamsCount = params.filter(p => !p.endsWith('?')).length; + const requiredParamsCount = params.filter(p => p === null || !p.endsWith('?')).length; const result = []; for (let i = requiredParamsCount; i <= params.length; i++) { @@ -332,7 +345,7 @@ function validateParams(p5, fn, lifecycles) { /** * Prints a friendly error message after parameter validation, if validation * has failed. - * + * * @method _friendlyParamError * @private * @param {z.ZodError} zodErrorObj - The Zod error object containing validation errors. @@ -423,7 +436,7 @@ function validateParams(p5, fn, lifecycles) { // Generates a link to the documentation based on the given function name. // TODO: Check if the link is reachable before appending it to the error - // message. + // message. const generateDocumentationLink = (func) => { const { funcName, funcClass } = extractFuncNameAndClass(func); const p5BaseUrl = 'https://p5js.org/reference'; diff --git a/src/shape/custom_shapes.js b/src/shape/custom_shapes.js index f054275ba8..cb53761d19 100644 --- a/src/shape/custom_shapes.js +++ b/src/shape/custom_shapes.js @@ -1968,6 +1968,7 @@ function customShapes(p5, fn) { * counter-clockwise order. * * @method endContour + * @param {OPEN|CLOSE} [mode=OPEN] * * @example *
diff --git a/test/unit/core/param_errors.js b/test/unit/core/param_errors.js index 49128258c3..5bce63c7b7 100644 --- a/test/unit/core/param_errors.js +++ b/test/unit/core/param_errors.js @@ -218,7 +218,7 @@ suite('Validate Params', function () { [new mockP5.Color(), 0.8], [new mockP5.Color(), 0.5] ]; - const result = mockP5Prototype.validate('p5.Color.paletteLerp', [colorStops, 0.5]); + const result = mockP5Prototype.validate('p5.paletteLerp', [colorStops, 0.5]); assert.isTrue(result.success); }) }) diff --git a/utils/convert.js b/utils/convert.js index d3b5722bc4..a92049298a 100644 --- a/utils/convert.js +++ b/utils/convert.js @@ -69,8 +69,7 @@ function typeObject(node) { const { type: typeName } = typeObject(node.expression); if ( typeName === 'Array' && - node.applications.length === 1 && - node.applications[0].type === 'NameExpression' + node.applications.length === 1 ) { return { type: `${typeObject(node.applications[0]).type}[]` @@ -78,10 +77,18 @@ function typeObject(node) { } const args = node.applications.map(n => typeObject(n).type); return { - type: `${typeName}<${args.join(', ')}>` + type: `${typeName}<${args.join(', ')}>` }; } else if (node.type === 'UndefinedLiteral') { return { type: 'undefined' }; + } else if (node.type === 'FunctionType') { + let signature = `function(${node.params.map(p => typeObject(p).type).join(', ')})`; + if (node.result) { + signature += `: ${typeObject(node.result).type}`; + } + return { type: signature }; + } else if (node.type === 'ArrayType') { + return { type: `[${node.elements.map(e => typeObject(e).type).join(', ')}]` }; } else { // TODO // - handle record types @@ -192,7 +199,11 @@ function getModuleInfo(entry) { const entryForTagValue = entryForTag && entryForTag.description; const file = entry.context.file; let { module, submodule, for: forEntry } = fileModuleInfo[file] || {}; - forEntry = entry.memberof || entryForTagValue || forEntry; + let memberof = entry.memberof; + if (memberof && memberof !== 'p5' && !memberof.startsWith('p5.')) { + memberof = 'p5.' + memberof; + } + forEntry = memberof || entryForTagValue || forEntry; return { module, submodule, forEntry }; } @@ -335,7 +346,10 @@ for (const entry of allData) { const { module, submodule, forEntry } = getModuleInfo(entry); const propTag = entry.tags.find(tag => tag.title === 'property'); const forTag = entry.tags.find(tag => tag.title === 'for'); - const memberof = entry.memberof; + let memberof = entry.memberof; + if (memberof && memberof !== 'p5' && !memberof.startsWith('p5.')) { + memberof = 'p5.' + memberof; + } if (!propTag || (!forEntry && !forTag && !memberof)) continue; const forName = memberof || (forTag && forTag.description) || forEntry; @@ -379,14 +393,19 @@ for (const entry of allData) { if (entry.kind === 'function' && entry.properties.length === 0) { const { module, submodule, forEntry } = getModuleInfo(entry); + let memberof = entry.memberof; + if (memberof && memberof !== 'p5' && !memberof.startsWith('p5.')) { + memberof = 'p5.' + memberof; + } + // Ignore functions that aren't methods if (entry.tags.some(tag => tag.title === 'function')) continue; // If a previous version of this same method exists, then this is probably // an overload on that method - const prevItem = (classMethods[entry.memberof] || {})[entry.name] || {}; + const prevItem = (classMethods[memberof] || {})[entry.name] || {}; - const className = entry.memberof || prevItem.class || forEntry; + const className = memberof || prevItem.class || forEntry; // Ignore methods of private classes if (!converted.classes[className]) continue; @@ -442,8 +461,8 @@ for (const entry of allData) { submodule }; - classMethods[entry.memberof] = classMethods[entry.memberof] || {}; - classMethods[entry.memberof][entry.name] = item; + classMethods[memberof] = classMethods[memberof] || {}; + classMethods[memberof][entry.name] = item; } } for (const className in classMethods) {