Raito
0.1
Loading...
Searching...
No Matches
Mesh.h
Go to the documentation of this file.
1
/*
2
MIT License
3
4
Copyright (c) 2023 Víctor Falcón Zaro
5
6
Permission is hereby granted, free of charge, to any person obtaining a copy
7
of this software and associated documentation files (the "Software"), to deal
8
in the Software without restriction, including without limitation the rights
9
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
copies of the Software, and to permit persons to whom the Software is
11
furnished to do so, subject to the following conditions:
12
13
The above copyright notice and this permission notice shall be included in all
14
copies or substantial portions of the Software.
15
16
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22
SOFTWARE.
23
*/
24
25
#pragma once
26
#include "
Math/AABB.h
"
27
#include "
Math/MathTypes.h
"
28
29
namespace
Raito::Assets
30
{
31
enum class
RenderMode
32
{
33
TRIANGLE
,
34
TRIANGLE_STRIP
,
35
TRIANGLE_FAN
36
};
37
38
struct
Vertex
39
{
40
V3
Position
;
41
V3
Normal
;
42
V3
Tangent
;
43
V3
BiTangent
;
44
V2
TexCoords
;
45
};
46
47
struct
Mesh
final
48
{
49
Mesh
() =
default
;
50
Mesh
(
const
std::vector<Vertex>& vertex,
const
std::vector<u32>& indices);
51
Mesh
(
const
std::vector<Vertex>& vertex,
const
std::vector<u32>& indices,
RenderMode
mode);
52
~Mesh
();
53
54
void
CalculateAABB
();
55
56
std::vector<Vertex>
Vertices
{};
57
std::vector<u32>
Indices
{};
58
59
Math::AABB
AABB
;
60
61
Mat4
Transform
;
62
63
std::string
Name
{};
64
65
u32
MaterialId
;
66
RenderMode
RenderMode
=
RenderMode::TRIANGLE
;
67
};
68
}
AABB.h
u32
unsigned __int32 u32
Unsigned integer 32 bit type.
Definition
BasicTypes.h:55
MathTypes.h
Raito::Math::AABB
Definition
AABB.h:7
Raito::Assets
Definition
AssetImport.cpp:47
Raito::Assets::RenderMode
RenderMode
Definition
Mesh.h:32
Raito::Assets::RenderMode::TRIANGLE_STRIP
@ TRIANGLE_STRIP
Raito::Assets::RenderMode::TRIANGLE
@ TRIANGLE
Raito::Assets::RenderMode::TRIANGLE_FAN
@ TRIANGLE_FAN
Raito::Mat4
glm::mat4x4 Mat4
Definition
MathTypes.h:80
Raito::V2
glm::vec2 V2
2D Vector; 32 bit floating point components
Definition
MathTypes.h:41
Raito::V3
glm::vec3 V3
3D Vector; 32 bit floating point components
Definition
MathTypes.h:47
Raito::Assets::Mesh
Definition
Mesh.h:48
Raito::Assets::Mesh::Indices
std::vector< u32 > Indices
Definition
Mesh.h:57
Raito::Assets::Mesh::Transform
Mat4 Transform
Definition
Mesh.h:61
Raito::Assets::Mesh::Vertices
std::vector< Vertex > Vertices
Definition
Mesh.h:56
Raito::Assets::Mesh::Name
std::string Name
Definition
Mesh.h:63
Raito::Assets::Mesh::MaterialId
u32 MaterialId
Definition
Mesh.h:65
Raito::Assets::Mesh::~Mesh
~Mesh()
Definition
Mesh.cpp:44
Raito::Assets::Mesh::Mesh
Mesh()=default
Raito::Assets::Mesh::CalculateAABB
void CalculateAABB()
Definition
Mesh.cpp:50
Raito::Assets::Mesh::AABB
Math::AABB AABB
Definition
Mesh.h:59
Raito::Assets::Vertex
Definition
Mesh.h:39
Raito::Assets::Vertex::BiTangent
V3 BiTangent
Definition
Mesh.h:43
Raito::Assets::Vertex::Position
V3 Position
Definition
Mesh.h:40
Raito::Assets::Vertex::Tangent
V3 Tangent
Definition
Mesh.h:42
Raito::Assets::Vertex::Normal
V3 Normal
Definition
Mesh.h:41
Raito::Assets::Vertex::TexCoords
V2 TexCoords
Definition
Mesh.h:44
Core
Source
Raito
Assets
Mesh.h
Generated by
1.11.0