00001 // opencluster.h 00002 // 00003 // Copyright (C) 2003, Chris Laurel <claurel@shatters.net> 00004 // 00005 // This program is free software; you can redistribute it and/or 00006 // modify it under the terms of the GNU General Public License 00007 // as published by the Free Software Foundation; either version 2 00008 // of the License, or (at your option) any later version. 00009 00010 #ifndef CELENGINE_OPENCLUSTER_H_ 00011 #define CELENGINE_OPENCLUSTER_H_ 00012 00013 #include <vector> 00014 #include <string> 00015 #include <iostream> 00016 #include <celmath/vecmath.h> 00017 #include <celmath/quaternion.h> 00018 #include <celutil/reshandle.h> 00019 #include <celengine/deepskyobj.h> 00020 00021 00022 class OpenCluster : public DeepSkyObject 00023 { 00024 public: 00025 OpenCluster(); 00026 00027 virtual const char* getType() const; 00028 virtual void setType(const std::string&); 00029 virtual size_t getDescription(char* buf, size_t bufLength) const; 00030 00031 virtual bool load(AssociativeArray*, const std::string&); 00032 virtual void render(const GLContext& context, 00033 const Vec3f& offset, 00034 const Quatf& viewerOrientation, 00035 float brightness, 00036 float pixelSize); 00037 00038 virtual unsigned int getRenderMask() const; 00039 virtual unsigned int getLabelMask() const; 00040 00041 public: 00042 enum ClusterType { 00043 Open = 0, 00044 Globular = 1, 00045 NotDefined = 2 00046 }; 00047 00048 private: 00049 // TODO: It could be very useful to have a list of stars that are members 00050 // of the cluster. 00051 }; 00052 00053 #endif // CELENGINE_OPENCLUSTER_H_
1.4.1