Vegastrike 0.5.1 rc1  1.0
Original sources for Vegastrike Evolved
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
halo_system.h
Go to the documentation of this file.
1 #ifndef HALOSYSTEM_H_
2 #define HALOSYSTEM_H_
3 #include <vector>
4 #include "vec.h"
5 class Mesh;
6 class Matrix;
7 struct GFXColor;
8 class Unit;
9 
10 using std::vector;
11 
12 class MyIndHalo
13 {
14 public:
17  MyIndHalo( const QVector &loc, const Vector &size );
18 };
19 
20 void DoParticles( QVector pos, float hullpercent, const Vector &velocity, float radial_size, float hullpct, int faction );
21 void LaunchOneParticle( const Matrix &mat, const Vector &vel, unsigned int seed, Unit *mesh, float hullpct, int faction );
22 
24 {
25 private:
26  std::vector< MyIndHalo >halo;
27 #ifdef CAR_SIM
28  std::vector< class Animation* >ani;
29  std::vector< int >halo_type;
30 #endif
31  Mesh *mesh;
32  float activation;
33  float oscale;
34  double sparkle_accum;
35 public:
36  virtual ~HaloSystem();
37  HaloSystem();
38  QVector& HaloLoc( unsigned int i )
39  {
40  return halo[i].loc;
41  }
42  unsigned int numhalo()
43  {
44  return halo.size();
45  }
46  unsigned int AddHalo( const char *filename,
47  const QVector &loc,
48  const Vector &size,
49  const GFXColor &col,
50  std::string halo_type /*when it grows*/,
51  float activation_accel );
52  bool ShouldDraw( const Matrix &trans, const Vector &velocity, const Vector &accel, float maxaccel, float maxvelocity );
53 //Draw draws smoke and damage fx:
54  void Draw( const Matrix &trans,
55  const Vector &scale,
56  int halo_alpha,
57  float nebdist,
58  float hullpercentage,
59  const Vector &velocity,
60  const Vector &accel,
61  float maxaccel,
62  float maxvelocity,
63  int faction );
64 //unsigned int size(); {return halo.size();}
65  void SetPosition( unsigned int which, const QVector &loc );
66  void SetSize( unsigned int which, const Vector &scale );
67  int NumHalos() const
68  {
69  return halo.size();
70  }
71 };
72 
73 #endif
74