Jamma Tino Schwarze
cDirectionLight.hh

  • Willkommen
  • Wer ich bin
  • Was ich tue
  • Was ich tat (Archiv)
    • Abitur
    • Studium
      • Arbeiten
      • Computergrafik
    • Aktivitäten
    • Software
    • Wohnen
    • Sonstiges
  • Links
  • Kontakt / Impressum
/* (c) 1999-2000 Tino Schwarze, see COPYING for details */ /**@pkg cObject.cVisibleObject.cInteractiveObject.cLight.cDirectionLight*/ /** * a class for managing a directional OpenGL light * * #include "cDirectionLight.hh" * * -lMesaGL or -lGL * * @see cInteractiveObject * @pkgdoc cObject.cVisibleObject.cInteractiveObject.cLight.cDirectionLight */ #ifndef cDirectionLight_hh #define cDirectionLight_hh // include class cLight to derive from #include "cLight.hh" // include class cColor representing an RGB(A) color for use // with OpenGL #include "cADSEColor.hh" // include common project macros, definitions and headers #include "common.hh" /** * A class for an OpenGL directional light. * The inherited mRotation quaternion is used (in contrast to cLight) * - it modifies the light's direction. */ class cDirectionLight : public cLight { public: /** * default constructor */ cDirectionLight ( cEventDispatcher *disp, const char *name = NULL); #if DEBUG /** * copy constructor (inherited) */ cDirectionLight (const cDirectionLight &); #endif /** * constructor with initialization of position and name * @param dir initial direction of light source * @param state initial state of light source (default: on) * @param name name of light source (optional) */ cDirectionLight ( cEventDispatcher *disp, const cVertex &dir, const char *name = NULL); /** * constructor with initialization of position, state and name * @param dir initial direction of light source * @param state initial state of light source (default: on) * @param name name of light source (optional) */ cDirectionLight ( cEventDispatcher *disp, const cVertex &dir, const teLightState state = LIGHT_ON, const char *name = NULL); /** * constructor with initialization of position, color, state * and name * @param dir initial direction of light source * @param col color of the light source (cADSEColor object) * (emissive color component is not used) * @param state initial state of light source (default: on) * @param name name of light source (optional) */ cDirectionLight ( cEventDispatcher *disp, const cVertex &dir, const cADSEColor &col, const teLightState state = LIGHT_ON, const char *name = NULL); /** * destructor */ virtual ~cDirectionLight (); // OPERATIONS // note: translating the light is obtained via functions inherited from // cVisibleObject (@see cVisibleObject::MoveBy, cVisibleObject::MoveTo) /** * set new direction to point to * @param dir new direction */ virtual void SetDirection (const cVertex &dir); protected: /** * this one performs the actual set up of the light * * (called by Activate()); separeted to simplify * cDirectionLight */ virtual void ActivateLight (); /** * A light is a visible object therefore it needs a drawing function * * Not used here - a DirectionLight cannot be drawn! */ virtual void DrawThisObject (); /** * identify an instance of this class if it's got no name */ virtual const char *GetDefaultName () const { return "cLight"; } /** actual direction */ cVertex mDirection; }; #endif // ifndef cDirectionLight_hh
Copyright © 2025 Jamma Tino Schwarze