1 #ifndef _SHAPE_H
2 #define _SHAPE_H
3
4 #include "ray.h"
5
6 // abstrakte 3D-Shape Klasse
7 class Shape {
8 public:
9 // intersect
10 virtual bool intersect(
11 const Ray& ray,
12 Vector& point,
13 Vector& normal,
14 double& distance) const = 0;
15 // 'intersect' berechnet den naechsten Intersektionspunkt
16 // zwischen Strahlursprung und Shape. Im Fall eines
17 // Treffers wird in 'point' der Intersektionspunkt, in
18 // 'normal' die normale an der Stelle eingetragen und
19 // true zurueckgegeben. Die Distanz wird in 'distance'
20 // gespeichert. Trifft der Strahl nicht, wird 'false'
21 // zurueck gegeben.
22 };
23
24 #endif // _SHAPE_H
25
26