1 #ifndef RAYMARCHING_CAMERA_H
2 #define RAYMARCHING_CAMERA_H
10 #include "syncqueue.h"
11 #include "controlnum.h"
16 #include <Eigen/Dense>
20 using pixel =
unsigned char;
36 using command_pair = std::pair<Camera::CameraCommands, unsigned int>;
38 const unsigned int _awaitFor;
39 const unsigned int _jumpDist;
40 bool _terminate =
false;
43 Eigen::Vector3d _localization;
44 Eigen::Vector3d _forward;
45 Eigen::Vector3d _upward;
46 Eigen::Vector3d _right;
48 std::shared_ptr<Scene> _scene;
49 std::vector<std::thread> _drones;
60 Camera(
const Eigen::Vector3d &localization,
const Eigen::Vector3d &direction,
const Eigen::Vector3d &up)
70 Camera(
const Eigen::Vector3d &localization,
const Eigen::Vector3d &direction,
const Eigen::Vector3d &up,
Settings_t set);
81 std::shared_ptr<Scene>
getScene() {
return _scene; }
95 void setCamera(
const Eigen::Vector3d &localization,
const Eigen::Vector3d &direction,
const Eigen::Vector3d &up);
102 [[noreturn]]
void threadHandler();
110 [[nodiscard]]
Line generateRay(
unsigned int x,
unsigned int y)
const;
122 void applyColor(
const unsigned int &x,
const unsigned int &y,
const color_t &c);
Class representing camera object.
Definition: Camera.h:25
std::shared_ptr< Scene > getScene()
Definition: Camera.h:81
Camera(const Eigen::Vector3d &localization, const Eigen::Vector3d &direction, const Eigen::Vector3d &up, Settings_t set)
~Camera()
Definition: Camera.cpp:28
CameraCommands
Definition: Camera.h:30
pixel * takePhoto()
Definition: Camera.cpp:105
void applyCommand(Camera::CameraCommands cmd)
Definition: Camera.cpp:121
static const color_t BACKGROUND
Definition: Camera.h:34
void setCamera(const Eigen::Vector3d &localization, const Eigen::Vector3d &direction, const Eigen::Vector3d &up)
Definition: Camera.cpp:110
Camera(const Eigen::Vector3d &localization, const Eigen::Vector3d &direction, const Eigen::Vector3d &up)
Definition: Camera.h:60
Atomic unsigned int with condition variable waiter.
Definition: controlnum.h:13
Marching Ray implementation.
Definition: algebra.h:14
Namespace containing all tools implemented within RayMarching package.
Definition: algebra.h:9
constexpr color_t BLACK
Definition: colors.h:32
Container for const Camera Settings.
Definition: settings.h:13
3 byte color representation structure
Definition: colors.h:11