aboutsummaryrefslogtreecommitdiff
path: root/src/o3d/tri.h
diff options
context:
space:
mode:
authorvimene <vincent.menegaux@gmail.com>2024-12-31 03:40:14 +0100
committervimene <vincent.menegaux@gmail.com>2024-12-31 03:40:14 +0100
commitcc6fb8c33637566a7b116d46440e6063f016deea (patch)
tree5cc83f84525507994add57df7dd974e6611d675a /src/o3d/tri.h
parent6b765a85cf81bf4b7162e4c9280dd4054581c611 (diff)
downloadengine-cc6fb8c33637566a7b116d46440e6063f016deea.tar.gz
various improvements
- added quaternions and rewrote all rotations to use them - added transforms to put all object transforms in a single place - added Wavefront .obj file parser - removed frame buffer's abstract class - improved vectors, matrices, triangles, vertices and vertices data by putting all code in header file - added vector's operations - changed from NULL to nullptr - miscellaneous improvements
Diffstat (limited to 'src/o3d/tri.h')
-rw-r--r--src/o3d/tri.h15
1 files changed, 7 insertions, 8 deletions
diff --git a/src/o3d/tri.h b/src/o3d/tri.h
index 7fa37fe..4b50f91 100644
--- a/src/o3d/tri.h
+++ b/src/o3d/tri.h
@@ -3,19 +3,18 @@
#include <vector>
#include "o3d/vertex.h"
-#include "o3d/tri.h"
#include "o3d/tri_deriv.h"
namespace engine::o3d {
-class Triangle {
- public:
- Vertex vertex1;
- Vertex vertex2;
- Vertex vertex3;
+struct Triangle {
+ Vertex vertex1;
+ Vertex vertex2;
+ Vertex vertex3;
- Triangle(Vertex vertex1, Vertex vertex2, Vertex vertex3);
- TriangleDerived to_derived() const;
+ constexpr TriangleDerived to_derived() const & {
+ return {{vertex1.vertex, 1.f, 0.f}, {vertex2.vertex, 0.f, 1.f}, {vertex3.vertex, 0.f, 0.f}};
+ }
};
}