opynsim
Unofficial C++ Documentation
Loading...
Searching...
No Matches
orbit_camera_controller.h
Go to the documentation of this file.
1#pragma once
2
6
7namespace osc { struct AABB; }
8namespace osc { class Camera; }
9
10namespace osc
11{
14 struct OrbitCameraController final {
15
17 const AABB& aabb,
18 const Camera& camera,
19 float aspect_ratio = 1.0f
20 );
21
22 friend bool operator==(const OrbitCameraController&, const OrbitCameraController&) = default;
23
24 void update_camera(Camera&) const;
25
26 void reset();
27 void pan(float aspect_ratio, Vector2 normalized_delta, const Camera&);
28 void drag(Vector2 normalized_delta);
29 void zoom_in() { radius *= 0.8f; }
30 void zoom_out() { radius *= 1.2f; }
31 void focus_on(const AABB& aabb, const Camera& camera, float aspect_ratio = 1.0f);
33 void focus_along(const Vector3& direction);
34
36 float radius = 1.0f;
39 };
40}
Definition angle.h:26
Definition camera.h:21
Definition coordinate_direction.h:16
Definition custom_decoration_generator.h:5
Definition aabb.h:14
Definition orbit_camera_controller.h:14
void focus_along(CoordinateDirection)
Radians theta
Definition orbit_camera_controller.h:37
void pan(float aspect_ratio, Vector2 normalized_delta, const Camera &)
friend bool operator==(const OrbitCameraController &, const OrbitCameraController &)=default
void zoom_out()
Definition orbit_camera_controller.h:30
void drag(Vector2 normalized_delta)
Vector3 focus_point
Definition orbit_camera_controller.h:35
void zoom_in()
Definition orbit_camera_controller.h:29
float radius
Definition orbit_camera_controller.h:36
static OrbitCameraController focused_on(const AABB &aabb, const Camera &camera, float aspect_ratio=1.0f)
Radians phi
Definition orbit_camera_controller.h:38
void focus_on(const AABB &aabb, const Camera &camera, float aspect_ratio=1.0f)
void focus_along(const Vector3 &direction)
void update_camera(Camera &) const