Base class of Camera.
More...
#include <Camera.h>
|
| Camera (const glm::vec3 &initialCameraPosition) |
| Default constructor.
|
|
virtual | ~Camera () |
| Destructor.
|
|
const glm::vec3 & | GetPosition () const |
| Getter for current position of the Camers.
|
|
float | GetRotation () const |
| Getter for current rotation.
|
|
void | LeftMouseButtonPressed () |
| Differentiates between single button press and drag.
|
|
void | LeftMouseButtonReleased () |
| Setting m_IsLeftMouseButtonPressed to false.
|
|
void | ComputeCameraFront () |
| Computes the pointing vector of the camera (outward positive) given the current pitch, and roll. (no yaw)
|
|
void | SetPosition (const glm::vec3 &position) |
| Sets the current position of the Camera.
|
|
void | SetRotation (float rotation) |
| Sets the current rotation of the Camera.
|
|
void | SetCameraFront (const glm::vec3 &front) |
| Set the front vector of Camera.
|
|
void | SetCameraUp (const glm::vec3 &up) |
| Set the up vector of Camera.
|
|
void | MoveForward (float amount) |
| Translate in the direction of front vector.
|
|
void | MoveSideways (float amount) |
| Move sideways in the direction of cross product of front vector and up vector.
|
|
void | MoveUp (float amount) |
| Move in the direction of Up.
|
|
void | RotateAboutYAxis (float amount) |
| Rotate about Y-axis.
|
|
void | RotateAboutXAxis (float amount) |
| Rotate about X-axis.
|
|
const glm::mat4 & | GetProjectionMatrix () const |
| Getter for ProjectionMatrix.
|
|
const glm::mat4 & | GetViewMatirx () const |
| Getter for ViewMatrix.
|
|
|
void | InitializePitchRoll () |
|
|
glm::mat4 | m_ProjectionMatrix |
|
glm::mat4 | m_ViewMatrix |
|
glm::vec3 | m_Position |
|
glm::vec3 | m_CameraFront |
|
glm::vec3 | m_CameraUp |
|
float | m_Rotation = 0.0f |
|
bool | m_IsLeftMouseButtonPressed = false |
|
float | m_LastMouseX |
|
float | m_LastMouseY |
|
const float | m_Sensitivity = 0.1f |
|
float | m_Roll = 0.0f |
|
float | m_Pitch = 0.0f |
|
Base class of Camera.
- Todo
- This class needs major revamp with reparenting(?) with AActor, just like Unreal Engine's CameraActor
◆ Camera()
Karma::Camera::Camera |
( |
const glm::vec3 & | initialCameraPosition | ) |
|
Default constructor.
- Parameters
-
initialCameraPosition | Position to spawn camera at |
- Since
- Karma 1.0.0
◆ ~Camera()
Karma::Camera::~Camera |
( |
| ) |
|
|
virtual |
Destructor.
- Since
- Karma 1.0.0
◆ ComputeCameraFront()
void Karma::Camera::ComputeCameraFront |
( |
| ) |
|
Computes the pointing vector of the camera (outward positive) given the current pitch, and roll. (no yaw)
- Since
- Karma 1.0.0
◆ GetPosition()
const glm::vec3 & Karma::Camera::GetPosition |
( |
| ) |
const |
|
inline |
Getter for current position of the Camers.
- Returns
- glm::vec3 m_Position
- Todo
- Use different data structure, provided in Ganit/Transform.h
- Since
- Karma 1.0.0
◆ GetProjectionMatrix()
const glm::mat4 & Karma::Camera::GetProjectionMatrix |
( |
| ) |
const |
|
inline |
Getter for ProjectionMatrix.
- Since
- Karma 1.0.0
◆ GetRotation()
float Karma::Camera::GetRotation |
( |
| ) |
const |
|
inline |
Getter for current rotation.
- Returns
- float m_Rotation
- Since
- Karma 1.0.0
◆ GetViewMatirx()
const glm::mat4 & Karma::Camera::GetViewMatirx |
( |
| ) |
const |
|
inline |
Getter for ViewMatrix.
- Since
- Karma 1.0.0
◆ LeftMouseButtonPressed()
void Karma::Camera::LeftMouseButtonPressed |
( |
| ) |
|
Differentiates between single button press and drag.
If drag is detected then the relevant orientation of the Camera is computed and applied, by setting m_Pitch and m_Roll, else the status m_IsLeftMouseButtonPressed is set.
- See also
- KarmaAppInputPolling
- Since
- Karma 1.0.0
◆ LeftMouseButtonReleased()
void Karma::Camera::LeftMouseButtonReleased |
( |
| ) |
|
Setting m_IsLeftMouseButtonPressed to false.
- Since
- Karma 1.0.0
◆ MoveForward()
void Karma::Camera::MoveForward |
( |
float | amount | ) |
|
Translate in the direction of front vector.
- Parameters
-
amount | The magnitude of the translation in front direction |
- Since
- Karma 1.0.0
◆ MoveSideways()
void Karma::Camera::MoveSideways |
( |
float | amount | ) |
|
Move sideways in the direction of cross product of front vector and up vector.
- Parameters
-
amount | The magnitude of the translation in the side direction |
- Since
- Karma 1.0.0
◆ MoveUp()
void Karma::Camera::MoveUp |
( |
float | amount | ) |
|
Move in the direction of Up.
- Parameters
-
amount | The magnitude of translation |
- Since
- Karma 1.0.0
◆ RotateAboutXAxis()
void Karma::Camera::RotateAboutXAxis |
( |
float | amount | ) |
|
Rotate about X-axis.
- Parameters
-
amount | The magnitude of the angle of rotation |
- Since
- Karma 1.0.0
◆ RotateAboutYAxis()
void Karma::Camera::RotateAboutYAxis |
( |
float | amount | ) |
|
Rotate about Y-axis.
- Parameters
-
amount | The magnitude of the angle of rotation |
- Since
- Karma 1.0.0
◆ SetCameraFront()
void Karma::Camera::SetCameraFront |
( |
const glm::vec3 & | front | ) |
|
|
inline |
Set the front vector of Camera.
- Parameters
-
front | The value to set the front vector to |
- Since
- Karma 1.0.0
◆ SetCameraUp()
void Karma::Camera::SetCameraUp |
( |
const glm::vec3 & | up | ) |
|
|
inline |
Set the up vector of Camera.
- Parameters
-
up | The value to set the up vector to |
- Since
- Karma 1.0.0
◆ SetPosition()
void Karma::Camera::SetPosition |
( |
const glm::vec3 & | position | ) |
|
Sets the current position of the Camera.
- Parameters
-
position | The position to set to |
- Since
- Karma 1.0.0
◆ SetRotation()
void Karma::Camera::SetRotation |
( |
float | rotation | ) |
|
|
inline |
Sets the current rotation of the Camera.
- Parameters
-
rotation | The rotation to be se |
- Deprecated
- m_Rotation is no longer used for the orientation. See m_Pitch and m_Roll.
- Since
- Karma 1.0.0
The documentation for this class was generated from the following files:
- Karma/src/Karma/Renderer/Camera/Camera.h
- Karma/src/Karma/Renderer/Camera/Camera.cpp