Go to most recent revision | Blame | Last modification | View Log | RSS feed
#ifndef __PATHTRACER_SCENE__HPP__
#define __PATHTRACER_SCENE__HPP__
#include "core.hpp"
#include "luminaire.hpp"
#include "camera.hpp"
namespace Geometry { class BSPTree; }
class scene
{
public:
scene(void);
~scene(void);
//insert object into scene (all objects are potential luminaires)
size_t luminaires(void) const;
void insert(const luminaire*);
const luminaire* get_luminaire(size_t) const;
//set the one and only camera
const camera* get_camera(void) const;
void set_camera(const camera*);
//initialize acceleration structure
void initialize(int max_objs=1<<20, int max_depth=20);
//intersection testing
bool intersect(const ray&);
bool intersect(const ray&, hit_info&);
private:
const camera* cam_;
std::vector<const luminaire*> objs_;
Geometry::BSPTree* accel_;
};
#endif
//02566 framework, Anders Wang Kristensen, awk@imm.dtu.dk, 2007
Generated by GNU Enscript 1.6.6.