light.h

Go to the documentation of this file.
00001 
00002 //**************************************************************************/
00003 // Copyright (c) 2008 Autodesk, Inc.
00004 // All rights reserved.
00005 //
00006 // Use of this software is subject to the terms of the Autodesk license
00007 // agreement provided at the time of installation or download, or which
00008 // otherwise accompanies this software in either electronic or hard copy form.
00009 //
00010 //**************************************************************************/
00011 // DESCRIPTION:
00012 // CREATED: October 2008
00013 //**************************************************************************/
00014 
00015 namespace mudbox {
00016 
00018 class MBDLL_DECL Light : virtual public GroupNode
00019 {
00020     DECLARE_CLASS;
00021 
00022 protected:
00029     Light( void );
00030 
00031 public:
00032 
00033     enum LightType
00034     {
00035         LIGHT_DIRECTIONAL=0,
00036         LIGHT_POINT,
00037         LIGHT_SPOT,
00038         LIGHT_IBL,
00039         LIGHT_NONE,
00040     };
00041 
00043     virtual Color Diffuse( void ) const;
00044     
00046     virtual void SetDiffuse(
00047         const Color &cDiffuse       
00048         );
00049     
00051     virtual float Intensity( void ) const;
00052     
00054     virtual void SetIntensity(
00055         float fIntensity        
00056         );
00057     
00059     virtual bool IsLockedToCamera( void ) const;
00060     
00062     virtual void SetLockedToCamera(
00063         bool bOnOrOff   
00064         );
00065     
00067     virtual bool Render( void );
00068     
00070     virtual Manipulator *GetManipulator();
00071     
00073     virtual void ValidateShadowMap();
00074     
00076     virtual Texture *ShadowDepthMap();
00077     
00085     virtual const Matrix &ShadowMatrix() const;
00086     
00088     virtual bool CastShadow();
00089     
00097     virtual float ShadowBias();
00098     
00102     virtual LightType Type();
00103     
00107     virtual void SetAttenuation(float);
00108     
00112     virtual float Attenuation(void) const;
00113     
00121     virtual Matrix LockedToCameraMatrix() const;
00122     
00124     virtual Image *HDRImage() const;
00125     
00126     // \brief Returns the path to the associated HDRI image, if any.
00127     //
00128     // Returns a NULL pointer if this is not an HDRI light.  If a valid String pointer is returned, you should NOT delete it;
00129     // it is a pointer into the object data.
00130     virtual const QString *HDRImageFilename() const;
00131 };
00132 
00133 }; // end of namespace mudbox