00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
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 
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& ); 
00110   void operator = ( const vtkGeoProjection& ); 
00111 };
00112 
00113 #endif // __vtkGeoProjection_h