Subversion Repositories gelsvn

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
346 awk 1
#ifndef __PATHTRACER_SCENE__HPP__
2
#define __PATHTRACER_SCENE__HPP__
3
 
4
#include "core.hpp"
5
#include "luminaire.hpp"
6
#include "camera.hpp"
7
 
8
namespace Geometry { class BSPTree; }
9
 
10
class scene
11
{
12
public:
13
	scene(void);
14
	~scene(void);
15
 
16
	//insert object into scene (all objects are potential luminaires)
17
	size_t luminaires(void) const;
18
	void insert(const luminaire*);
19
	const luminaire* get_luminaire(size_t) const;
20
 
21
	//set the one and only camera
22
	const camera* get_camera(void) const;
23
	void set_camera(const camera*);
24
 
25
	//initialize acceleration structure
26
	void initialize(int max_objs=1<<20, int max_depth=20);
27
 
28
	//intersection testing
29
	bool intersect(const ray&);
30
	bool intersect(const ray&, hit_info&);
31
 
32
private:
33
	const camera* cam_;
34
	std::vector<const luminaire*> objs_;
35
	Geometry::BSPTree* accel_;
36
};
37
 
38
#endif
39
 
40
//02566 framework, Anders Wang Kristensen, awk@imm.dtu.dk, 2007