<commit_before>#include <iostream>
#include <vector>

#include "World.h"
#include "Renderer.h"
#include "Rasterizer.h"
#include "Camera.h"
#include "Light.h"
#include "DirectionalLight.h"
#include "PointLight.h"
#include "OrthographicCamera.h"

const Point3D   CAMERA_POS  = Point3D(.0f, .0f, -10.0f);
const Vector3D  CAMERA_FWD  = Vector3D(.0f, .0f, 1.0f); // Points into the screen
const Vector3D  CAMERA_UP   = Vector3D(.0f, 1.0f, .0f);

const int IMAGE_WIDTH         = 500;
const int IMAGE_HEIGHT        = 500;
const std::string IMAGE_NAME  = "output.bmp";

//const Material plastic = Material(0.4, 0.4, 2);

const std::vector<GeometryObject*> OBJECTS {
  new GeometryObject()
};

const std::vector<Light*> LIGHTS {
  new PointLight(RGBColor(1.0f), Point3D(0.0f, 100.0f, -50.0f))
};

int main (){
    Camera * camera = new OrthographicCamera(CAMERA_POS, CAMERA_FWD, CAMERA_UP);
    World * world = new World(OBJECTS, LIGHTS, camera);
    Renderer * renderer = new Rasterizer(world, IMAGE_WIDTH, IMAGE_HEIGHT);
    renderer->render(IMAGE_NAME);
    
    return 0;
}<commit_msg>Added pre-processor directive to chooese orthographic or perspective camera<commit_after>#include <iostream>
#include <vector>

#include "World.h"
#include "Renderer.h"
#include "Rasterizer.h"
#include "Camera.h"
#include "Light.h"
#include "DirectionalLight.h"
#include "PointLight.h"
#include "OrthographicCamera.h"
#include "PerspectiveCamera.h"

const Point3D   CAMERA_POS  = Point3D(.0f, .0f, -10.0f);
const Vector3D  CAMERA_FWD  = Vector3D(.0f, .0f, 1.0f); // Points into the screen
const Vector3D  CAMERA_UP   = Vector3D(.0f, 1.0f, .0f);

const int IMAGE_WIDTH         = 500;
const int IMAGE_HEIGHT        = 500;
const std::string IMAGE_NAME  = "output.bmp";

//const Material plastic = Material(0.4, 0.4, 2);

const std::vector<GeometryObject*> OBJECTS {
  new GeometryObject()
};

const std::vector<Light*> LIGHTS {
  new PointLight(RGBColor(1.0f), Point3D(0.0f, 100.0f, -50.0f))
};

Camera * camera;

int main (){
#ifdef _ORTHOGRAPHIC
  camera = new OrthographicCamera(CAMERA_POS, IMAGE_HEIGHT, IMAGE_WIDTH);
#endif 

#ifdef _PERSPECTIVE
  camera = new PerspectiveCamera(CAMERA_POS, IMAGE_HEIGHT, IMAGE_WIDTH);
#endif 

    World * world = new World(OBJECTS, LIGHTS, camera);
    Renderer * renderer = new Rasterizer(world, IMAGE_WIDTH, IMAGE_HEIGHT);
    renderer->render(IMAGE_NAME);
    
    return 0;
}
{'fraction_non_alphanumeric': 0.13606010016694492, 'fraction_numerical': 0.03589315525876461, 'mean_word_length': 4.410835214446952, 'pattern_counts': {'":': 0, '<': 11, '<?xml version=': 0, '>': 13, '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': '50973', 'n_tokens_mistral': 967, 'n_tokens_neox': 911, 'n_words': 214}