anchor.diff:                                 (world->view :mat4)
                                  (proj :mat4)
                                  (point-size :float)
  +                               (point-color :vec4)
                                  ;;
                                  (min :float)
                                  (by :float))
  
positive.code:                                 (world->view :mat4)
                                  (proj :mat4)
                                  (point-size :float)
                                  ;;
                                  (x-min :float)
                                  (x-max :float)
                                  (y-min :float)
                                  (y-max :float)
                                  (by :float))
    (with-slots (position texture) vert
      (let* ((id (* (float gl-instance-id) by))
             (x-range (- x-max x-min))
             (x (mod id x-range))
             (rem (/ id x-range))
             (y-range (- y-max y-min))
             (y (mod rem y-range))
             (input (vec2 x y))
             (func-result (funcall fn input))
             (world-pos (v! (* input 2 point-size) func-result 1.0))
             (view-pos (+ (* world->view world-pos)
                          (vec4 (* position point-size) 0)))
             (clip-pos (* proj view-pos)))
        (values
         clip-pos
         texture))))
  
  (defmethod vert-transform-for ((kind (eql :height)))
    'height-vert-transform)
  
  (defmethod args-for ((kind (eql :height)))
    '((x-min 0f0 :float (float x-min 0f0))
      (x-max 1f0 :float (float x-max 0f0))
      (y-min 0f0 :float (float y-min 0f0))
      (y-max 1f0 :float (float y-max 0f0))
      (by 0.001f0 :float (float by 0f0))))
  
  (defmethod instance-count-for ((kind (eql :height)))
    `(floor (/ (* (- x-max x-min)
                  (- y-max y-min))
               by)))
  
  (defmethod wrap-in-func-for ((kind (eql :height)) var body)
    `(graph-func ((,var :vec2)) (the :float (progn ,@body))))
  
  ;;------------------------------------------------------------
  
  
negative.code:            (clip-pos (* proj view-pos)))
        (values
         clip-pos
         texture
         point-color))))
  
  (defmethod vert-transform-for ((kind (eql :range)))
    'range-vert-transform)
  