Class Camera
Defined in File point_viz.h
Class Documentation
-
class Camera
Controls the camera view and projection.
Public Functions
-
Camera()
-
impl::CameraData matrices(double aspect) const
Calculate camera matrices.
- Parameters:
aspect[in] – aspect ratio of the viewport
- Returns:
projection, view matrices and target location.
-
void reset()
Reset the camera view and fov.
-
void birds_eye_view()
Set camera view as looking from the top as a bird (Birds Eye View).
-
void roll(float degrees)
Roll the camera with respect to its current roll angle.
- Parameters:
degrees[in] – offset to the current roll angle
-
void set_roll(float degrees)
Set roll in degrees.
- Parameters:
degrees[in] – roll angle
-
float get_roll() const
Get the roll in degrees.
- Returns:
roll in degrees
-
void yaw(float degrees)
Orbit the camera left or right about the camera target.
- Parameters:
degrees[in] – offset to the current yaw angle
-
void set_yaw(float degrees)
Set yaw in degrees.
- Parameters:
degrees[in] – yaw angle
-
float get_yaw() const
Get the yaw in degrees.
- Returns:
yaw in degrees
-
void pitch(float degrees)
Pitch the camera up or down.
- Parameters:
degrees[in] – offset to the current pitch angle
-
void set_pitch(float degrees)
Set pitch in degrees.
- Parameters:
degrees[in] – pitch angle
-
float get_pitch() const
Get the camera pitch in degrees.
- Returns:
pitch in degrees
-
void dolly(double amount)
Move the camera towards or away from the target.
- Parameters:
amount[in] – offset to the current camera distance from the target
-
void set_dolly(double log_distance)
Set dolly (i.e.
log distance) from the target to the camera.
- Parameters:
log_distance[in] – log of the distance from the target
-
double get_dolly() const
Get the log distance from the target to the camera.
- Returns:
log_distance
-
void dolly_xy(double x, double y)
Move the camera in the XY plane of the camera view.
Coordinates are normalized so that 1 is the length of the diagonal of the view plane at the target. This is useful for implementing controls that work intuitively regardless of the camera distance.
- Parameters:
x[in] – horizontal offset
y[in] – vertical offset
-
void set_view_offset(const vec3d &view_offset)
Set view offset.
- Parameters:
view_offset[in] – view offset of the camera
-
void set_fov(float degrees)
Set the diagonal field of view.
- Parameters:
degrees[in] – the diagonal field of view, in degrees
-
float get_fov() const
Get field of fiew of a camera in degrees.
- Returns:
fov in degrees
-
void set_orthographic(bool state)
Use an orthographic or perspective projection.
- Parameters:
state[in] – true for orthographic, false for perspective
-
bool is_orthographic() const
Get orthographic state.
- Returns:
true if orthographic, false if perspective
-
void set_proj_offset(float x, float y)
Set the 2d position of camera target in the viewport.
- Parameters:
x[in] – horizontal position in in normalized coordinates [-1, 1]
y[in] – vertical position in in normalized coordinates [-1, 1]
-
vec2d get_proj_offset() const
Get the 2d position of camera target in the viewport.
- Returns:
(x, y) position of a camera target in the viewport
-
Camera()