;;-*-Lisp-*-
(in-package goal)

;; definition of type transform
(deftype transform (structure)
  ((trans vector :inline :offset-assert   0)
   (rot   vector :inline :offset-assert  16)
   (scale vector :inline :offset-assert  32)
   )
  :method-count-assert 9
  :size-assert         #x30
  :flag-assert         #x900000030
  )

;; definition for method 3 of type transform
(defmethod inspect transform ((obj transform))
  (format #t "[~8x] ~A~%" obj 'transform)
  (format #t "~Ttrans: ~`vector`P~%" (-> obj trans))
  (format #t "~Trot: ~`vector`P~%" (-> obj rot))
  (format #t "~Tscale: ~`vector`P~%" (-> obj scale))
  obj
  )

;; definition of type trs
(deftype trs (basic)
  ((trans vector :inline :offset-assert  16)
   (rot   vector :inline :offset-assert  32)
   (scale vector :inline :offset-assert  48)
   )
  :method-count-assert 9
  :size-assert         #x40
  :flag-assert         #x900000040
  (:methods
    (new (symbol type) _type_ 0)
    )
  )

;; definition for method 3 of type trs
(defmethod inspect trs ((obj trs))
  (format #t "[~8x] ~A~%" obj (-> obj type))
  (format #t "~Ttrans: ~`vector`P~%" (-> obj trans))
  (format #t "~Trot: ~`vector`P~%" (-> obj rot))
  (format #t "~Tscale: ~`vector`P~%" (-> obj scale))
  obj
  )

;; failed to figure out what this is:
0
