starbrowser.h
上传用户:center1979
上传日期:2022-07-26
资源大小:50633k
文件大小:1k
源码类别:

OpenGL

开发平台:

Visual C++

  1. // starbrowser.h
  2. // 
  3. // Copyright (C) 2001, Chris Laurel <claurel@shatters.net>
  4. //
  5. // Star browser tool for celestia.
  6. //
  7. // This program is free software; you can redistribute it and/or
  8. // modify it under the terms of the GNU General Public License
  9. // as published by the Free Software Foundation; either version 2
  10. // of the License, or (at your option) any later version.
  11. #ifndef _CELENGINE_STARBROWSER_H_
  12. #define _CELENGINE_STARBROWSER_H_
  13. #include "star.h"
  14. #include "stardb.h"
  15. #include "simulation.h"
  16. #ifndef MIN
  17. #define MIN(a,b) ((a<b)?a:b)
  18. #endif
  19. class StarBrowser
  20. {
  21.  public:
  22.     enum {
  23.         NearestStars = 0,
  24.         BrighterStars = 1,
  25.         BrightestStars = 2,
  26.         StarsWithPlanets = 3,
  27.     };
  28.     StarBrowser();
  29.     StarBrowser(Simulation *_appSim, int pred = NearestStars);
  30.     std::vector<const Star*>* listStars(unsigned int);
  31.     void setSimulation(Simulation *_appSim);
  32.     const Star *nearestStar(void);
  33.     bool setPredicate(int pred);
  34.     void refresh();
  35.  public:
  36.     // The star browser data is valid for a particular point
  37.     // in space, and for performance issues is not continuously
  38.     // updated.
  39.     Point3f pos;
  40.     UniversalCoord ucPos;
  41.  private:
  42.     Simulation *appSim;
  43.     int predicate;
  44. };
  45. #endif // _CELENGINE_STARBROWSER_H_