Subversion Repositories gelsvn

Rev

Rev 346 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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