accelerated-raytracer/src/Camera.h

26 lines
653 B
C++

#ifndef RAYTRYCPP_CAMERA_H
#define RAYTRYCPP_CAMERA_H
#include "Ray.h"
#include <QImage>
#include <QVector3D>
namespace raytry {
class Camera {
private:
QVector3D forwardVec{0.0, 1.0, 0.0};
QVector3D upVec{0.0, 0.0, 1.0};
QVector3D rightVec{1.0, 0.0, 0.0};
QVector3D positionVec{0.0, 0.0, 1.8};
float hfov{110.0f};
float planeDistance{0.2f};
public:
void for_each_ray(const QImage &image, const std::function<void(int, int, raytry::Ray)>& consumer);
const QVector3D& pos() const;
const QVector3D& fwd() const;
};
}// namespace raytry
#endif//RAYTRYCPP_CAMERA_H