From 49565d13e9da2d68ef66dcf1573611725ef24935 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Tue, 15 Aug 2017 10:21:39 -0400 Subject: math: vector: Add custom record type printers for vectors. * chickadee/math/vector.scm (display-vec2, display-vec3): New procedures. --- chickadee/math/vector.scm | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/chickadee/math/vector.scm b/chickadee/math/vector.scm index 89b4f33..cdc9b82 100644 --- a/chickadee/math/vector.scm +++ b/chickadee/math/vector.scm @@ -16,8 +16,10 @@ ;;; . (define-module (chickadee math vector) + #:use-module (ice-9 format) #:use-module (rnrs bytevectors) #:use-module (srfi srfi-9) + #:use-module (srfi srfi-9 gnu) #:use-module (system foreign) #:use-module (chickadee math) #:export (vec2 @@ -163,6 +165,16 @@ polar coordinate (R, THETA)." "Set the z coordinate of the vec3 V to Z." (vec3-set! v 2 z)) +(define (display-vec2 v port) + (format port "#" (vec2-x v) (vec2-y v))) + +(set-record-type-printer! display-vec2) + +(define (display-vec3 v port) + (format port "#" (vec3-x v) (vec3-y v) (vec3-z v))) + +(set-record-type-printer! display-vec3) + (define (vec2-copy! source-vec2 target-vec2) "Copy TARGET-VEC2 to SOURCE-VEC2." (set-vec2-x! target-vec2 (vec2-x source-vec2)) -- cgit v1.2.3