cloth2
annotate src/object.h @ 0:ef0c22554406
cloth sim test, initial commit
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Mon, 11 Jan 2016 16:51:16 +0200 |
parents | |
children |
rev | line source |
---|---|
nuclear@0 | 1 #ifndef OBJECT_H_ |
nuclear@0 | 2 #define OBJECT_H_ |
nuclear@0 | 3 |
nuclear@0 | 4 #include <gmath/gmath.h> |
nuclear@0 | 5 |
nuclear@0 | 6 using namespace gph; |
nuclear@0 | 7 |
nuclear@0 | 8 class Object; |
nuclear@0 | 9 |
nuclear@0 | 10 struct HitPoint { |
nuclear@0 | 11 float t; |
nuclear@0 | 12 Vector3 pos, normal; |
nuclear@0 | 13 Ray ray; |
nuclear@0 | 14 Object *obj; |
nuclear@0 | 15 }; |
nuclear@0 | 16 |
nuclear@0 | 17 class Object { |
nuclear@0 | 18 public: |
nuclear@0 | 19 virtual ~Object(); |
nuclear@0 | 20 |
nuclear@0 | 21 virtual bool intersect(const Ray &ray, HitPoint *pt) const = 0; |
nuclear@0 | 22 virtual void draw() const = 0; |
nuclear@0 | 23 }; |
nuclear@0 | 24 |
nuclear@0 | 25 class Triangle : public Object { |
nuclear@0 | 26 public: |
nuclear@0 | 27 Vector3 v[3]; |
nuclear@0 | 28 Vector3 normal; |
nuclear@0 | 29 |
nuclear@0 | 30 Triangle(); |
nuclear@0 | 31 Triangle(const Vector3 &a, const Vector3 &b, const Vector3 &c); |
nuclear@0 | 32 |
nuclear@0 | 33 virtual bool intersect(const Ray &ray, HitPoint *pt) const; |
nuclear@0 | 34 virtual void draw() const; |
nuclear@0 | 35 }; |
nuclear@0 | 36 |
nuclear@0 | 37 #endif |