From 37359e1b6de63d5434112364c1301f8202a7cfdc Mon Sep 17 00:00:00 2001 From: David Thompson Date: Sun, 12 Nov 2017 21:41:10 -0500 Subject: math: quaternion: Add custom record type printer. * chickadee/math/quaternion.scm (display-quaternion): New procedure. --- chickadee/math/quaternion.scm | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/chickadee/math/quaternion.scm b/chickadee/math/quaternion.scm index 4df4ffd..cf2b4bc 100644 --- a/chickadee/math/quaternion.scm +++ b/chickadee/math/quaternion.scm @@ -23,7 +23,9 @@ (define-module (chickadee math quaternion) #:use-module (chickadee math) + #:use-module (ice-9 format) #:use-module (srfi srfi-9) + #:use-module (srfi srfi-9 gnu) #:use-module (system foreign) #:export (quaternion quaternion? @@ -88,6 +90,15 @@ "Return the W coordinate of the quaternion Q." (quaternion-ref q 3)) +(define (display-quaternion q port) + (format port "#" + (quaternion-x q) + (quaternion-y q) + (quaternion-z q) + (quaternion-w q))) + +(set-record-type-printer! display-quaternion) + (define-inlinable (quaternion-magnitude q) "Return the magnitude of the quaternion Q." (sqrt -- cgit v1.2.3