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