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 Translate(
const glm::vec3& delta);
31 void Frame(
const Bounds& bounds);
32 void FramePoint(
const glm::vec3& point,
float radius = 0.5f);
33 void FramePointClose(
const glm::vec3& point,
float radius = 0.08f);
35 [[nodiscard]]
ExtractedView BuildView(glm::uvec2 target_extent)
const;
36 [[nodiscard]] glm::vec3 GetPosition()
const;
37 [[nodiscard]] glm::vec3 GetForward()
const;
38 [[nodiscard]] glm::vec3 GetRight()
const;
39 [[nodiscard]] glm::vec3 GetUp()
const;
41 [[nodiscard]]
const glm::vec3& GetPivot() const noexcept
45 [[nodiscard]]
float GetDistance() const noexcept
49 [[nodiscard]]
float GetYawDegrees() const noexcept
53 [[nodiscard]]
float GetPitchDegrees() const noexcept
55 return pitch_degrees_;
57 [[nodiscard]]
float GetFieldOfViewDegrees() const noexcept
59 return field_of_view_degrees_;
61 [[nodiscard]]
float GetNearPlane() const noexcept
65 [[nodiscard]]
float GetFarPlane() const noexcept
71 glm::vec3 pivot_ = glm::vec3(0.0f);
72 float distance_ = 6.0f;
73 float yaw_degrees_ = 35.0f;
74 float pitch_degrees_ = -25.0f;
75 float field_of_view_degrees_ = 45.0f;
76 float near_plane_ = 0.1f;
77 float far_plane_ = 1000.0f;