From ea2ddf60f3f249eb0decd204bc0b325389404964 Mon Sep 17 00:00:00 2001 From: Daniel Ledda <ledda@cip.ifi.lmu.de> 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<Vector4<real32>> 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<Vector3<real32>> 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<Vector2<real32>> 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<int> 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<T> vec3(T x, T y, T z) { template <typename T> 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<int> l, StdStream target = StdStream_stdout); void print(list<string> l, StdStream target = StdStream_stdout); +void print(list<Vector2<real32>> l, StdStream target = StdStream_stdout); +void print(list<Vector3<real32>> l, StdStream target = StdStream_stdout); +void print(list<Vector4<real32>> l, StdStream target = StdStream_stdout); void print(const char *fmt, ...); void printErr(const char *fmt, ...);