Euphoria
camera3.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "base/mat4.h"
4 #include "base/vec2.h"
5 #include "base/vec3.h"
6 #include "base/quat.h"
7 #include "base/ray.h"
8 #include "base/angle.h"
9 
10 
11 namespace eu::core
12 {
14  {
19 
20  CompiledCamera3(const mat4f& v, const mat4f& p);
21 
22  [[nodiscard]] vec3f from_world_to_clip(const vec3f& in_world) const;
23  [[nodiscard]] vec3f from_clip_to_world(const vec3f& in_clip) const;
24  [[nodiscard]] Ray3f from_clip_to_world_ray(const vec2f& p) const;
25  };
26 
27 
28  struct Camera3
29  {
33  float near;
34  float far;
35 
36  Camera3();
37 
38  [[nodiscard]] CompiledCamera3 compile(float aspect) const;
39  };
40 }
Definition: ray.h:37
vec3f position
Definition: camera3.h:30
CompiledCamera3 compile(float aspect) const
Definition: camera3.cc:74
quatf rotation
Definition: camera3.h:31
CompiledCamera3(const mat4f &v, const mat4f &p)
Definition: camera3.cc:7
Ray3f from_clip_to_world_ray(const vec2f &p) const
Definition: camera3.cc:34
vec3f from_clip_to_world(const vec3f &in_clip) const
Definition: camera3.cc:25
vec3f from_world_to_clip(const vec3f &in_world) const
Definition: camera3.cc:16
Definition: mat4.h:14
Definition: quat.h:15
Definition: vec2.h:33
Definition: vec3.h:48