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/Camera.h" 00018 00019 namespace nvsg 00020 { 00022 00023 class MonoCamera : public Camera 00024 { 00025 public: 00027 00028 NVSG_API virtual const MonoCamera * clone( void ) const = 0; 00029 00031 00032 NVSG_API virtual nvmath::Mat44f getProjection( void ) const = 0; 00033 00035 00036 NVSG_API virtual float getProjectionDx( void ) const = 0; 00037 00039 00040 NVSG_API virtual nvmath::Mat44f getInverseProjection( void ) const = 0; 00041 00043 NVSG_API virtual void setProjectionDx( float dx 00044 ) = 0; 00045 00046 protected: 00048 NVSG_API MonoCamera( void ); 00049 00051 NVSG_API virtual ~MonoCamera(void); 00052 }; 00053 00054 } // namespace