VTK
dox/Geovis/Core/vtkGeoProjection.h
Go to the documentation of this file.
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