intravenous
annotate src/ship.h @ 10:8fbdc6f84f64
fixed after the change in vmath
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Fri, 31 May 2013 01:30:14 +0300 |
parents | 94d4c60af435 |
children |
rev | line source |
---|---|
nuclear@1 | 1 #ifndef SHIP_H_ |
nuclear@1 | 2 #define SHIP_H_ |
nuclear@1 | 3 |
nuclear@1 | 4 #include <vmath/vmath.h> |
nuclear@1 | 5 #include "game.h" |
nuclear@1 | 6 |
nuclear@6 | 7 class Vein; |
nuclear@6 | 8 |
nuclear@6 | 9 struct HitPoint { |
nuclear@6 | 10 Vector3 pos; |
nuclear@6 | 11 Vector3 normal; |
nuclear@6 | 12 }; |
nuclear@6 | 13 |
nuclear@1 | 14 class Ship { |
nuclear@1 | 15 private: |
nuclear@1 | 16 Vector3 pos, velocity; |
nuclear@1 | 17 Quaternion rot; |
nuclear@1 | 18 double friction; |
nuclear@6 | 19 Vein *vein; |
nuclear@1 | 20 |
nuclear@1 | 21 public: |
nuclear@6 | 22 Ship(Vein *vein); |
nuclear@1 | 23 |
nuclear@1 | 24 void accelerate(double a); |
nuclear@3 | 25 void accelerate_side(double a); |
nuclear@1 | 26 void turn(double yaw, double pitch); |
nuclear@1 | 27 |
nuclear@1 | 28 void update(time_sec_t dt); |
nuclear@1 | 29 |
nuclear@6 | 30 bool collision(const Vein *vein, const Vector3 &start, const Vector3 &end, HitPoint *hit) const; |
nuclear@6 | 31 |
nuclear@1 | 32 const Vector3 &get_position() const; |
nuclear@1 | 33 Vector3 get_direction() const; |
nuclear@3 | 34 Vector3 get_right() const; |
nuclear@1 | 35 |
nuclear@1 | 36 Matrix4x4 get_matrix() const; |
nuclear@1 | 37 |
nuclear@1 | 38 void dbg_draw() const; |
nuclear@1 | 39 }; |
nuclear@1 | 40 |
nuclear@1 | 41 |
nuclear@1 | 42 #endif // SHIP_H_ |