ld33_umonster
annotate src/dragon.h @ 7:92d662deb66e
capsule distance seems broken
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Tue, 25 Aug 2015 00:38:00 +0300 |
parents | 3b4460b34d43 |
children |
rev | line source |
---|---|
nuclear@6 | 1 #ifndef DRAGON_H_ |
nuclear@6 | 2 #define DRAGON_H_ |
nuclear@6 | 3 |
nuclear@6 | 4 #include "vmath/vmath.h" |
nuclear@7 | 5 #include "mesh.h" |
nuclear@7 | 6 #include "metasurf.h" |
nuclear@7 | 7 |
nuclear@7 | 8 struct Capsule { |
nuclear@7 | 9 Vector3 p[2]; |
nuclear@7 | 10 float w[2]; |
nuclear@7 | 11 }; |
nuclear@7 | 12 |
nuclear@7 | 13 struct DynVertex { |
nuclear@7 | 14 float x, y, z; |
nuclear@7 | 15 float nx, ny, nz; |
nuclear@7 | 16 }; |
nuclear@6 | 17 |
nuclear@6 | 18 class Dragon { |
nuclear@6 | 19 private: |
nuclear@6 | 20 Vector3 pos, dir; |
nuclear@6 | 21 Vector3 head_pos, target; |
nuclear@6 | 22 float head_xlim[2], head_ylim[2]; |
nuclear@6 | 23 |
nuclear@7 | 24 struct metasurface *msurf; |
nuclear@7 | 25 |
nuclear@6 | 26 public: |
nuclear@6 | 27 Dragon(); |
nuclear@6 | 28 ~Dragon(); |
nuclear@6 | 29 |
nuclear@6 | 30 void set_position(const Vector3 &p); |
nuclear@6 | 31 void set_direction(const Vector3 &dir); |
nuclear@6 | 32 void set_target(const Vector3 &p); |
nuclear@6 | 33 |
nuclear@6 | 34 void set_head_limits(float xmin, float xmax, float ymin, float ymax); |
nuclear@6 | 35 void move_head(const Vector3 &p); |
nuclear@6 | 36 void move_head(float dx, float dy); |
nuclear@6 | 37 const Vector3 &head_position() const; |
nuclear@6 | 38 Vector3 breath_dir() const; |
nuclear@6 | 39 |
nuclear@6 | 40 void update(); |
nuclear@6 | 41 void draw() const; |
nuclear@7 | 42 |
nuclear@7 | 43 // implementation details, must be public for the msurf callbacks |
nuclear@7 | 44 Capsule *neck_seg; |
nuclear@7 | 45 int neck_seg_count; |
nuclear@7 | 46 DynVertex *dyn_varr; |
nuclear@7 | 47 mutable int dyn_vidx; |
nuclear@7 | 48 unsigned int dyn_vbo; |
nuclear@7 | 49 |
nuclear@7 | 50 void flush_dynvbo() const; |
nuclear@6 | 51 }; |
nuclear@6 | 52 |
nuclear@6 | 53 #endif // DRAGON_H_ |