<commit_before>#ifndef CAMERA_H
#define CAMERA_H

class Renderer;
class World;
#include <cstdint>

#include "Point2D.h"
#include "Point3D.h"
#include "Vector3D.h"
#include "Triangle.h"
#include "Renderer.h"

class Camera {
protected:
  const Vector3D 
    m_forward = { 0, 0, 1 },
    m_up = { 0, 1, 0 },
    m_left = { 1, 0, 0 };
  const uint32_t 
    m_near = 2, 
    m_far = 50;

  Point3D m_position;
  uint32_t m_image_height,
    m_image_width;

  Renderer * m_renderer;
public:
    Camera();
    Camera(const Point3D& position, const uint32_t image_height, const uint32_t image_width, Renderer * renderer);
    ~Camera();

    inline const uint32_t get_near_plane() const { return m_near; }
    inline const uint32_t get_far_plane() const { return m_far; }

    void render(const std::string output_name) const;

    const bool insideFrustrum(const Point2D& point_raster, const float depth) const;
    const Point3D viewTransform(const Point3D& point_world) const;
    const Point3D viewTransformInv(const Point3D& point_camera) const;

    const Point2D ndcTransform(const Point2D& point_projected) const;
    const Point2D ndcTransformInv(const Point2D& point_ndc) const;

    const Point2D viewportTransform(const Point2D& point_ndc) const;
    const Point2D viewportTransformInv(const Point2D& point_raster) const;

    virtual const Point2D projectTransform(const Point3D& point_camera) const = 0;
    virtual const Point3D projectTransformInv(const Point2D& point_projected, const double depth) const = 0;
<commit_msg>Increased position of far plane<commit_after>#ifndef CAMERA_H
#define CAMERA_H

class Renderer;
class World;
#include <cstdint>

#include "Point2D.h"
#include "Point3D.h"
#include "Vector3D.h"
#include "Triangle.h"
#include "Renderer.h"

class Camera {
protected:
  const Vector3D 
    m_forward = { 0, 0, 1 },
    m_up = { 0, 1, 0 },
    m_left = { 1, 0, 0 };
  const uint32_t 
    m_near = 2, 
    m_far = 5000;

  Point3D m_position;
  uint32_t m_image_height,
    m_image_width;

  Renderer * m_renderer;
public:
    Camera();
    Camera(const Point3D& position, const uint32_t image_height, const uint32_t image_width, Renderer * renderer);
    ~Camera();

    inline const uint32_t get_near_plane() const { return m_near; }
    inline const uint32_t get_far_plane() const { return m_far; }

    void render(const std::string output_name) const;

    const bool insideFrustrum(const Point2D& point_raster, const float depth) const;
    const Point3D viewTransform(const Point3D& point_world) const;
    const Point3D viewTransformInv(const Point3D& point_camera) const;

    const Point2D ndcTransform(const Point2D& point_projected) const;
    const Point2D ndcTransformInv(const Point2D& point_ndc) const;

    const Point2D viewportTransform(const Point2D& point_ndc) const;
    const Point2D viewportTransformInv(const Point2D& point_raster) const;

    virtual const Point2D projectTransform(const Point3D& point_camera) const = 0;
    virtual const Point3D projectTransformInv(const Point2D& point_projected, const double depth) const = 0;

{'fraction_non_alphanumeric': 0.08436080467229072, 'fraction_numerical': 0.03244646333549643, 'mean_word_length': 4.456637168141593, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4495931', 'n_tokens_mistral': 1117, 'n_tokens_neox': 1041, 'n_words': 298}