VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkGeoProjection.h,v $ 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00015 /*------------------------------------------------------------------------- 00016 Copyright 2008 Sandia Corporation. 00017 Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, 00018 the U.S. Government retains certain rights in this software. 00019 -------------------------------------------------------------------------*/ 00031 #ifndef __vtkGeoProjection_h 00032 #define __vtkGeoProjection_h 00033 00034 #include "vtkObject.h" 00035 00036 struct PROJconsts; 00037 typedef PROJconsts PROJ; 00038 00039 class VTK_GEOVIS_EXPORT vtkGeoProjection : public vtkObject 00040 { 00041 public: 00042 static vtkGeoProjection* New(); 00043 virtual void PrintSelf( ostream& os, vtkIndent indent ); 00044 vtkTypeRevisionMacro(vtkGeoProjection,vtkObject); 00045 00047 static int GetNumberOfProjections(); 00048 00052 static const char* GetProjectionName( int projection ); 00053 00057 static const char* GetProjectionDescription( int projection ); 00058 00060 00064 vtkSetStringMacro(Name); 00065 vtkGetStringMacro(Name); 00067 00071 int GetIndex(); 00072 00075 const char* GetDescription(); 00076 00078 00080 vtkSetMacro(CentralMeridian,double); 00081 vtkGetMacro(CentralMeridian,double); 00083 00092 PROJ* GetProjection(); 00093 00094 protected: 00095 vtkGeoProjection(); 00096 virtual ~vtkGeoProjection(); 00097 00101 virtual int UpdateProjection(); 00102 00103 char* Name; 00104 double CentralMeridian; 00105 PROJ* Projection; 00106 vtkTimeStamp ProjectionMTime; 00107 00108 private: 00109 vtkGeoProjection( const vtkGeoProjection& ); // Not implemented. 00110 void operator = ( const vtkGeoProjection& ); // Not implemented. 00111 }; 00112 00113 #endif // __vtkGeoProjection_h