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/SimpleCamera.h" 00018 00019 namespace nvsg 00020 { 00022 00023 class ParallelCamera : public SimpleCamera 00024 { 00025 public: 00027 00028 NVSG_API static const ParallelCamera * create( void ); 00029 00031 00032 NVSG_API static const ParallelCamera * createFromBase( const SimpleCamera &rhs 00033 ); 00034 00036 00037 NVSG_API virtual const ParallelCamera * clone( void ) const; 00038 00040 00042 NVSG_API virtual nvmath::Mat44f getProjection() const; 00043 00045 00047 NVSG_API virtual nvmath::Mat44f getInverseProjection() const; 00048 00049 protected: 00051 NVSG_API ParallelCamera(); 00052 00054 NVSG_API ParallelCamera( const SimpleCamera &rhs ); 00055 00057 NVSG_API ParallelCamera( const ParallelCamera &rhs ); 00058 00060 NVSG_API virtual ~ParallelCamera(void); 00061 }; 00062 } // namespace