   the lifespan of the program). The resulting value will always be
   between 0.0 and 1.0. Processing can compute 1D, 2D and 3D noise,
   depending on the number of coordinates given. The noise value can be
-  animated by moving through the noise space as demonstrated in the
-  example above. The 2nd and 3rd dimension can also be interpreted as
-  time.
+  animated by moving through the noise space and the 2nd and 3rd
+  dimensions can also be interpreted as time.
 
   The actual noise is structured similar to an audio signal, in
   respect to the function's use of frequencies. Similar to the concept

(defn reverse-array [arr] (PApplet/reverse arr))

(defn rotate
  ([angle] (.rotate *applet* (float angle)))
  ([angle vx vy vz] (.rotate *applet* (float angle)
                             (float vx) (float vy) (float vz))))

(defn rotate-x [angle] (.rotateX *applet* (float angle)))

(defn rotate-y [angle] (.rotateY *applet* (float angle)))

(defn rotate-z [angle] (.rotateZ *applet* (float angle)))

(defn round [what] (PApplet/round (float what)))


(def tint tint-float)

(defn translate
  "Specifies an amount to displace objects within the display
  window. The x parameter specifies left/right translation, the y
  parameter specifies up/down translation, and the z parameter
  specifies translations toward/away from the screen.  Transformations
  apply to everything that happens after and subsequent calls to the
  function accumulates the effect. For example, calling (translate 50
  0) and then (translate 20,h 0) is the same as (translate 70, 0). If
  translate is called within draw, the transformation is reset when
  the loop begins again. This function can be further controlled by
  the push-matrix and pop-matrix."
  ([v] (apply translate v))
  ([tx ty] (.translate *applet* (float tx) (float ty)))
  ([tx ty tz] (.translate *applet* (float tx) (float ty) (float tz))))
