-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
336113f
commit cc3f481
Showing
24 changed files
with
234 additions
and
109 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
#include "Camera.h" | ||
|
||
namespace Vixen { | ||
Camera::Camera(float fieldOfView, float nearPlane, float farPlane, glm::vec3 clearColor) | ||
: position(0, 0, 0), | ||
// rotation(glm::quat{}), | ||
rotation({}), | ||
fieldOfView(fieldOfView), | ||
nearPlane(nearPlane), | ||
farPlane(farPlane), | ||
clearColor(clearColor) {} | ||
|
||
glm::mat4 Camera::view() const { | ||
// const auto &reverse = glm::conjugate(rotation); | ||
// glm::mat4 rot = glm::toMat4(reverse); | ||
// glm::mat4 translation = glm::translate({1.0}, -position); | ||
// | ||
// return rot * translation; | ||
return glm::lookAt( | ||
position, | ||
position + rotation, | ||
{0.0f, 1.0f, 0.0f} | ||
); | ||
} | ||
|
||
glm::mat4 Camera::perspective(float aspectRatio) const { | ||
return glm::perspective( | ||
glm::radians(fieldOfView), | ||
aspectRatio, | ||
nearPlane, | ||
farPlane | ||
); | ||
} | ||
|
||
const glm::vec3 &Camera::getPosition() const { | ||
return position; | ||
} | ||
|
||
// const glm::quat &Camera::getRotation() const { | ||
// return rotation; | ||
// } | ||
|
||
glm::vec3 Camera::getEulerRotation() const { | ||
// return glm::eulerAngles(rotation); | ||
return rotation; | ||
} | ||
|
||
float Camera::getNearPlane() const { | ||
return nearPlane; | ||
} | ||
|
||
float Camera::getFarPlane() const { | ||
return farPlane; | ||
} | ||
|
||
const glm::vec3 &Camera::getClearColor() const { | ||
return clearColor; | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
#pragma once | ||
|
||
#include <glm/glm.hpp> | ||
#include <glm/gtc/matrix_transform.hpp> | ||
#include <glm/gtc/quaternion.hpp> | ||
#include <glm/gtx/quaternion.hpp> | ||
|
||
namespace Vixen { | ||
class Camera { | ||
explicit Camera( | ||
float fieldOfView = 114.0f, | ||
float nearPlane = 0.01f, | ||
float farPlane = 1000.0f, | ||
glm::vec3 clearColor = {0.0f, 0.0f, 0.0f} | ||
); | ||
|
||
[[nodiscard]] glm::mat4 view() const; | ||
|
||
[[nodiscard]] glm::mat4 perspective(float aspectRatio) const; | ||
|
||
public: | ||
[[nodiscard]] const glm::vec3 &getPosition() const; | ||
|
||
// [[nodiscard]] const glm::quat &getRotation() const; | ||
|
||
[[nodiscard]] glm::vec3 getEulerRotation() const; | ||
|
||
[[nodiscard]] float getNearPlane() const; | ||
|
||
[[nodiscard]] float getFarPlane() const; | ||
|
||
[[nodiscard]] const glm::vec3 &getClearColor() const; | ||
|
||
private: | ||
glm::vec3 position; | ||
|
||
//glm::quat rotation; | ||
glm::vec3 rotation; | ||
|
||
float fieldOfView; | ||
|
||
float nearPlane; | ||
|
||
float farPlane; | ||
|
||
glm::vec3 clearColor; | ||
}; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.