{"list":[{"title":"AgentArray.Symbol.species","link":"<a href=\"AgentArray.Symbol.html#.species\">species</a>","description":"<p>Magic to return AgentArrays rather than AgentList\nor other AgentArray subclasses when using AA methods\n<a href=\"https://goo.gl/Zsxwxd\">Symbol.species</a></p>"},{"title":"AgentArray.fromArray","link":"<a href=\"AgentArray.html#.fromArray\">fromArray</a>","description":"<p>Convert an existing Array to an AgentArray &quot;in place&quot;.\nUse array.slice() if a new array is wanted</p>"},{"title":"AgentArray","link":"<a href=\"AgentArray.html\">AgentArray</a>","description":"<p>Creates an instance of AgentArray. Simply pass-through to super()\nnow, but may add initialization code later.</p>"},{"title":"AgentArray#toArray","link":"<a href=\"AgentArray.html#toArray\">toArray</a>","description":"<p>See {@link World} and [MyClass's foo property]{@link World#bboxTransform}.\nConvert this AgentArray to Array in-place</p>"},{"title":"AgentArray#isEmpty","link":"<a href=\"AgentArray.html#isEmpty\">isEmpty</a>","description":"<p>Return true if there are no items in this Array</p>"},{"title":"AgentArray#first","link":"<a href=\"AgentArray.html#first\">first</a>","description":"<p>Return first item in this array. Returns undefined if empty.</p>"},{"title":"AgentArray#last","link":"<a href=\"AgentArray.html#last\">last</a>","description":"<p>Return last item in this array. Returns undefined if empty.</p>"},{"title":"AgentArray#atIndex","link":"<a href=\"AgentArray.html#atIndex\">atIndex</a>","description":"<p>Return at index. Returns undefined if empty.\nWrap the index to be within the array.</p>"},{"title":"AgentArray#all","link":"<a href=\"AgentArray.html#all\">all</a>","description":"<p>Return true if fcn(element) returns true for each element in this array.\nSame as Array.every, using NetLogo's name</p>"},{"title":"AgentArray#props","link":"<a href=\"AgentArray.html#props\">props</a>","description":"<p>Return array of property values from this array's objects.\nArray type is specified, defaults to AgentArray</p>"},{"title":"AgentArray#typedSample","link":"<a href=\"AgentArray.html#typedSample\">typedSample</a>","description":"<p>Creates an Object of Arrays, one Array per each property in obj.\nObj is key, arrayType pairs: x: Float32Array\nThis is advanced, used for web workers, very large data sets, and remote communication</p>"},{"title":"AgentArray#uniq","link":"<a href=\"AgentArray.html#uniq\">uniq</a>","description":"<p>Return new AgentArray of the unique values of this array</p>"},{"title":"AgentArray#forLoop","link":"<a href=\"AgentArray.html#forLoop\">forLoop</a>","description":"<p>Call fcn(agent, index, array) for each item in AgentArray.\nIndex &amp; array optional.\nArray assumed not mutable.\nNote: 5x+ faster than this.forEach(fcn)</p>"},{"title":"AgentArray#ask","link":"<a href=\"AgentArray.html#ask\">ask</a>","description":"<p>Call fcn(agent, [ i, AgentArray ]) for each agent in AgentArray.\nwhere i = agent's array index and AgentArray is this array\nArray can shrink. If it grows, will not visit beyond original length.\nIf it either shrinks or grows, it will console.log a message\n&quot;ask&quot; is NetLogo term.</p>"},{"title":"AgentArray#with","link":"<a href=\"AgentArray.html#with\">with</a>","description":"<p>Use: turtles.with(t =&gt; t.foo &gt; 20).ask(t =&gt; t.bar = true)</p>"},{"title":"AgentArray#clone","link":"<a href=\"AgentArray.html#clone\">clone</a>","description":"<p>Create copy of this AgentArray</p>"},{"title":"AgentArray#sortBy","link":"<a href=\"AgentArray.html#sortBy\">sortBy</a>","description":"<p>Return this AgentArray sorted by the reporter in ascending/descending order.\nIf reporter is a string, convert to a fcn returning that property.</p>"},{"title":"AgentList","link":"<a href=\"AgentList.html\">AgentList</a>"},{"title":"AgentList#inRect","link":"<a href=\"AgentList.html#inRect\">inRect</a>","description":"<p>Return all agents within rectangle from given agent.\ndx &amp; dy are (float) half width/height of rect</p>"},{"title":"AgentList#inRadius","link":"<a href=\"AgentList.html#inRadius\">inRadius</a>","description":"<p>Return all agents in AgentArray within radius from given agent.</p>"},{"title":"AgentList#inCone","link":"<a href=\"AgentList.html#inCone\">inCone</a>","description":"<p>As above, but also limited to the angle <code>coneAngle</code> around\nan <code>angle</code> from object <code>agent</code>. coneAngle and direction in radians.</p>"},{"title":"AgentSet.Symbol.species","link":"<a href=\"AgentSet.Symbol.html#.species\">species</a>","description":"<p>Magic to return AgentArrays rather than AgentSets\n<a href=\"https://goo.gl/Zsxwxd\">Symbol.species</a></p>"},{"title":"AgentSet","link":"<a href=\"AgentSet.html\">AgentSet</a>"},{"title":"AgentSet#protoMixin","link":"<a href=\"AgentSet.html#protoMixin\">protoMixin</a>","description":"<p>Add common variables to an Agent being added to this AgentSet.</p>\n<p>Each Agent has it's AgentSet and the Model instance.\nIt also has an id, set by the AgentSet's global ID.</p>\n<p>The Agent also has three methods added: setBreed, getBreed, isBreed.</p>"},{"title":"AgentSet#addAgent","link":"<a href=\"AgentSet.html#addAgent\">addAgent</a>","description":"<p>Add an Agent to this AgentSet.  Only used by factory methods.\nAdds the <code>id</code> property to Agent. Increment AgentSet <code>ID</code>.</p>"},{"title":"AgentSet#removeAgent","link":"<a href=\"AgentSet.html#removeAgent\">removeAgent</a>","description":"<p>Remove an Agent from this AgentSet</p>"},{"title":"AgentSet#setBreed","link":"<a href=\"AgentSet.html#setBreed\">setBreed</a>","description":"<p>Move an agent from its AgentSet/breed to be in this AgentSet/breed</p>"},{"title":"AgentSet#setDefault","link":"<a href=\"AgentSet.html#setDefault\">setDefault</a>","description":"<p>Set a default value shared by all Agents in this AgentSet</p>"},{"title":"AgentSet#getDefault","link":"<a href=\"AgentSet.html#getDefault\">getDefault</a>","description":"<p>Return a default, shared value</p>"},{"title":"AgentSet#newBreed","link":"<a href=\"AgentSet.html#newBreed\">newBreed</a>","description":"<p>Create a subarray of this AgentSet.\nExample: create a people breed of Turtles:</p>\n<p><code>people = turtles.newBreed('people')</code></p>"},{"title":"AgentSet#isBreedSet","link":"<a href=\"AgentSet.html#isBreedSet\">isBreedSet</a>"},{"title":"AgentSet#isBaseSet","link":"<a href=\"AgentSet.html#isBaseSet\">isBaseSet</a>"},{"title":"AgentSet#withBreed","link":"<a href=\"AgentSet.html#withBreed\">withBreed</a>","description":"<p>Return breeds in a subset of an AgentSet</p>\n<p>Ex: patches.inRect(5).withBreed(houses)</p>"},{"title":"AgentSet#clear","link":"<a href=\"AgentSet.html#clear\">clear</a>","description":"<p>Remove all Agents from this AgentSet using agent.die() for each agent.</p>"},{"title":"AgentSet#ask","link":"<a href=\"AgentSet.html#ask\">ask</a>","description":"<p>Call fcn(agent, index, array) for each item in AgentArray.\nIndex &amp; array optional. Overrides AgentArray's ask with\nadditional guards for modifications in AgentSet's array.</p>"},{"title":"Animator","link":"<a href=\"Animator.html\">Animator</a>","description":"<p>Sets parameters, then calls start().\nTo have the model not start immediately do:</p>\n<ul>\n<li>const anim = new Animator(&lt;args&gt;).stop()</li>\n</ul>"},{"title":"Animator#start","link":"<a href=\"Animator.html#start\">start</a>","description":"<p>Starts the model running</p>"},{"title":"Animator#stop","link":"<a href=\"Animator.html#stop\">stop</a>","description":"<p>Stops the model running</p>"},{"title":"Color","link":"<a href=\"Color.html\">Color</a>"},{"title":"Color.rgbaCssColor","link":"<a href=\"Color.html#.rgbaCssColor\">rgbaCssColor</a>","description":"<p>Convert 4 r,g,b,a ints in [0-255] (&quot;a&quot; defaulted to 255) to a\ncss color string.</p>"},{"title":"Color.hslCssColor","link":"<a href=\"Color.html#.hslCssColor\">hslCssColor</a>","description":"<p>Convert 4 ints, h,s,l,a, h in [0-360], s,l in [0-100]% a in [0-255] to a\ncss color string.\nSee <a href=\"https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/hsl\">hsl()</a>.</p>\n<p>NOTE: h=0 and h=360 are the same, use h in 0-359 for unique colors.</p>"},{"title":"Color.hexCssColor","link":"<a href=\"Color.html#.hexCssColor\">hexCssColor</a>","description":"<p>Return a html/css hex color string for an r,g,b opaque color (a=255).\nHex strings do not support alpha.\nBoth #nnn and #nnnnnn forms supported.\nDefault is to check for the short hex form.</p>"},{"title":"ColorMap","link":"<a href=\"ColorMap.html\">ColorMap</a>"},{"title":"ColorMap.gradientImageData","link":"<a href=\"ColorMap.html#.gradientImageData\">gradientImageData</a>","description":"<p>Ask the browser to use the canvas gradient feature\nto create nColors given the gradient color stops and locs.\nSee Mozilla <a href=\"https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/createLinearGradient\">Gradient Doc</a>,</p>\n<p>This is a powerful browser feature, can be\nused to create all the MatLab colormaps.</p>\n<p>Stops are css strings.\nLocs are floats from 0-1, default is equally spaced.</p>"},{"title":"ColorMap.arrayToTypedColors","link":"<a href=\"ColorMap.html#.arrayToTypedColors\">arrayToTypedColors</a>","description":"<p>Convert an Array of rgba color arrays into Array of 4 element typedColors.</p>"},{"title":"DataSet.emptyDataSet","link":"<a href=\"DataSet.html#.emptyDataSet\">emptyDataSet</a>","description":"<p>Factory method returning an empty dataset of given\nwidth, height, dataType</p>"},{"title":"DataSet","link":"<a href=\"DataSet.html\">DataSet</a>","description":"<p>Creates an instance of DataSet.\nChecks data is right size, throws an error if not.</p>"},{"title":"GUI","link":"<a href=\"GUI.html\">GUI</a>"},{"title":"GeoDataSet","link":"<a href=\"GeoDataSet.html\">GeoDataSet</a>","description":"<p>Mostly the same a DataSet except it has bounds.\nA few methods, like slope, dzdx, dzdy, and aspect are different because they take into account the size of the bbox in meters</p>"},{"title":"GeoDataSet.viewFromDataSet","link":"<a href=\"GeoDataSet.html#.viewFromDataSet\">viewFromDataSet</a>","description":"<p>Create a view of a Dataset including the bounds.</p>"},{"title":"GeoDataSet#sampleGeo","link":"<a href=\"GeoDataSet.html#sampleGeo\">sampleGeo</a>","description":"<p>Samples a pixel at a given latitude and longitude</p>"},{"title":"GeoDataSet#dzdx","link":"<a href=\"GeoDataSet.html#dzdx\">dzdx</a>","description":"<p>Change in z value in terms of x. Finite difference.</p>"},{"title":"GeoDataSet#dzdy","link":"<a href=\"GeoDataSet.html#dzdy\">dzdy</a>","description":"<p>Change in z value in terms of y. Finite difference.</p>"},{"title":"GeoDataSet#slopeAndAspect","link":"<a href=\"GeoDataSet.html#slopeAndAspect\">slopeAndAspect</a>","description":"<p>Create dzdx, dzdy, slope, and aspect in one function.</p>"},{"title":"GeoDataSet#aspect","link":"<a href=\"GeoDataSet.html#aspect\">aspect</a>","description":"<p>The aspect of each pixel in radians.</p>"},{"title":"GeoDataSet#slope","link":"<a href=\"GeoDataSet.html#slope\">slope</a>","description":"<p>Returns the slope in radians</p>"},{"title":"Keyboard","link":"<a href=\"Keyboard.html\">Keyboard</a>","description":"<p>Creates an instance of Keyboard.\nThe objects in the keyTemplates look like:</p>"},{"title":"Keyboard#start","link":"<a href=\"Keyboard.html#start\">start</a>","description":"<p>Start the keyboard running</p>"},{"title":"Keyboard#stop","link":"<a href=\"Keyboard.html#stop\">stop</a>","description":"<p>Stop the keyboard running</p>"},{"title":"Link","link":"<a href=\"Link.html\">Link</a>"},{"title":"Links","link":"<a href=\"Links.html\">Links</a>"},{"title":"Model","link":"<a href=\"Model.html\">Model</a>","description":"<p>Creates an instance of Model.\nThe worldOptions define the coordinate system for this model\nThe  {@link World} options sets xMin, xMax, yMin, yMax\nand when using 3D: zMin, zMax</p>\n<p>Fine point: Can also be an instance of World or GeoWorld</p>"},{"title":"Model#initModel","link":"<a href=\"Model.html#initModel\">initModel</a>","description":"<p>Initialize model to initial state w/ new Patches, Turtles, Links.\nThe worldOptions will default to initial values but can be\nchanged by modeler.</p>"},{"title":"Model#reset","link":"<a href=\"Model.html#reset\">reset</a>","description":"<p>Reset the model by clearing the turtles, setting ID &amp; ticks to 0\nand calling setup()</p>"},{"title":"Model#tick","link":"<a href=\"Model.html#tick\">tick</a>","description":"<p>Increment the tick cound. Not needed if autoTick true, the default</p>"},{"title":"Model#startup","link":"<a href=\"Model.html#startup\">startup</a>","description":"<p>An abstract method to perform one-time initialization.\nSubclasses provide their versions of this to import data.</p>"},{"title":"Model#setup","link":"<a href=\"Model.html#setup\">setup</a>","description":"<p>An abstract method for initializing the model\nSubclasses provide their version of this to initialice the model</p>"},{"title":"Model#step","link":"<a href=\"Model.html#step\">step</a>","description":"<p>An abstract method to run the model one step.</p>"},{"title":"Model#patchBreeds","link":"<a href=\"Model.html#patchBreeds\">patchBreeds</a>","description":"<p>Create breeds (sub-arrays) of Patches. Used in the Exit model:</p>\n<ul>\n<li>this.patchBreeds('exits inside wall')</li>\n</ul>"},{"title":"Model#turtleBreeds","link":"<a href=\"Model.html#turtleBreeds\">turtleBreeds</a>","description":"<p>Create breeds (sub-arrays) of Turtles. Used in Wallfollower model:</p>\n<ul>\n<li>this.turtleBreeds('lefty righty')</li>\n</ul>"},{"title":"Model#linkBreeds","link":"<a href=\"Model.html#linkBreeds\">linkBreeds</a>","description":"<p>Create breeds (sub-arrays) of Links. Used in Roads model:</p>\n<ul>\n<li>this.linkBreeds('trips')</li>\n</ul>"},{"title":"Model3D","link":"<a href=\"Model3D.html\">Model3D</a>"},{"title":"Mouse","link":"<a href=\"Mouse.html\">Mouse</a>","description":"<p>Create and start mouse obj, args: a model, and a callback method.</p>"},{"title":"Mouse#start","link":"<a href=\"Mouse.html#start\">start</a>","description":"<p>Start the mouseListeners.</p>"},{"title":"Mouse#stop","link":"<a href=\"Mouse.html#stop\">stop</a>","description":"<p>Start the mouseListeners.</p>"},{"title":"Patch","link":"<a href=\"Patch.html\">Patch</a>"},{"title":"Patch#isOnEdge","link":"<a href=\"Patch.html#isOnEdge\">isOnEdge</a>","description":"<p>Return whether or not this patch is on the edge of the atches.</p>"},{"title":"Patch#neighbors","link":"<a href=\"Patch.html#neighbors\">neighbors</a>","description":"<p>Return an array of this patch's 8\n<a href=\"https://en.wikipedia.org/wiki/Moore_neighborhood\">Moore neighbors</a>.</p>"},{"title":"Patch#neighbors4","link":"<a href=\"Patch.html#neighbors4\">neighbors4</a>","description":"<p>Return an array of this patch's 4\n<a href=\"https://en.wikipedia.org/wiki/Von_Neumann_neighborhood\">Von Neumann neighbors</a>\n(north, south, east, west).</p>"},{"title":"Patch#turtlesHere","link":"<a href=\"Patch.html#turtlesHere\">turtlesHere</a>","description":"<p>Return an Array of the turtles on this patch.</p>"},{"title":"Patch#breedsHere","link":"<a href=\"Patch.html#breedsHere\">breedsHere</a>","description":"<p>Returns an Array of the particular breed on this patch.</p>"},{"title":"Patches","link":"<a href=\"Patches.html\">Patches</a>","description":"<p>Creates an instance of Patches.</p>"},{"title":"Patches#neighbors","link":"<a href=\"Patches.html#neighbors\">neighbors</a>","description":"<p>Return the 8 patch\n<a href=\"https://en.wikipedia.org/wiki/Moore_neighborhood\">&quot;Moore&quot; neighbors</a>\nof the given patch.\nWill be less than 8 on the edge of the patches</p>"},{"title":"Patches#neighbors4","link":"<a href=\"Patches.html#neighbors4\">neighbors4</a>","description":"<p>Return the 4 patch\n<a href=\"https://en.wikipedia.org/wiki/Von_Neumann_neighborhood\">&quot;Van Neumann&quot; neighbors</a>\nof the given patch.\nWill be less than 4 on the edge of the patches</p>"},{"title":"Patches#importDataSet","link":"<a href=\"Patches.html#importDataSet\">importDataSet</a>","description":"<p>Assign a DataSet's values into the patches as the given property name</p>"},{"title":"Patches#exportDataSet","link":"<a href=\"Patches.html#exportDataSet\">exportDataSet</a>","description":"<p>Extract a property from each Patch as a DataSet</p>"},{"title":"Patches#patchIndex","link":"<a href=\"Patches.html#patchIndex\">patchIndex</a>","description":"<p>Return index into Patches given valid x,y integers</p>"},{"title":"RGBDataSet.rgbToInt24","link":"<a href=\"RGBDataSet.html#.rgbToInt24\">rgbToInt24</a>","description":"<p>Convert an r,g,b triple into an integer</p>"},{"title":"RGBDataSet.rgbScaleFunction","link":"<a href=\"RGBDataSet.html#.rgbScaleFunction\">rgbScaleFunction</a>","description":"<p>As above with min/scale</p>"},{"title":"RGBDataSet","link":"<a href=\"RGBDataSet.html\">RGBDataSet</a>","description":"<p>Create a {@link DataSet} from image pixel data</p>"},{"title":"ThreeDraw","link":"<a href=\"ThreeDraw.html\">ThreeDraw</a>"},{"title":"Turtle","link":"<a href=\"Turtle.html\">Turtle</a>"},{"title":"Turtle#die","link":"<a href=\"Turtle.html#die\">die</a>","description":"<p>Ask this turtle to &quot;die&quot;</p>\n<ul>\n<li>Removes itself from the Turtles array</li>\n<li>Removes itself from any Turtles breeds</li>\n<li>Removes all my Links if any exist</li>\n<li>Removes me from my Patch list of turtles on it</li>\n<li>Set it's id to -1 to indicate to others it's gone</li>\n</ul>"},{"title":"Turtle#hatch","link":"<a href=\"Turtle.html#hatch\">hatch</a>","description":"<p>Factory method: create num new turtles at this turtle's location.</p>"},{"title":"Turtle#links","link":"<a href=\"Turtle.html#links\">links</a>","description":"<p>Returns an array of the Links that have this Turtle as one of the end points</p>"},{"title":"Turtle#patch","link":"<a href=\"Turtle.html#patch\">patch</a>","description":"<p>Return the patch this Turtle is on. Return null if Turtle off-world.</p>"},{"title":"Turtle#heading","link":"<a href=\"Turtle.html#heading\">heading</a>","description":"<p>Return this Turtle's heading</p>"},{"title":"Turtle#heading","link":"<a href=\"Turtle.html#heading\">heading</a>","description":"<p>Sets this Turtle's heading</p>"},{"title":"Turtle#subtractHeading","link":"<a href=\"Turtle.html#subtractHeading\">subtractHeading</a>","description":"<p>Computes the difference between the my heading and the given heading,\nthe smallest angle by which t could be rotated to produce heading.</p>"},{"title":"Turtle#setxy","link":"<a href=\"Turtle.html#setxy\">setxy</a>","description":"<p>Set Turtles x, y position. If z given, override default z of 0.</p>"},{"title":"Turtle#handleEdge","link":"<a href=\"Turtle.html#handleEdge\">handleEdge</a>","description":"<p>Handle turtle x,y,z if turtle off-world.\nUses the Turtle's atEdge property to determine how to manage the Turtle.\nDefaults to 'wrap', wrapping the x,y,z to the opposite edge.</p>\n<p>atEdge can be:</p>\n<ul>\n<li>'die'</li>\n<li>'wrap'</li>\n<li>'bounce'</li>\n<li>'clamp'</li>\n<li>'random'</li>\n<li>a function called with the Turtle as it's argument</li>\n</ul>"},{"title":"Turtle#moveTo","link":"<a href=\"Turtle.html#moveTo\">moveTo</a>","description":"<p>Place the turtle at the given patch/turtle location</p>"},{"title":"Turtle#forward","link":"<a href=\"Turtle.html#forward\">forward</a>","description":"<p>Move forward, along the Turtle's heading d units in Patch coordinates</p>"},{"title":"Turtle#rotate","link":"<a href=\"Turtle.html#rotate\">rotate</a>","description":"<p>Change Turtle's heading by angle</p>"},{"title":"Turtle#right","link":"<a href=\"Turtle.html#right\">right</a>","description":"<p>Turn Turtle right by angle</p>"},{"title":"Turtle#left","link":"<a href=\"Turtle.html#left\">left</a>","description":"<p>Turn Turtle left by angle</p>"},{"title":"Turtle#face","link":"<a href=\"Turtle.html#face\">face</a>","description":"<p>Turn turtle so at to be facing the given Turtle or Patch</p>"},{"title":"Turtle#facexy","link":"<a href=\"Turtle.html#facexy\">facexy</a>","description":"<p>Turn turtle so at to be facing the given x, y patch coordinate</p>"},{"title":"Turtle#patchAhead","link":"<a href=\"Turtle.html#patchAhead\">patchAhead</a>","description":"<p>Return the patch ahead of this turtle by distance.\nReturn undefined if the distance puts the patch off-world</p>"},{"title":"Turtle#patchRightAndAhead","link":"<a href=\"Turtle.html#patchRightAndAhead\">patchRightAndAhead</a>","description":"<p>Return the patch angle to the right and ahead by distance\nReturn undefined if the distance puts the patch off-world</p>"},{"title":"Turtle#patchLeftAndAhead","link":"<a href=\"Turtle.html#patchLeftAndAhead\">patchLeftAndAhead</a>","description":"<p>Return the patch angle to the left and ahead by distance\nReturn undefined if the distance puts the patch off-world</p>"},{"title":"Turtle#canMove","link":"<a href=\"Turtle.html#canMove\">canMove</a>","description":"<p>Can I move forward by distance and not be off-world?</p>"},{"title":"Turtle#distanceXY","link":"<a href=\"Turtle.html#distanceXY\">distanceXY</a>","description":"<p>Distance from this turtle to x, y\nNo off-world test done.</p>\n<p>2.5D: use z too if both z &amp; this.z exist.</p>"},{"title":"Turtle#distance","link":"<a href=\"Turtle.html#distance\">distance</a>","description":"<p>Return distance from me to the Patch or Turtle</p>\n<p>2.5D: use z too if both agent.z and this.z exist</p>"},{"title":"Turtle#dx","link":"<a href=\"Turtle.html#dx\">dx</a>","description":"<p>A property for the x-increment if the turtle were to take one step\nforward in its current heading.</p>"},{"title":"Turtle#dy","link":"<a href=\"Turtle.html#dy\">dy</a>","description":"<p>A property for the y-increment if the turtle were to take one step\nforward in its current heading.</p>"},{"title":"Turtle#towards","link":"<a href=\"Turtle.html#towards\">towards</a>","description":"<p>Return the heading towards the Patch or Turtle given.</p>"},{"title":"Turtle#towardsXY","link":"<a href=\"Turtle.html#towardsXY\">towardsXY</a>","description":"<p>Return the heading towards the given x,y coordinates.</p>"},{"title":"Turtle#patchAt","link":"<a href=\"Turtle.html#patchAt\">patchAt</a>","description":"<p>The patch at dx, dy from my current position.\nReturn undefined if off-world</p>"},{"title":"Turtle#patchAtHeadingAndDistance","link":"<a href=\"Turtle.html#patchAtHeadingAndDistance\">patchAtHeadingAndDistance</a>","description":"<p>Return the patch at the absolute, not relative heading and distance\nfrom this turtle. Return undefined if off-world</p>\n<p>Use the Left/Right versions for relative heading.</p>"},{"title":"Turtle#otherEnd","link":"<a href=\"Turtle.html#otherEnd\">otherEnd</a>","description":"<p>Return the other end of this link from me. Link must include me!</p>\n<p>See links property for all my links, if any.</p>"},{"title":"Turtle#linkNeighbors","link":"<a href=\"Turtle.html#linkNeighbors\">linkNeighbors</a>","description":"<p>Return all turtles linked to me. Basically me.otherEnd of all my links.</p>"},{"title":"Turtle#isLinkNeighbor","link":"<a href=\"Turtle.html#isLinkNeighbor\">isLinkNeighbor</a>","description":"<p>Is the given Turtle linked to me?</p>"},{"title":"Turtle3D","link":"<a href=\"Turtle3D.html\">Turtle3D</a>"},{"title":"Turtle3D#reset","link":"<a href=\"Turtle3D.html#reset\">reset</a>","description":"<p>Resets this turtle's position, rotation and heading all to 0's</p>"},{"title":"Turtle3D#setxyz","link":"<a href=\"Turtle3D.html#setxyz\">setxyz</a>","description":"<p>Set's this turtle's 3D, x y z, position</p>"},{"title":"Turtles","link":"<a href=\"Turtles.html\">Turtles</a>"},{"title":"Turtles#createOne","link":"<a href=\"Turtles.html#createOne\">createOne</a>","description":"<p>Create a single Turtle, adding it to this Turtles array.\nThe init function is called to initialize the new Turtle.\nReturns the new Turtle.</p>"},{"title":"Turtles#create","link":"<a href=\"Turtles.html#create\">create</a>","description":"<p>Create num Turtles, adding them to this Turtles array.\nThe init function is called to initialize each new Turtle.\nReturns an array of the new Turtles</p>"},{"title":"Turtles#closestTurtle","link":"<a href=\"Turtles.html#closestTurtle\">closestTurtle</a>","description":"<p>Return the closest turtle within radius distance of x,y.\nReturn null if no turtles within radius.\nIf I am a breed, return the closest fellow breed.</p>"},{"title":"Turtles#inPatches","link":"<a href=\"Turtles.html#inPatches\">inPatches</a>","description":"<p>Return an array of Turtles within the array of patchs.\nIf I am a breed, return only the Turtles of my breed.</p>"},{"title":"Turtles#inPatchRect","link":"<a href=\"Turtles.html#inPatchRect\">inPatchRect</a>","description":"<p>Return an array of Turtles within the dx,dy patchRect centered on turtle.\nIf I am a breed, return only the Turtles of my breed.</p>"},{"title":"Turtles#inPatchRectXY","link":"<a href=\"Turtles.html#inPatchRectXY\">inPatchRectXY</a>","description":"<p>Return an array of Turtles within the dx,dy patchRect centered on x,y.\nIf I am a breed, return only the Turtles of my breed.</p>"},{"title":"Turtles#inRadius","link":"<a href=\"Turtles.html#inRadius\">inRadius</a>","description":"<p>Return all the Turtles within radius of me.\nIf I am a breed, return only fellow breeds.</p>"},{"title":"Turtles#inCone","link":"<a href=\"Turtles.html#inCone\">inCone</a>","description":"<p>Return all the Turtles with a cone of me.\nThe cone is coneAngle wide, centered on my heading.\nIf I am a breed, return only fellow breeds.</p>"},{"title":"Turtles#layoutCircle","link":"<a href=\"Turtles.html#layoutCircle\">layoutCircle</a>","description":"<p>Position the Turtles in this breed in an equally spaced circle\nof the given center and radius.\nThe turtle headings will be away from the center.</p>"},{"title":"TwoDraw","link":"<a href=\"TwoDraw.html\">TwoDraw</a>"},{"title":"World.defaultOptions","link":"<a href=\"World.html#.defaultOptions\">defaultOptions</a>","description":"<p>Return a default options object, origin at center.</p>"},{"title":"World.defaultWorld","link":"<a href=\"World.html#.defaultWorld\">defaultWorld</a>","description":"<p>Factory to create a default World instance.</p>"},{"title":"World","link":"<a href=\"World.html\">World</a>","description":"<p>Create a new World object given an Object with optional\nminX, maxX, minY, maxY, minZ, maxZ overriding class properties.</p>"},{"title":"World#getOptions","link":"<a href=\"World.html#getOptions\">getOptions</a>","description":"<p>Return the options (minX, maxX, ..) used to create this world.</p>"},{"title":"World#randomPoint","link":"<a href=\"World.html#randomPoint\">randomPoint</a>","description":"<p>Return a random 2D float point within the World</p>"},{"title":"World#random3DPoint","link":"<a href=\"World.html#random3DPoint\">random3DPoint</a>","description":"<p>Return a random 3D point within the World</p>"},{"title":"World#randomPatchPoint","link":"<a href=\"World.html#randomPatchPoint\">randomPatchPoint</a>","description":"<p>Return a random Patch 2D integer point</p>"},{"title":"World#isOnWorld","link":"<a href=\"World.html#isOnWorld\">isOnWorld</a>","description":"<p>Given x,y,z values return true if within the world</p>"},{"title":"World#bboxTransform","link":"<a href=\"World.html#bboxTransform\">bboxTransform</a>","description":"<p>Return an instance of a bounding box 2D transform.\nIt linearly interpolates between the given minX, minY, maxX, maxY,\nand the world's values of the same properties.</p>\n<p>The parameters are in the popular geojson order: west, south, east, north</p>\n<p>Useful for Canvas (pixel) top-left transforms and geojson transforms.</p>\n<p>Note minX etc NOT the world's but of the coord sys we want to use.</p>"},{"title":"BBoxTransform#toWorld","link":"<a href=\"BBoxTransform.html#toWorld\">toWorld</a>","description":"<p>Convert from bbox point to world point</p>"},{"title":"BBoxTransform#toBBox","link":"<a href=\"BBoxTransform.html#toBBox\">toBBox</a>","description":"<p>Convert from world point to bbox point</p>"},{"title":"module:src/geojson","link":"<a href=\"module-src_geojson.html\">src/geojson</a>"},{"title":"module:src/geojson.flattenMultiLineStrings","link":"<a href=\"module-src_geojson.html#.flattenMultiLineStrings\">flattenMultiLineStrings</a>","description":"<p>Flatten MultiLineStrings to single LineStrings features.</p>"},{"title":"module:src/geojson.lineStringsToLinks","link":"<a href=\"module-src_geojson.html#.lineStringsToLinks\">lineStringsToLinks</a>"},{"title":"module:src/gis","link":"<a href=\"module-src_gis.html\">src/gis</a>"},{"title":"module:src/gis.latlon","link":"<a href=\"module-src_gis.html#.latlon\">latlon</a>","description":"<p>Current gis and geoJson uses [lon, lat] coords, i.e. x,y.</p>\n<ul>\n<li>This converts these to [lat, lon], i.e. y,x as used by leaflet</li>\n<li>If Array contains multiple [lon, lat] subarrays, convert them all</li>\n</ul>"},{"title":"module:src/utils","link":"<a href=\"module-src_utils.html\">src/utils</a>"},{"title":"module:src/utils.pause","link":"<a href=\"module-src_utils.html#.pause\">pause</a>","description":"<p>Return promise for pause of ms.\nUse: await pause(ms)</p>"},{"title":"module:src/utils.timeoutLoop","link":"<a href=\"module-src_utils.html#.timeoutLoop\">timeoutLoop</a>","description":"<p>Use pause for an animation loop.\nCalls the fcn each step\nStops after steps calls, negative means run forever</p>"},{"title":"module:src/utils.randomInt","link":"<a href=\"module-src_utils.html#.randomInt\">randomInt</a>","description":"<p>Returns ramdp, int in [0, max), equal or grater than 0, less than max</p>"},{"title":"module:src/utils.randomInt2","link":"<a href=\"module-src_utils.html#.randomInt2\">randomInt2</a>","description":"<p>Returns an int in [min, max), equal or grater than min, less than max</p>"},{"title":"module:src/utils.randomFloat","link":"<a href=\"module-src_utils.html#.randomFloat\">randomFloat</a>","description":"<p>Returns a random float in [0, max)</p>"},{"title":"module:src/utils.randomFloat2","link":"<a href=\"module-src_utils.html#.randomFloat2\">randomFloat2</a>","description":"<p>Returns a random float in [min, max)</p>"},{"title":"module:src/utils.randomCentered","link":"<a href=\"module-src_utils.html#.randomCentered\">randomCentered</a>","description":"<p>Return a random float centered around r, in [-r/2, r/2)</p>"},{"title":"module:src/utils.randomSeed","link":"<a href=\"module-src_utils.html#.randomSeed\">randomSeed</a>","description":"<p>Install a seeded random generator as Math.random\nUses an optimized version of the Park-Miller PRNG.</p>\n<p>Math.random will return a sequence of &quot;random&quot; numbers in a known\nsequence. Useful for testing to see if the same results\noccur in multiple runs of a model with the same parameters.</p>"},{"title":"module:src/utils.precision","link":"<a href=\"module-src_utils.html#.precision\">precision</a>","description":"<p>Round a number to be of a given decimal precision.\nIf the number is an array, round each item in the array</p>"},{"title":"module:src/utils.mod","link":"<a href=\"module-src_utils.html#.mod\">mod</a>","description":"<p>A true modulus function, differing from the % remainder operation.</p>"},{"title":"module:src/utils.clamp","link":"<a href=\"module-src_utils.html#.clamp\">clamp</a>","description":"<p>Clamp a float to be between [min, max).</p>"},{"title":"module:src/utils.degToRad","link":"<a href=\"module-src_utils.html#.degToRad\">degToRad</a>","description":"<p>Convert from degrees to radians</p>"},{"title":"module:src/utils.radToDeg","link":"<a href=\"module-src_utils.html#.radToDeg\">radToDeg</a>","description":"<p>Convert from radians to degrees</p>"},{"title":"module:src/utils.radToHeading","link":"<a href=\"module-src_utils.html#.radToHeading\">radToHeading</a>","description":"<p>Convert from radians to heading</p>\n<p>Heading is 0-up (y-axis), clockwise angle measured in degrees.\nRadians is euclidean: 0-right (x-axis), counterclockwise in radians</p>"},{"title":"module:src/utils.headingToRad","link":"<a href=\"module-src_utils.html#.headingToRad\">headingToRad</a>","description":"<p>Convert from heading to radians</p>"},{"title":"module:src/utils.subtractHeadings","link":"<a href=\"module-src_utils.html#.subtractHeadings\">subtractHeadings</a>","description":"<p>Subtract two headings, returning the smaller difference.</p>\n<p>Computes the difference between the given headings, that is,\nthe number of degrees in the smallest angle by which heading2\ncould be rotated to produce heading1\nSee NetLogo's <a href=\"http://goo.gl/CjoHuV\">subtract-headings</a> for explanation</p>"},{"title":"module:src/utils.sampleModel","link":"<a href=\"module-src_utils.html#.sampleModel\">sampleModel</a>","description":"<p>Return an object with samples of the models components.\nUseful for testing Models without needing a View, just data.</p>"},{"title":"module:src/utils.repeat","link":"<a href=\"module-src_utils.html#.repeat\">repeat</a>","description":"<p>Repeats the function f(i, a) i in 0, n-1.\na is an optional array, default a new empty Array\nreturns a, only needed if f() places data in a</p>"},{"title":"module:src/utils.oneOf","link":"<a href=\"module-src_utils.html#.oneOf\">oneOf</a>","description":"<p>Return random item from an array</p>"},{"title":"module:src/utils.imagePromise","link":"<a href=\"module-src_utils.html#.imagePromise\">imagePromise</a>","description":"<p>Return a Promise for getting an image.\nSee https://deno.land/x/skia_canvas/mod.ts?s=Image for Image in deno</p>\n<p>use: imagePromise('./path/to/img').then(img =&gt; imageFcn(img))\nor: await imagePromise('./path/to/img')</p>"},{"title":"module:src/utils.createCanvas","link":"<a href=\"module-src_utils.html#.createCanvas\">createCanvas</a>","description":"<p>Create a blank 2D canvas of a given width/height.</p>"},{"title":"module:src/utils.createCtx","link":"<a href=\"module-src_utils.html#.createCtx\">createCtx</a>","description":"<p>As above, but returing the 2D context object instead of the canvas.\nNote ctx.canvas is the canvas for the ctx, and can be use as an image.</p>"},{"title":"module:src/utils.setCtxImage","link":"<a href=\"module-src_utils.html#.setCtxImage\">setCtxImage</a>","description":"<p>Fill this context with the given image, resizing it to img size if needed.</p>"},{"title":"module:src/utils.toWindow","link":"<a href=\"module-src_utils.html#.toWindow\">toWindow</a>","description":"<p>Merge a module's obj key/val pairs into to the global/window namespace.\nPrimary use is to make console logging easier when debugging\nmodules.</p>"}]}