Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

nebula.h

Go to the documentation of this file.
00001 // nebula.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_NEBULA_H_
00011 #define CELENGINE_NEBULA_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 Nebula : public DeepSkyObject
00023 {
00024  public:
00025     Nebula();
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     void setModel(ResourceHandle);
00042     ResourceHandle getModel() const;
00043 
00044  public:
00045     enum NebulaType
00046     {
00047         Emissive           = 0,
00048         Reflective         = 1,
00049         Dark               = 2,
00050         Planetary          = 3,
00051         Galactic           = 4,
00052         SupernovaRemnant   = 5,
00053         Bright_HII_Region  = 6,
00054         NotDefined         = 7
00055     };
00056 
00057  private:
00058     ResourceHandle model;
00059 };
00060 
00061 #endif // CELENGINE_NEBULA_H_

Generated on Sat Jan 14 22:30:28 2006 for Celestia by  doxygen 1.4.1