generative-toolbelt.utils

A handy set of utility functions.

h

(h)(h n)
Gets the Height of the canvas.
`n` is an optional float value to multiply to the canvas height.

in-canvas?

(in-canvas? point)
Checks if a Point is inside the canvas or not.
Returns a boolean.

margin-range

(margin-range A B N MARGIN)
Returns a sequence of `N` element going from `A` to `B`.
`MARGIN` defines a certain margin from A and B.

n-times

(n-times n f)
Call a certain function N times on its output.

not-nil?

(not-nil? something)
Shortcut for (not (nil? x))
Returns a boolean.

odds

(odds value)
Returns true if the random is inside the value range (0-1)

print-to-system-out

(print-to-system-out s)
Prints to the original System/out stream.
Useful when working with multiple tools and
you want to output always on the repl console.

process-draw-options

(process-draw-options drawOpt)
Process a drawing options dictionary.

r-float

(r-float low high)
Get a random float number between two values.

r-gaussian

(r-gaussian)(r-gaussian center)(r-gaussian center ampl)
Returns a random number from a gaussian distribution.
`center` can be changed to define a custom mean.
`ampl` can be changed to define the amplitude of the distribution.

r-gaussian-abs

(r-gaussian-abs)(r-gaussian-abs center)(r-gaussian-abs center ampl)
Returns a random number from a positive half gaussian.
See r-gaussian for more info.

r-int

(r-int high)(r-int low high)
Gets a random int number between two values (Exclusive).

r-normal

(r-normal)(r-normal to)(r-normal from to)
Returns a random number from a normal distribution.
defaults return a float from 0 to 1.
`to` can be defined to get a random float from 0 to `to` (Exclusive).
`from` can be defined to get a random float from `from` (inclusive) to `to` (exclusive).

r-normal-int

(r-normal-int to)(r-normal-int from to)
Returns a random INTEGER number from a normal distribution.
See r-normal for more info.

r-seed

(r-seed seed)
Sets the seed for the random functions.

replace-first

(replace-first SEQ NEW)
Returns a new sequence from `SEQ` with the first element replaced with `NEW`.

replace-first-and-last

(replace-first-and-last SEQ NEWF NEWL)
Returns a new sequence from `SEQ` with the first and last element replaced with `NEWF` and `NEWL`.

replace-last

(replace-last SEQ NEW)
Returns a new sequence from `SEQ` with the last element replaced with `NEW`.

replace-nth-seq

(replace-nth-seq s ele ind)

IMPROVE/CONTROL Replace the nth element from a sequence.

replace-pos-seq

(replace-pos-seq s ele position)

IMPROVE/CONTROL Replace an element inside a sequence. position is a 0-1 float that indicates the relative position of the element to replace.

reset-blend-mode

(reset-blend-mode)
Resets the blend mode to default.

reset-draw-options

(reset-draw-options)
Resets the drawing options to default values.

seq-to-vector

(seq-to-vector s)

IMPROVE/CONTROL Converts a Sequence to a Vector.

vector-to-seq

(vector-to-seq v)

IMPROVE/CONTROL Converts a Vector to a Sequence.

w

(w)(w n)
Gets the Width of the canvas.
`n` is an optional float value to multiply to the canvas width.