26 lines
653 B
C
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
|