Skip to content

Instantly share code, notes, and snippets.

@dharmatech
Created November 25, 2009 14:28
Show Gist options
  • Save dharmatech/242742 to your computer and use it in GitHub Desktop.
Save dharmatech/242742 to your computer and use it in GitHub Desktop.
(define-syntax is-vector-of-pt-with-index
(lambda (stx)
(syntax-case stx ()
( (is-vector-of-pt-with-index name index)
(with-syntax ( (name.index (gen-id #'name #'name "." #'index ))
(name.index! (gen-id #'name #'name "." #'index "!" ))
(name.index.x (gen-id #'name #'name "." #'index ".x" ))
(name.index.y (gen-id #'name #'name "." #'index ".y" ))
(name.index.x! (gen-id #'name #'name "." #'index ".x!"))
(name.index.y! (gen-id #'name #'name "." #'index ".y!")) )
#'(begin
(define (name.index) (vector-ref name index))
(define (name.index! val) (vector-set! name index val))
(define (name.index.x) (pt-x (vector-ref name index)))
(define (name.index.y) (pt-y (vector-ref name index)))
(define (name.index.x! val) (pt-x-set! (vector-ref name index) val))
(define (name.index.y! val) (pt-y-set! (vector-ref name index) val))
))))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment