34 Camera(glm::vec3 initPosition);
42 void setView(
const glm::vec3& newPosition,
double newYaw,
double newPitch);
43 void resetView(
const glm::vec3& newPosition = glm::vec3(0.0f, 10.0f, 30.0f));
48 bool hasTarget()
const {
return targetObject !=
nullptr; }
50 void update(
const glm::vec3* renderTargetPosition =
nullptr);
60 void updateCameraVectors();
62 float aspectRatio = 16.0f / 9.0f;
66 glm::vec3 followOffset{20.0f, 15.0f, 30.0f};
67 glm::vec3 followPivot{0.0f};
static constexpr float kDefaultFov
glm::mat4 getProjMatrix() const
void setView(const glm::vec3 &newPosition, double newYaw, double newPitch)
void update(const glm::vec3 *renderTargetPosition=nullptr)
glm::mat4 getViewMatrix() const
void setClipRange(float nearPlane, float farPlane)
void processKeyboard(Movement direction, float deltaTime)
void processScroll(float wheelSteps)
glm::mat4 getRenderViewMatrix() const
void resetView(const glm::vec3 &newPosition=glm::vec3(0.0f, 10.0f, 30.0f))
const SceneObject * getTarget() const
void processMouseMovement(float xoffset, float yoffset)
static constexpr float kDefaultNearClip
static constexpr float kDefaultFarClip
void focusOn(SceneObject *obj)
void setTarget(SceneObject *obj)
static constexpr float kDefaultMouseSensitivity
void setAspectRatio(float ratio)
static constexpr float kDefaultMovementSpeed