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

OpenGL

开发平台:

Visual C++

  1. // catalogxref.h
  2. //
  3. // Copyright (C) 2001, Chris Laurel <claurel@shatters.net>
  4. //
  5. // This program is free software; you can redistribute it and/or
  6. // modify it under the terms of the GNU General Public License
  7. // as published by the Free Software Foundation; either version 2
  8. // of the License, or (at your option) any later version.
  9. #ifndef _CATALOGXREF_H_
  10. #define _CATALOGXREF_H_
  11. #include <vector>
  12. #include <string>
  13. #include <iostream>
  14. #include <celengine/star.h>
  15. class CatalogCrossReference
  16. {
  17.  public:
  18.     CatalogCrossReference();
  19.     ~CatalogCrossReference();
  20.     std::string getPrefix() const;
  21.     void setPrefix(const std::string&);
  22.     uint32 parse(const std::string&) const;
  23.     Star* lookup(uint32) const;
  24.     Star* lookup(const std::string&) const;
  25.     void addEntry(uint32 catalogNumber, Star* star);
  26.     void sortEntries();
  27.     void reserve(size_t);
  28.     enum {
  29.         InvalidCatalogNumber = 0xffffffff,
  30.     };
  31.  public:
  32.     class Entry
  33.     {
  34.     public:
  35.         uint32 catalogNumber;
  36.         Star* star;
  37.     };
  38.  private:
  39.     std::string prefix;
  40.     std::vector<Entry> entries;
  41. };
  42. class StarDatabase;
  43. extern CatalogCrossReference* ReadCatalogCrossReference(std::istream&,
  44.                                                         const StarDatabase&);
  45. #endif // _CATALOGXREF_H_