VTK  9.1.0
vtkGeoProjection.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkGeoProjection.h
5
6 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7 All rights reserved.
8 See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9
10 This software is distributed WITHOUT ANY WARRANTY; without even
11 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12 PURPOSE. See the above copyright notice for more information.
13
14=========================================================================*/
15/*-------------------------------------------------------------------------
16 Copyright 2008 Sandia Corporation.
17 Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
18 the U.S. Government retains certain rights in this software.
19-------------------------------------------------------------------------*/
29#ifndef vtkGeoProjection_h
30#define vtkGeoProjection_h
31
32#include "vtkGeovisCoreModule.h" // For export macro
33#include "vtkObject.h"
34
35struct PJconsts;
36typedef struct PJconsts PJ;
37typedef PJ* projPJ;
38
39class VTKGEOVISCORE_EXPORT vtkGeoProjection : public vtkObject
40{
41public:
43 void PrintSelf(ostream& os, vtkIndent indent) override;
45
50
56 static const char* GetProjectionName(int projection);
57
62 static const char* GetProjectionDescription(int projection);
63
65
71 vtkSetStringMacro(Name);
72 vtkGetStringMacro(Name);
74
79 int GetIndex();
80
85 const char* GetDescription();
86
88
92 vtkSetMacro(CentralMeridian, double);
93 vtkGetMacro(CentralMeridian, double);
95
105
110 void SetOptionalParameter(const char* key, const char* value);
111
115 void RemoveOptionalParameter(const char*);
116
121
126
131
136
138
146 vtkSetStringMacro(PROJ4String);
147 vtkGetStringMacro(PROJ4String);
149
150protected:
153
160 virtual int UpdateProjection();
161
162 char* Name;
167
168private:
169 vtkGeoProjection(const vtkGeoProjection&) = delete;
170 void operator=(const vtkGeoProjection&) = delete;
171
172 class vtkInternals;
173 vtkInternals* Internals;
174};
175
176#endif // vtkGeoProjection_h
Represent a projection from a sphere to a plane.
int GetIndex()
Return the index of the current projection's type in the list of all projection types.
virtual int UpdateProjection()
Determine whether the current projection structure has any changes pending and apply them if necessar...
void SetOptionalParameter(const char *key, const char *value)
Add an optional parameter to the projection that will be computed or replace it if already present.
~vtkGeoProjection() override
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
static int GetNumberOfProjections()
Returns the number of projections that this class offers.
void RemoveOptionalParameter(const char *)
Remove an optional parameter to the projection that will be computed.
static const char * GetProjectionName(int projection)
Returns the name of one of the projections supported by this class.
vtkMTimeType ProjectionMTime
const char * GetDescription()
Get the description of a projection.
void ClearOptionalParameters()
Clear all optional parameters.
static const char * GetProjectionDescription(int projection)
Returns a description of one of the projections supported by this class.
int GetNumberOfOptionalParameters()
Return the number of optional parameters.
static vtkGeoProjection * New()
const char * GetOptionalParameterValue(int index)
Return the number of optional parameters.
projPJ GetProjection()
Return a pointer to the PROJ.4 data structure describing this projection.
const char * GetOptionalParameterKey(int index)
Return the number of optional parameters.
a simple class to control print indentation
Definition: vtkIndent.h:113
abstract base class for most VTK objects
Definition: vtkObject.h:73
@ key
Definition: vtkX3D.h:263
@ value
Definition: vtkX3D.h:226
@ index
Definition: vtkX3D.h:252
struct PJconsts PJ
PJ * projPJ
vtkTypeUInt32 vtkMTimeType
Definition: vtkType.h:287