VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkGeoProjection.h 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 vtkTypeMacro(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 00096 void SetOptionalParameter(const char* key, const char* value); 00097 00099 void RemoveOptionalParameter(const char*); 00100 00102 int GetNumberOfOptionalParameters(); 00103 00105 const char* GetOptionalParameterKey(int index); 00106 00108 const char* GetOptionalParameterValue(int index); 00109 00111 void ClearOptionalParameters(); 00112 00113 protected: 00114 vtkGeoProjection(); 00115 virtual ~vtkGeoProjection(); 00116 00120 virtual int UpdateProjection(); 00121 00122 char* Name; 00123 double CentralMeridian; 00124 PROJ* Projection; 00125 vtkTimeStamp ProjectionMTime; 00126 00127 private: 00128 vtkGeoProjection( const vtkGeoProjection& ); // Not implemented. 00129 void operator = ( const vtkGeoProjection& ); // Not implemented. 00130 00131 class vtkInternals; 00132 vtkInternals* Internals; 00133 }; 00134 00135 #endif // __vtkGeoProjection_h