1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 02:57:44 +00:00

3DFileViewer: Add 'normals' to Mesh constructor

This change allows a Mesh object to be created with a vector of normals.
This commit is contained in:
Pedro Pereira 2021-11-05 01:30:46 +00:00 committed by Andreas Kling
parent 7fb8af73bf
commit 5fd58a2663
3 changed files with 7 additions and 3 deletions

View file

@ -1,6 +1,7 @@
/*
* Copyright (c) 2021, Jesse Buhagiar <jooster669@gmail.com>
* Copyright (c) 2021, Mathieu Gaillard <gaillard.mathieu.39@gmail.com>
* Copyright (c) 2021, Pedro Pereira <pmh.pereira@gmail.com>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
@ -22,9 +23,10 @@ const Color colors[] {
Color::White
};
Mesh::Mesh(Vector<Vertex> vertices, Vector<TexCoord> tex_coords, Vector<Triangle> triangles)
Mesh::Mesh(Vector<Vertex> vertices, Vector<TexCoord> tex_coords, Vector<Vertex> normals, Vector<Triangle> triangles)
: m_vertex_list(move(vertices))
, m_tex_coords(move(tex_coords))
, m_normal_list(move(normals))
, m_triangle_list(move(triangles))
{
}

View file

@ -1,6 +1,7 @@
/*
* Copyright (c) 2021, Jesse Buhagiar <jooster669@gmail.com>
* Copyright (c) 2021, Mathieu Gaillard <gaillard.mathieu.39@gmail.com>
* Copyright (c) 2021, Pedro Pereira <pmh.pereira@gmail.com>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
@ -16,7 +17,7 @@ class Mesh : public RefCounted<Mesh> {
public:
Mesh() = delete;
Mesh(Vector<Vertex> vertices, Vector<TexCoord> tex_coords, Vector<Triangle> triangles);
Mesh(Vector<Vertex> vertices, Vector<TexCoord> tex_coords, Vector<Vertex> normals, Vector<Triangle> triangles);
size_t vertex_count() const { return m_vertex_list.size(); }
@ -29,5 +30,6 @@ public:
private:
Vector<Vertex> m_vertex_list;
Vector<TexCoord> m_tex_coords;
Vector<Vertex> m_normal_list;
Vector<Triangle> m_triangle_list;
};

View file

@ -127,5 +127,5 @@ RefPtr<Mesh> WavefrontOBJLoader::load(Core::File& file)
}
dbgln("Wavefront: Done.");
return adopt_ref(*new Mesh(vertices, tex_coords, triangles));
return adopt_ref(*new Mesh(vertices, tex_coords, normals, triangles));
}