VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 00005 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00006 All rights reserved. 00007 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00008 00009 This software is distributed WITHOUT ANY WARRANTY; without even 00010 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00011 PURPOSE. See the above copyright notice for more information. 00012 00013 =========================================================================*/ 00021 #ifndef vtkOpenGLCamera_h 00022 #define vtkOpenGLCamera_h 00023 00024 #include "vtkRenderingOpenGL2Module.h" // For export macro 00025 #include "vtkCamera.h" 00026 00027 class vtkOpenGLRenderer; 00028 class vtkMatrix3x3; 00029 class vtkMatrix4x4; 00030 00031 class VTKRENDERINGOPENGL2_EXPORT vtkOpenGLCamera : public vtkCamera 00032 { 00033 public: 00034 static vtkOpenGLCamera *New(); 00035 vtkTypeMacro(vtkOpenGLCamera, vtkCamera); 00036 virtual void PrintSelf(ostream& os, vtkIndent indent); 00037 00039 void Render(vtkRenderer *ren); 00040 00041 void UpdateViewport(vtkRenderer *ren); 00042 00043 void GetKeyMatrices(vtkRenderer *ren, vtkMatrix4x4 *&WCVCMatrix, 00044 vtkMatrix3x3 *&normalMatrix, vtkMatrix4x4 *&VCDCMatrix, vtkMatrix4x4 *&WCDCMatrix); 00045 00046 protected: 00047 vtkOpenGLCamera(); 00048 ~vtkOpenGLCamera(); 00049 00050 vtkMatrix4x4 *WCDCMatrix; 00051 vtkMatrix4x4 *WCVCMatrix; 00052 vtkMatrix3x3 *NormalMatrix; 00053 vtkMatrix4x4 *VCDCMatrix; 00054 vtkTimeStamp KeyMatrixTime; 00055 vtkRenderer *LastRenderer; 00056 00057 private: 00058 vtkOpenGLCamera(const vtkOpenGLCamera&); // Not implemented. 00059 void operator=(const vtkOpenGLCamera&); // Not implemented. 00060 }; 00061 00062 #endif