;;-*-Lisp-*- (in-package goal) ;; definition of type curve (deftype curve (structure) ((cverts (inline-array vector)) (num-cverts int32) (knots (pointer float)) (num-knots int32) (length float) ) ) ;; definition for method 3 of type curve (defmethod inspect ((this curve)) (when (not this) (set! this this) (goto cfg-4) ) (format #t "[~8x] ~A~%" this 'curve) (format #t "~1Tcverts: #x~X~%" (-> this cverts)) (format #t "~1Tnum-cverts: ~D~%" (-> this num-cverts)) (format #t "~1Tknots: #x~X~%" (-> this knots)) (format #t "~1Tnum-knots: ~D~%" (-> this num-knots)) (format #t "~1Tlength: ~f~%" (-> this length)) (label cfg-4) this ) ;; definition of type line-intersection-val (deftype line-intersection-val (structure) ((tt0 float) (tt1 float) ) ) ;; definition for method 3 of type line-intersection-val (defmethod inspect ((this line-intersection-val)) (when (not this) (set! this this) (goto cfg-4) ) (format #t "[~8x] ~A~%" this 'line-intersection-val) (format #t "~1Ttt0: ~f~%" (-> this tt0)) (format #t "~1Ttt1: ~f~%" (-> this tt1)) (label cfg-4) this ) ;; definition of type border-plane (deftype border-plane (basic) ((name symbol) (action basic) (slot int8) (trans vector :inline) (normal vector :inline) ) (:methods (debug-draw (_type_) int) (point-past-plane? (_type_ vector) symbol) ) ) ;; definition for method 3 of type border-plane (defmethod inspect ((this border-plane)) (when (not this) (set! this this) (goto cfg-4) ) (format #t "[~8x] ~A~%" this (-> this type)) (format #t "~1Tname: ~A~%" (-> this name)) (format #t "~1Taction: ~A~%" (-> this action)) (format #t "~1Tslot: ~D~%" (-> this slot)) (format #t "~1Ttrans: ~`vector`P~%" (-> this trans)) (format #t "~1Tnormal: ~`vector`P~%" (-> this normal)) (label cfg-4) this ) ;; definition of type lissajous (deftype lissajous (structure) "A curve where the x and y position are set by two different sinusoids. This stores the parameters and state for evaluating this curve." ((x-mag float) (y-mag float) (theta float) (wx float) (wy float) (period-shift float) (theta-rate float) ) :pack-me (:methods (evaluate! (_type_ vector) vector) ) ) ;; definition for method 3 of type lissajous (defmethod inspect ((this lissajous)) (when (not this) (set! this this) (goto cfg-4) ) (format #t "[~8x] ~A~%" this 'lissajous) (format #t "~1Tx-mag: ~f~%" (-> this x-mag)) (format #t "~1Ty-mag: ~f~%" (-> this y-mag)) (format #t "~1Ttheta: ~f~%" (-> this theta)) (format #t "~1Twx: ~f~%" (-> this wx)) (format #t "~1Twy: ~f~%" (-> this wy)) (format #t "~1Tperiod-shift: ~f~%" (-> this period-shift)) (format #t "~1Ttheta-rate: ~f~%" (-> this theta-rate)) (label cfg-4) this ) ;; definition of type lissajous-interp (deftype lissajous-interp (structure) "Handles interpolating between two different lissajous parameters, and also stepping forward the dynamics." ((current lissajous :inline) (dest lissajous :inline) (rate lissajous :inline) ) (:methods (evaluate! (_type_ vector) vector) (update! (_type_) float) ) ) ;; definition for method 3 of type lissajous-interp (defmethod inspect ((this lissajous-interp)) (when (not this) (set! this this) (goto cfg-4) ) (format #t "[~8x] ~A~%" this 'lissajous-interp) (format #t "~1Tcurrent: #~%" (-> this current)) (format #t "~1Tdest: #~%" (-> this dest)) (format #t "~1Trate: #~%" (-> this rate)) (label cfg-4) this ) ;; failed to figure out what this is: 0