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