annotate liberebus/src/geomobj.h @ 2:474a0244f57d
fixed specialization mistake
fixed line endings
added makefiles
author |
John Tsiombikas <nuclear@member.fsf.org> |
date |
Mon, 28 Apr 2014 06:31:10 +0300 |
parents |
4abdce1361b9 |
children |
a932848de652 |
rev |
line source |
nuclear@2
|
1 #ifndef GEOMOBJ_H_
|
nuclear@2
|
2 #define GEOMOBJ_H_
|
nuclear@2
|
3
|
nuclear@2
|
4 #include "object.h"
|
nuclear@2
|
5 #include "brdf.h"
|
nuclear@2
|
6
|
nuclear@2
|
7 class GeomObject : public Object {
|
nuclear@2
|
8 public:
|
nuclear@2
|
9 Reflectance *brdf;
|
nuclear@2
|
10
|
nuclear@2
|
11 ObjType get_type() const override;
|
nuclear@2
|
12
|
nuclear@2
|
13 bool intersect(const Ray &ray, RayHit *hit = 0) const override;
|
nuclear@2
|
14 };
|
nuclear@2
|
15
|
nuclear@2
|
16 class Sphere : public GeomObject {
|
nuclear@2
|
17 public:
|
nuclear@2
|
18 bool intersect(const Ray &ray, RayHit *hit = 0) const override;
|
nuclear@2
|
19 };
|
nuclear@2
|
20
|
nuclear@2
|
21 class Box : public GeomObject {
|
nuclear@2
|
22 public:
|
nuclear@2
|
23 bool intersect(const Ray &ray, RayHit *hit = 0) const override;
|
nuclear@2
|
24 };
|
nuclear@2
|
25
|
nuclear@2
|
26 class Triangle : public GeomObject {
|
nuclear@2
|
27 public:
|
nuclear@2
|
28 Vector3 v[3];
|
nuclear@2
|
29 Vector3 normal;
|
nuclear@2
|
30 Vector3 vnorm[3];
|
nuclear@2
|
31 Vector2 vtex[3];
|
nuclear@2
|
32
|
nuclear@2
|
33 bool intersect(const Ray &ray, RayHit *hit = 0) const override;
|
nuclear@2
|
34 };
|
nuclear@2
|
35
|
nuclear@2
|
36 class Mesh : public GeomObject {
|
nuclear@2
|
37 private:
|
nuclear@2
|
38 std::vector<Triangle> faces;
|
nuclear@2
|
39
|
nuclear@2
|
40 public:
|
nuclear@2
|
41 void begin();
|
nuclear@2
|
42 void vertex(float x, float y, float z);
|
nuclear@2
|
43 void normal(float x, float y, float z);
|
nuclear@2
|
44 void texcoord(float u, float v);
|
nuclear@2
|
45 void end();
|
nuclear@2
|
46
|
nuclear@2
|
47 bool intersect(const Ray &ray, RayHit *hit = 0) const override;
|
nuclear@2
|
48 };
|
nuclear@2
|
49
|
nuclear@2
|
50 #endif // GEOMOBJ_H_
|