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

OpenGL

开发平台:

Visual C++

  1. // visibleregion.h
  2. //
  3. // Visible region reference mark for ellipsoidal bodies.
  4. //
  5. // Copyright (C) 2008, the Celestia Development Team
  6. // Initial version by Chris Laurel, claurel@gmail.com
  7. //
  8. // This program is free software; you can redistribute it and/or
  9. // modify it under the terms of the GNU General Public License
  10. // as published by the Free Software Foundation; either version 2
  11. // of the License, or (at your option) any later version.
  12. #ifndef _CELENGINE_VISIBLEREGION_H_
  13. #define _CELENGINE_VISIBLEREGION_H_
  14. #include <celengine/referencemark.h>
  15. #include <celengine/selection.h>
  16. #include <celutil/color.h>
  17. class Body;
  18. /*! VisibleRegion is a reference mark that shows the outline of
  19.  *  region on the surface of a body in which a specified target
  20.  *  is visible.
  21.  */
  22. class VisibleRegion : public ReferenceMark
  23. {
  24. public:
  25.     VisibleRegion(const Body& body, const Selection& target);
  26.     ~VisibleRegion();
  27.     void render(Renderer* renderer,
  28.                 const Point3f& pos,
  29.                 float discSizeInPixels,
  30.                 double tdb) const;
  31.     float boundingSphereRadius() const;
  32.     Color color() const;
  33.     void setColor(Color color);
  34.     float opacity() const;
  35.     void setOpacity(float opacity);
  36. private:
  37.     const Body& m_body;
  38.     const Selection m_target;
  39.     Color m_color;
  40.     float m_opacity;
  41. };
  42. #endif // _CELENGINE_TERMINATOR_H_