Starshatter_Open
Open source Starshatter engine
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
Galaxy.h
Go to the documentation of this file.
1 /* Project Starshatter 4.5
2  Destroyer Studios LLC
3  Copyright © 1997-2004. All Rights Reserved.
4 
5  SUBSYSTEM: Stars.exe
6  FILE: Galaxy.h
7  AUTHOR: John DiCamillo
8 
9 
10  OVERVIEW
11  ========
12  Galaxy (list of star systems) for a single campaign.
13 */
14 
15 #ifndef Galaxy_h
16 #define Galaxy_h
17 
18 #include "Types.h"
19 #include "Solid.h"
20 #include "Bitmap.h"
21 #include "Geometry.h"
22 #include "Text.h"
23 #include "Term.h"
24 #include "List.h"
25 
26 // +--------------------------------------------------------------------+
27 
28 class Star;
29 class StarSystem;
30 class Graphic;
31 class Light;
32 class Scene;
33 
34 // +--------------------------------------------------------------------+
35 
36 class Galaxy
37 {
38 public:
39  Galaxy(const char* name);
40  virtual ~Galaxy();
41 
42  int operator == (const Galaxy& s) const { return name == s.name; }
43 
44  // operations:
45  virtual void Load();
46  virtual void Load(const char* filename);
47  virtual void ExecFrame();
48 
49  // accessors:
50  const char* Name() const { return name; }
51  const char* Description() const { return description; }
53  List<Star>& Stars() { return stars; }
54  double Radius() const { return radius; }
55 
56  StarSystem* GetSystem(const char* name);
57  StarSystem* FindSystemByRegion(const char* rgn_name);
58 
59  static void Initialize();
60  static void Close();
61  static Galaxy* GetInstance();
62 
63 protected:
64  char filename[64];
67  double radius; // radius in parsecs
68 
71 };
72 
73 #endif Galaxy_h
74