intravenous

annotate src/ship.h @ 6:2723dc026c4f

collision detection
author John Tsiombikas <nuclear@member.fsf.org>
date Mon, 23 Apr 2012 21:43:10 +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_