diff options
Diffstat (limited to 'src/o3d/obj3d.cpp')
-rw-r--r-- | src/o3d/obj3d.cpp | 69 |
1 files changed, 3 insertions, 66 deletions
diff --git a/src/o3d/obj3d.cpp b/src/o3d/obj3d.cpp index 9ccb93a..047bf3e 100644 --- a/src/o3d/obj3d.cpp +++ b/src/o3d/obj3d.cpp @@ -1,72 +1,9 @@ #include "o3d/obj3d.h" -#include <vector> -#include <array> #include "math/math_vector.h" -#include "o3d/vertex.h" -#include "o3d/tri_vertex.h" +#include "o3d/mesh.h" using namespace engine::o3d; -Object3D::TriangleVertex3Iterator::TriangleVertex3Iterator(const Object3D* obj, int face_ind) : obj{obj}, face_ind{face_ind} { -} - -Object3D::TriangleVertex3Iterator& Object3D::TriangleVertex3Iterator::operator++() { - face_ind++; - return *this; -} - -Object3D::TriangleVertex3Iterator Object3D::TriangleVertex3Iterator::operator++(int) { - TriangleVertex3Iterator retval = *this; - ++(*this); - return retval; -} - -bool Object3D::TriangleVertex3Iterator::operator==(TriangleVertex3Iterator other) const { - return obj == other.obj && face_ind == other.face_ind; -} - -bool Object3D::TriangleVertex3Iterator::operator!=(TriangleVertex3Iterator other) const { - return !(*this == other); -} - -Object3D::TriangleVertex3Iterator::reference Object3D::TriangleVertex3Iterator::operator*() const { - return { - obj->pts[obj->faces[face_ind][0]], - obj->pts[obj->faces[face_ind][1]], - obj->pts[obj->faces[face_ind][2]] - }; -} - -Object3D Object3D::cube() { - return { - { - { engine::math::MathVector3(-1.f, -1.f, -1.f), {} }, - { engine::math::MathVector3(+1.f, -1.f, -1.f), {} }, - { engine::math::MathVector3(-1.f, +1.f, -1.f), {} }, - { engine::math::MathVector3(+1.f, +1.f, -1.f), {} }, - { engine::math::MathVector3(-1.f, -1.f, +1.f), {} }, - { engine::math::MathVector3(+1.f, -1.f, +1.f), {} }, - { engine::math::MathVector3(-1.f, +1.f, +1.f), {} }, - { engine::math::MathVector3(+1.f, +1.f, +1.f), {} }, - }, - { - { 0, 2, 3 }, { 0, 3, 1 }, // face 1 - { 0, 4, 6 }, { 0, 6, 2 }, // face 2 - { 0, 1, 5 }, { 0, 5, 4 }, // face 3 - { 7, 6, 4 }, { 7, 4, 5 }, // face 4 - { 7, 3, 2 }, { 7, 2, 6 }, // face 5 - { 7, 5, 1 }, { 7, 1, 3 }, // face 6 - } - }; -} - -Object3D::Object3D(std::vector<Vertex3> pts, std::vector<std::array<int, 3>> faces) : pts{pts}, faces{faces} { -} - -Object3D::TriangleVertex3Iterator Object3D::begin() { - return Object3D::TriangleVertex3Iterator{this}; -} - -Object3D::TriangleVertex3Iterator Object3D::end() { - return Object3D::TriangleVertex3Iterator{this, static_cast<int>(faces.size())}; +Object3D::Object3D(Mesh mesh, engine::math::MathVector3 loc, float scale, float rot_x, float rot_y, float rot_z) + : mesh{mesh}, loc{loc}, scale{scale}, rot_x{rot_x}, rot_y{rot_y}, rot_z{rot_z} { } |