124 orientation = glm::normalize(orientation);
168 std::string _bufferTarget;
170 SERIALIZATION_FRIEND(
Camera);
180 std::ostream&
operator<<(std::ostream& os, Camera& camera);
#define SERIALIZATION_ACCESS(type)
void _updateValue(T &member, const T &newValue, const bool triggerCallback=true)
The Camera class is an abstract interface for a camera in a 3D graphics application....
PLATFORM_API void setInitialState(const Vector3d &position, const Quaterniond &orientation, const Vector3d &target=Vector3d(0.0, 0.0, 0.0))
Sets the initial state of the camera.
PLATFORM_API void reset()
Resets the camera to its initial values.
PLATFORM_API void setTarget(const Vector3d &target)
Sets the camera target.
virtual PLATFORM_API ~Camera()=default
Default destructor.
PLATFORM_API void setPosition(const Vector3d &position)
Sets the camera position.
PLATFORM_API const Vector3d & getTarget() const
Gets the camera target.
PLATFORM_API Camera()=default
Default constructor.
PLATFORM_API void setBufferTarget(const std::string &target)
Sets the name of the current rendered frame buffer.
PLATFORM_API const Vector3d & getPosition() const
Gets the camera position.
PLATFORM_API Camera & operator=(const Camera &rhs)
Copy constructor.
PLATFORM_API void set(const Vector3d &position, const Quaterniond &orientation, const Vector3d &target=Vector3d(0.0, 0.0, 0.0))
Sets the position, orientation quaternion, and target of the camera.
PLATFORM_API void setEngine(Engine *engine)
Set the Engine object.
PLATFORM_API const std::string & getBufferTarget() const
Gets the name of the current rendered frame buffer.
virtual PLATFORM_API void commit()
Commits any changes made to the camera object so that attributes become available to the rendering en...
PLATFORM_API const Quaterniond & getOrientation() const
Gets the camera orientation quaternion.
PLATFORM_API void setOrientation(Quaterniond orientation)
Sets the camera orientation quaternion.
Provides an abstract implementation of a ray-tracing engine.
glm::vec< 3, double > Vector3d
glm::tquat< double, glm::highp > Quaterniond
Double quaternion.
std::ostream & operator<<(std::ostream &os, const Box< T > &aabb)