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 "vtkGeovisCoreModule.h" // For export macro 00035 #include "vtkObject.h" 00036 00037 struct PROJconsts; 00038 typedef PROJconsts PROJ; 00039 00040 class VTKGEOVISCORE_EXPORT vtkGeoProjection : public vtkObject 00041 { 00042 public: 00043 static vtkGeoProjection* New(); 00044 virtual void PrintSelf( ostream& os, vtkIndent indent ); 00045 vtkTypeMacro(vtkGeoProjection,vtkObject); 00046 00048 static int GetNumberOfProjections(); 00049 00053 static const char* GetProjectionName( int projection ); 00054 00058 static const char* GetProjectionDescription( int projection ); 00059 00061 00065 vtkSetStringMacro(Name); 00066 vtkGetStringMacro(Name); 00068 00072 int GetIndex(); 00073 00076 const char* GetDescription(); 00077 00079 00081 vtkSetMacro(CentralMeridian,double); 00082 vtkGetMacro(CentralMeridian,double); 00084 00093 PROJ* GetProjection(); 00094 00097 void SetOptionalParameter(const char* key, const char* value); 00098 00100 void RemoveOptionalParameter(const char*); 00101 00103 int GetNumberOfOptionalParameters(); 00104 00106 const char* GetOptionalParameterKey(int index); 00107 00109 const char* GetOptionalParameterValue(int index); 00110 00112 void ClearOptionalParameters(); 00113 00114 protected: 00115 vtkGeoProjection(); 00116 virtual ~vtkGeoProjection(); 00117 00121 virtual int UpdateProjection(); 00122 00123 char* Name; 00124 double CentralMeridian; 00125 PROJ* Projection; 00126 vtkTimeStamp ProjectionMTime; 00127 00128 private: 00129 vtkGeoProjection( const vtkGeoProjection& ); // Not implemented. 00130 void operator = ( const vtkGeoProjection& ); // Not implemented. 00131 00132 class vtkInternals; 00133 vtkInternals* Internals; 00134 }; 00135 00136 #endif // __vtkGeoProjection_h