VTK  9.3.1
vtkGeoProjection.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-FileCopyrightText: Copyright 2008 Sandia Corporation
3 // SPDX-License-Identifier: LicenseRef-BSD-3-Clause-Sandia-USGov
16 #ifndef vtkGeoProjection_h
17 #define vtkGeoProjection_h
18 
19 #include "vtkGeovisCoreModule.h" // For export macro
20 #include "vtkObject.h"
21 
22 struct PJconsts;
23 typedef struct PJconsts PJ;
24 typedef PJ* projPJ;
25 
26 VTK_ABI_NAMESPACE_BEGIN
27 
28 class VTKGEOVISCORE_EXPORT vtkGeoProjection : public vtkObject
29 {
30 public:
31  static vtkGeoProjection* New();
32  void PrintSelf(ostream& os, vtkIndent indent) override;
33  vtkTypeMacro(vtkGeoProjection, vtkObject);
34 
38  static int GetNumberOfProjections();
39 
45  static const char* GetProjectionName(int projection);
46 
51  static const char* GetProjectionDescription(int projection);
52 
54 
60  vtkSetStringMacro(Name);
61  vtkGetStringMacro(Name);
63 
68  int GetIndex();
69 
74  const char* GetDescription();
75 
77 
81  vtkSetMacro(CentralMeridian, double);
82  vtkGetMacro(CentralMeridian, double);
84 
93  projPJ GetProjection();
94 
99  void SetOptionalParameter(const char* key, const char* value);
100 
104  void RemoveOptionalParameter(const char*);
105 
109  int GetNumberOfOptionalParameters();
110 
114  const char* GetOptionalParameterKey(int index);
115 
119  const char* GetOptionalParameterValue(int index);
120 
124  void ClearOptionalParameters();
125 
127 
135  vtkSetStringMacro(PROJ4String);
136  vtkGetStringMacro(PROJ4String);
138 
139 protected:
141  ~vtkGeoProjection() override;
142 
149  virtual int UpdateProjection();
150 
151  char* Name;
155  char* PROJ4String;
156 
157 private:
158  vtkGeoProjection(const vtkGeoProjection&) = delete;
159  void operator=(const vtkGeoProjection&) = delete;
160 
161  class vtkInternals;
162  vtkInternals* Internals;
163 };
164 
165 VTK_ABI_NAMESPACE_END
166 #endif // vtkGeoProjection_h
Represent a projection from a sphere to a plane.
abstract base class for most VTK objects
Definition: vtkObject.h:51
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:270
PJ * projPJ
struct PJconsts PJ
a simple class to control print indentation
Definition: vtkIndent.h:28
vtkMTimeType ProjectionMTime
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...