14 glm::vec3 min = glm::vec3(0.0f);
15 glm::vec3 max = glm::vec3(0.0f);
18 void Include(
const glm::vec3& point);
19 [[nodiscard]] glm::vec3 GetCenter()
const;
20 [[nodiscard]] glm::vec3 GetExtents()
const;
26 void SetLookAt(
const glm::vec3& position,
const glm::vec3& pivot,
float field_of_view_degrees,
float near_plane,
float far_plane);
27 void Orbit(
const glm::vec2& delta);
28 void Pan(
const glm::vec2& delta,
const glm::vec2& viewport_size);
29 void Dolly(
float delta);
30 void Frame(
const Bounds& bounds);
31 void FramePoint(
const glm::vec3& point,
float radius = 0.5f);
33 [[nodiscard]]
ExtractedView BuildView(glm::uvec2 target_extent)
const;
34 [[nodiscard]] glm::vec3 GetPosition()
const;
35 [[nodiscard]] glm::vec3 GetForward()
const;
36 [[nodiscard]] glm::vec3 GetRight()
const;
37 [[nodiscard]] glm::vec3 GetUp()
const;
39 [[nodiscard]]
const glm::vec3& GetPivot() const noexcept
43 [[nodiscard]]
float GetDistance() const noexcept
47 [[nodiscard]]
float GetYawDegrees() const noexcept
51 [[nodiscard]]
float GetPitchDegrees() const noexcept
53 return pitch_degrees_;
55 [[nodiscard]]
float GetFieldOfViewDegrees() const noexcept
57 return field_of_view_degrees_;
59 [[nodiscard]]
float GetNearPlane() const noexcept
63 [[nodiscard]]
float GetFarPlane() const noexcept
69 glm::vec3 pivot_ = glm::vec3(0.0f);
70 float distance_ = 6.0f;
71 float yaw_degrees_ = 35.0f;
72 float pitch_degrees_ = -25.0f;
73 float field_of_view_degrees_ = 45.0f;
74 float near_plane_ = 0.1f;
75 float far_plane_ = 1000.0f;