From ea2ddf60f3f249eb0decd204bc0b325389404964 Mon Sep 17 00:00:00 2001 From: Daniel Ledda Date: Sun, 16 Feb 2025 23:42:49 +0100 Subject: [PATCH] print vectors --- core.cpp | 36 ++++++++++++++++++++++++++++++++++++ core.h | 9 +++++++++ 2 files changed, 45 insertions(+) diff --git a/core.cpp b/core.cpp index c65fecb..5c632cb 100644 --- a/core.cpp +++ b/core.cpp @@ -404,6 +404,42 @@ void print(const char *fmt, ...) { va_end(argList); } +void print(list> l, StdStream target) { + void (*logFn)(const char *fmt, ...) = target == StdStream_stdout ? &printStdout : &printStderr; + logFn("{ "); + for (size_t i = 0; i < l.length; i++) { + if (i != 0) { + logFn(", "); + } + logFn("{ %.2f, %.2f, %.2f, %.2f }", l.data[i].x, l.data[i].y, l.data[i].z, l.data[i].w); + } + logFn(" } length: %zu, head: %zu\n", l.length, l.head); +} + +void print(list> l, StdStream target) { + void (*logFn)(const char *fmt, ...) = target == StdStream_stdout ? &printStdout : &printStderr; + logFn("{ "); + for (size_t i = 0; i < l.length; i++) { + if (i != 0) { + logFn(", "); + } + logFn("{ %.2f, %.2f, %.2f }", l.data[i].x, l.data[i].y, l.data[i].z); + } + logFn(" } length: %zu, head: %zu\n", l.length, l.head); +} + +void print(list> l, StdStream target) { + void (*logFn)(const char *fmt, ...) = target == StdStream_stdout ? &printStdout : &printStderr; + logFn("{ "); + for (size_t i = 0; i < l.length; i++) { + if (i != 0) { + logFn(", "); + } + logFn("{ %.2f, %.2f }", l.data[i].x, l.data[i].y); + } + logFn(" } length: %zu, head: %zu\n", l.length, l.head); +} + void print(list l, StdStream target) { void (*logFn)(const char *fmt, ...) = target == StdStream_stdout ? &printStdout : &printStderr; logFn("{ "); diff --git a/core.h b/core.h index 7a89ace..720e1cf 100644 --- a/core.h +++ b/core.h @@ -110,6 +110,12 @@ inline function Vector3 vec3(T x, T y, T z) { template union Vector4 { + struct { + T r; + T g; + T b; + T a; + }; struct { T x; T y; @@ -255,6 +261,9 @@ enum StdStream { void print(list l, StdStream target = StdStream_stdout); void print(list l, StdStream target = StdStream_stdout); +void print(list> l, StdStream target = StdStream_stdout); +void print(list> l, StdStream target = StdStream_stdout); +void print(list> l, StdStream target = StdStream_stdout); void print(const char *fmt, ...); void printErr(const char *fmt, ...);