00001 // Copyright NVIDIA Corporation 2002-2004 00002 // TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THIS SOFTWARE IS PROVIDED 00003 // *AS IS* AND NVIDIA AND ITS SUPPLIERS DISCLAIM ALL WARRANTIES, EITHER EXPRESS 00004 // OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY 00005 // AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL NVIDIA OR ITS SUPPLIERS 00006 // BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT, OR CONSEQUENTIAL DAMAGES 00007 // WHATSOEVER (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, 00008 // BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR ANY OTHER PECUNIARY LOSS) 00009 // ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF NVIDIA HAS 00010 // BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES 00011 00012 #pragma once 00013 00015 #include "nvsgcommon.h" 00016 00017 #include "nvsg/LightSource.h" 00018 #include "nvmath/Vec3f.h" 00019 00020 namespace nvsg 00021 { 00023 00028 class DirectedLight : public LightSource 00029 { 00030 public: 00032 00033 NVSG_API static const DirectedLight * create( void ); 00034 00036 00037 NVSG_API static const DirectedLight * createFromBase( const LightSource &rhs 00038 ); 00039 00041 00042 NVSG_API virtual const DirectedLight * clone( void ) const; 00043 00044 //-- Functions reimplemented from Object -- 00045 NVSG_API virtual DataID getDataID( void ) const; 00046 NVSG_API virtual bool isDataShared( void ) const; 00047 00048 protected: 00050 NVSG_API DirectedLight( void ); 00051 00053 NVSG_API DirectedLight( const LightSource &rhs ); 00054 00056 NVSG_API DirectedLight( const DirectedLight &rhs ); 00057 00059 NVSG_API virtual ~DirectedLight(void); 00060 }; 00061 00062 } // namespace nvsg