/* config.h */

#pragma once

// Exported image resolution
#define	WIN_SIZE_X 600
#define WIN_SIZE_Y 400

// Amount of threads to use when drawing the canvas.
#define THREADCOUNT 8

// Amount of times to recurse when tracing reflections and refractions.
#define REFLECTIONS 4

// Enable textured surfaces.
#define ENABLE_TEXTURES

// In textured surfaces: Enable bilinear filtering.
#define ENABLE_BILINEAR_TEXTURES

// Enable full-scene antialiasing (4xFSAA) aka Supersampling.
#define ENABLE_FSAA

// Enable reflection
#define ENABLE_REFLECTION

// Enable refraction
#define ENABLE_REFRACTION
#define AMBIENT_REFRACTIVE_INDEX 1.0

// Enable Phong illumination and shadows.
#define ENABLE_LIGHTING

// In Phong illumination: Enable shadows.
#define ENABLE_SHADOWS

// In Phong illumination: Enable shininess / specular highlights.
#define ENABLE_SPECULAR_HIGHLIGHTS

// Enable testing for some invalid geometry or light physics in-loop
#define GEO_DEBUG

// Enable Moeller-Trumbore algorithm for fast ray-triangle intersection.
// Otherwise, even-odd method will be used, as for quads.
#define FAST_TRIANGLES

// Enable finding CSG normals.
// This might cause a speed penalty overall since CSG breaks some key object
//  abstractions, requiring more parameters passed to general functions
//#define ENABLE_CSG_NORMALS

// Scene selection: Select one of the following
#define SCENE_DEFAULT
//#define SCENE_CSGTEST
//#define SCENE_TEAPOT