From e7e99f52e9db96e1e9b77cf96b77f705e98cf70f Mon Sep 17 00:00:00 2001 From: David Thompson Date: Sun, 26 Oct 2014 13:38:10 -0400 Subject: transform: Add transform-position procedure. * sly/transform.scm (transform-position): New procedure. --- sly/transform.scm | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/sly/transform.scm b/sly/transform.scm index 252c123..96b83e1 100644 --- a/sly/transform.scm +++ b/sly/transform.scm @@ -32,6 +32,7 @@ #:export (make-transform null-transform identity-transform transform? transform-matrix transpose transform-vector2 + transform-position transform+ transform* scale translate rotate-x rotate-y rotate-z rotate build-transform @@ -101,6 +102,14 @@ column-major format." (* y (array-ref m 1 1)) (array-ref m 1 3))))) +(define (transform-position transform) + "Return a vector3 containing the positional data stored in +TRANSFORM." + (let ((matrix (transform-matrix transform))) + (vector3 (array-ref matrix 3 0) + (array-ref matrix 3 1) + (array-ref matrix 3 2)))) + (define (transform+ . transforms) "Return the sum of all given transformation matrices. Return null-transform if called without any arguments." -- cgit v1.2.3