tavli
diff src/board.h @ 21:c3fbf9616dbd
slot bounds, and ray testing
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Thu, 02 Jul 2015 00:01:39 +0300 |
parents | 16a420432aa3 |
children | c2a2069a49ec |
line diff
1.1 --- a/src/board.h Mon Jun 29 21:55:36 2015 +0300 1.2 +++ b/src/board.h Thu Jul 02 00:01:39 2015 +0300 1.3 @@ -3,6 +3,7 @@ 1.4 1.5 #include <vector> 1.6 #include "object.h" 1.7 +#include "mesh.h" 1.8 #include "image.h" 1.9 1.10 #define NUM_SLOTS 20 1.11 @@ -24,11 +25,22 @@ 1.12 void move_to(int slot, int level, bool anim = true); 1.13 }; 1.14 1.15 +// for slot bounds 1.16 +class Quad { 1.17 +public: 1.18 + Triangle tri0, tri1; 1.19 + 1.20 + Quad(); 1.21 + Quad(const Vector3 &v0, const Vector3 &v1, const Vector3 &v2, const Vector3 &v3); 1.22 + 1.23 + bool intersect(const Ray &ray, HitPoint *hit = 0) const; 1.24 +}; 1.25 1.26 class Board { 1.27 private: 1.28 Piece pieces[MAX_PIECES]; 1.29 int hist[NUM_SLOTS + 1]; 1.30 + Quad slotbb[NUM_SLOTS]; 1.31 1.32 std::vector<Object*> obj; 1.33 Object *piece_obj; 1.34 @@ -53,6 +65,8 @@ 1.35 1.36 Vector3 piece_pos(int slot, int level = 0) const; 1.37 1.38 + int slot_hit(const Ray &ray) const; 1.39 + 1.40 void draw() const; 1.41 }; 1.42