summaryrefslogtreecommitdiff
path: root/lib/stream_support.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/stream_support.hpp')
-rw-r--r--lib/stream_support.hpp42
1 files changed, 42 insertions, 0 deletions
diff --git a/lib/stream_support.hpp b/lib/stream_support.hpp
new file mode 100644
index 0000000..1ee1661
--- /dev/null
+++ b/lib/stream_support.hpp
@@ -0,0 +1,42 @@
+#ifndef STREAM_SUPPORT_H
+#define STREAM_SUPPORT_H
+
+#include <glm/glm.hpp>
+#include <iostream>
+#include <maths.h>
+
+namespace std {
+ template<glm::length_t L, glm::length_t R, typename T, glm::qualifier Q>
+ std::ostream &
+ operator<<(std::ostream & s, const glm::mat<L, R, T, Q> & m)
+ {
+ for (int y = 0; y < m.length(); y++) {
+ const auto & col = m[y];
+ for (int x = 0; x < col.length(); x++) {
+ s << col[x] << ", ";
+ }
+ s << "\n";
+ }
+ return s;
+ }
+
+ template<glm::length_t L, typename T, glm::qualifier Q>
+ std::ostream &
+ operator<<(std::ostream & s, const glm::vec<L, T, Q> & v)
+ {
+ for (int x = 0; x < L; x++) {
+ s << v[x] << ", ";
+ }
+ return s;
+ }
+
+ inline std::ostream &
+ operator<<(std::ostream & s, const Arc & arc)
+ {
+ return s << arc.first << " ↺ " << arc.second;
+ }
+}
+
+#define CLOG(x) std::clog << #x " : " << x << "\n";
+
+#endif