/* globals.c */
#include <stdio.h>
#include "globals.h"

float usecs_last_phase=0, usecs_total=0;
float usecs_last_id_rendering=0, usecs_last_importance_propagation=0,
      usecs_ff_computation=0, usecs_shaftculling=0, usecs_last_radiance_propagation = 0;

int	iterationr = 0;

float 	radiance_rescale, maxpower;

/* gebruikt bij keuze van "patch die de grootste volgende bijdrage levert" */
float	Beps;	/* vermogens kleiner dan dit worden niet gepropageerd */
float	Ieps;	/* importances kleiner dan dit worden niet gepropageerd */

/* toleranties voor hierarchische verfijning */
float	Aeps;	/* oppervalktes kleiner dan dit worden nooit verfijnd */
float	Feps;	/* vormfactoren met deze tolerantie zijn aanvaardbaar */
float 	BFeps;	/* voor BF verfijning - wordt automatisch bepaald */
float 	epsfac;	/* nodig om BFeps ... gradueel kleiner te kunnen maken */

/* voor wel of geen gebruik van importantie */
char	ImportanceDriven;

/* voor wel of geen hierarchische verfijning */
char	HierarchicalRefinement;

/* SOUTHWELL or GAUSS_SEIDEL */
char	SolutionMethod;

/* zet op TRUE voor demo mode */
char demo;

/* TRUE als de radiantieberekeningen bezig zijn - wordt ingesteld in main.c */
char working;

/* shaftculling mode: altijd/alleen voor refinement/nooit */
char shaftcullmode;

/* for rendering with ambient term */
int render_ambient;

void SetImportanceDriven(int bool)
{
	ImportanceDriven = bool;
}

void SetHierarchicalRefinement(int bool)
{
	HierarchicalRefinement = bool;
}

void SetTolerances(float _Aeps, float _Feps, float _Beps, float _Ieps)
{
	Aeps = _Aeps;
	Feps = _Feps;
	Beps = _Beps;
	Ieps = _Ieps;
	BFeps = maxpower * Feps;	/* voor BF verfijning */
}

void SetDemoMode(int bool)
{
	demo = bool;
}

void SetShaftcullMode(int mode)
{
	shaftcullmode = mode;
}

void SetRenderAmbient(int bool)
{
	render_ambient = bool;
}

