Subversion Repositories gelsvn

Rev

Rev 353 | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 353 Rev 630
1
#ifndef __PATHTRACER_LUMINAIRE__H__
1
#ifndef __PATHTRACER_LUMINAIRE__H__
2
#define __PATHTRACER_LUMINAIRE__H__
2
#define __PATHTRACER_LUMINAIRE__H__
3
 
3
 
4
#include <CGLA/Mat4x4f.h>
4
#include <CGLA/Mat4x4f.h>
5
 
5
 
6
#include "core.h"
6
#include "core.h"
7
 
7
 
8
class luminaire
8
class luminaire
9
{
9
{
10
public:
10
public:
11
    luminaire(int samples = 1);
11
    luminaire(int samples = 1);
12
    virtual ~luminaire(void) = 0;
12
    virtual ~luminaire(void) = 0;
13
 
13
 
14
    //transformation matrix
14
    //transformation matrix
15
    const CGLA::Mat4x4f& transform(void) const;
15
    const CGLA::Mat4x4f& transform(void) const;
16
    void set_transform(const CGLA::Mat4x4f&);
16
    void set_transform(const CGLA::Mat4x4f&);
17
 
17
 
18
    //sampling
18
    //sampling
19
    virtual bool sample(const ray&, const hit_info&, CGLA::Vec3f& L,
19
    virtual bool sample(const ray&, const hit_info&, CGLA::Vec3f& L,
20
                        CGLA::Vec3f& w) const = 0;
20
                        CGLA::Vec3f& w) const = 0;
21
 
21
 
22
    //sample count for direct lighting integration
22
    //sample count for direct lighting integration
23
    int samples(void) const;
23
    int samples(void) const;
24
    void set_samples(int);
24
    void set_samples(int);
25
 
25
 
26
protected:
26
protected:
27
    int samples_;
27
    int samples_;
28
    CGLA::Mat4x4f trs_;
28
    CGLA::Mat4x4f trs_;
29
};
29
};
30
 
30
 
31
#endif
31
#endif
32
 
32
 
33
//02566 framework, Anders Wang Kristensen, awk@imm.dtu.dk, 2007
33
//02566 framework, Anders Wang Kristensen, awk@imm.dtu.dk, 2007
34
 
34
 
35
 
35
 
36

Generated by GNU Enscript 1.6.6.
36

Generated by GNU Enscript 1.6.6.
37
 
37
 
38
 
38
 
39
 
39