103 void look_at(
float xoffset,
float yoffset,
float sensitivity = 0.1f);
105 void zoom(
float yoffset);
108 glm::vec3 front{0.0f, 0.0f, -1.0f};
111 glm::vec3 world_up{0.0f, 1.0f, 0.0f};
113 void update_vectors();
Shader Abstract class.
Definition: base_struct.h:160
3D Camera
Definition: components.h:80
void move_right(Transform3D &transform, float dt)
Definition: components.cpp:105
void move_left(Transform3D &transform, float dt)
Definition: components.cpp:101
glm::mat4 get_projection(int w, int h) const
Definition: components.cpp:89
float yaw
Definition: components.h:81
float view_distance
Definition: components.h:85
void look_at(float xoffset, float yoffset, float sensitivity=0.1f)
Definition: components.cpp:109
void move_forward(Transform3D &transform, float dt)
Definition: components.cpp:93
float fov
Definition: components.h:83
Camera3D()
Definition: components.h:87
void zoom(float yoffset)
Definition: components.cpp:117
float pitch
Definition: components.h:82
float speed
Definition: components.h:84
void move_backward(Transform3D &transform, float dt)
Definition: components.cpp:97
glm::mat4 get_view(const Transform3D &transform) const
Definition: components.cpp:85
Definition: components.h:117
glm::vec3 color
Definition: components.h:119
glm::vec3 direction
Definition: components.h:118
glm::mat4 get_light_space_matrix() const
Definition: components.cpp:171
float shadowDistance
Definition: components.h:124
float intensity
Definition: components.h:120
float shadowFar
Definition: components.h:126
bool castShadows
Definition: components.h:121
float shadowNear
Definition: components.h:125
Definition: components.h:152
const Material * material
Definition: components.h:153
Definition: components.h:41
float ao
Definition: components.h:45
Uint32 ao_map
Definition: components.h:54
Uint32 normal_map
Definition: components.h:53
Uint32 albedo_map
Definition: components.h:50
bool use_ao_map
Definition: components.h:61
float metallic
Definition: components.h:43
glm::vec3 albedo
Definition: components.h:42
float emissive_strength
Definition: components.h:48
Uint32 metallic_map
Definition: components.h:51
Uint32 emissive_map
Definition: components.h:55
void bind(Shader *shader) const
Definition: components.cpp:27
bool use_roughness_map
Definition: components.h:59
bool use_normal_map
Definition: components.h:60
glm::vec3 emissive
Ambient Occlusion.
Definition: components.h:47
float roughness
Definition: components.h:44
Uint32 roughness_map
Definition: components.h:52
bool use_albedo_map
Definition: components.h:57
bool use_emissive_map
Definition: components.h:62
bool use_metallic_map
Definition: components.h:58
Definition: components.h:29
std::shared_ptr< GpuBuffer > vertex_buffer
Definition: components.h:32
std::string name
Definition: components.h:30
int index_count
Definition: components.h:36
std::shared_ptr< GpuBuffer > index_buffer
Definition: components.h:33
std::shared_ptr< GpuVertexLayout > vertex_layout
Definition: components.h:34
Definition: components.h:148
const MeshInstance3D * mesh
Definition: components.h:149
Definition: components.h:142
std::string path
Definition: components.h:143
std::vector< Material > materials
Definition: components.h:145
std::vector< MeshInstance3D > meshes
Definition: components.h:144
Represents a physics body for 2D or 3D physics simulations. Jolt Physics -> BodyID Box2D -> b2BodyId.
Definition: components.h:24
Definition: components.h:133
float intensity
Definition: components.h:136
float cutOff
Definition: components.h:137
glm::vec3 color
Definition: components.h:135
float outerCutOff
Definition: components.h:138
glm::vec3 direction
Definition: components.h:134