VTK  9.2.6
vtkCoordinate.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkCoordinate.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 =========================================================================*/
63 #ifndef vtkCoordinate_h
64 #define vtkCoordinate_h
65 
66 #include "vtkObject.h"
67 #include "vtkRenderingCoreModule.h" // For export macro
68 class vtkViewport;
69 
70 #define VTK_DISPLAY 0
71 #define VTK_NORMALIZED_DISPLAY 1
72 #define VTK_VIEWPORT 2
73 #define VTK_NORMALIZED_VIEWPORT 3
74 #define VTK_VIEW 4
75 #define VTK_POSE 5
76 #define VTK_WORLD 6
77 #define VTK_USERDEFINED 7
78 
79 class VTKRENDERINGCORE_EXPORT vtkCoordinate : public vtkObject
80 {
81 public:
82  vtkTypeMacro(vtkCoordinate, vtkObject);
83  void PrintSelf(ostream& os, vtkIndent indent) override;
84 
89  static vtkCoordinate* New();
90 
92 
97  vtkSetMacro(CoordinateSystem, int);
98  vtkGetMacro(CoordinateSystem, int);
99  void SetCoordinateSystemToDisplay() { this->SetCoordinateSystem(VTK_DISPLAY); }
101  {
102  this->SetCoordinateSystem(VTK_NORMALIZED_DISPLAY);
103  }
104  void SetCoordinateSystemToViewport() { this->SetCoordinateSystem(VTK_VIEWPORT); }
106  {
107  this->SetCoordinateSystem(VTK_NORMALIZED_VIEWPORT);
108  }
109  void SetCoordinateSystemToView() { this->SetCoordinateSystem(VTK_VIEW); }
110  void SetCoordinateSystemToPose() { this->SetCoordinateSystem(VTK_POSE); }
111  void SetCoordinateSystemToWorld() { this->SetCoordinateSystem(VTK_WORLD); }
113 
114  const char* GetCoordinateSystemAsString();
115 
117 
121  vtkSetVector3Macro(Value, double);
122  vtkGetVector3Macro(Value, double);
123  void SetValue(double a, double b) { this->SetValue(a, b, 0.0); }
125 
127 
132  virtual void SetReferenceCoordinate(vtkCoordinate*);
133  vtkGetObjectMacro(ReferenceCoordinate, vtkCoordinate);
135 
137 
144  void SetViewport(vtkViewport* viewport);
145  vtkGetObjectMacro(Viewport, vtkViewport);
147 
149 
152  double* GetComputedWorldValue(vtkViewport*) VTK_SIZEHINT(3);
153  int* GetComputedViewportValue(vtkViewport*) VTK_SIZEHINT(2);
154  int* GetComputedDisplayValue(vtkViewport*) VTK_SIZEHINT(2);
155  int* GetComputedLocalDisplayValue(vtkViewport*) VTK_SIZEHINT(2);
157 
158  double* GetComputedDoubleViewportValue(vtkViewport*) VTK_SIZEHINT(2);
159  double* GetComputedDoubleDisplayValue(vtkViewport*) VTK_SIZEHINT(2);
160 
167  double* GetComputedValue(vtkViewport*) VTK_SIZEHINT(3);
168 
176  virtual double* GetComputedUserDefinedValue(vtkViewport*) VTK_SIZEHINT(3) { return this->Value; }
177 
178 protected:
179  vtkCoordinate();
180  ~vtkCoordinate() override;
181 
182  double Value[3];
186  double ComputedWorldValue[3];
187  int ComputedDisplayValue[2];
188  int ComputedViewportValue[2];
190 
191  double ComputedDoubleDisplayValue[2];
192  double ComputedDoubleViewportValue[2];
193  double ComputedUserDefinedValue[3];
194 
195 private:
196  vtkCoordinate(const vtkCoordinate&) = delete;
197  void operator=(const vtkCoordinate&) = delete;
198 };
199 
200 #endif
void SetCoordinateSystemToWorld()
Set/get the coordinate system which this coordinate is defined in.
abstract base class for most VTK objects
Definition: vtkObject.h:62
void SetCoordinateSystemToNormalizedViewport()
Set/get the coordinate system which this coordinate is defined in.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
abstract specification for Viewports
Definition: vtkViewport.h:55
void SetValue(double a, double b)
Set/get the value of this coordinate.
#define VTK_POSE
Definition: vtkCoordinate.h:75
#define VTK_NORMALIZED_VIEWPORT
Definition: vtkCoordinate.h:73
void SetCoordinateSystemToDisplay()
Set/get the coordinate system which this coordinate is defined in.
Definition: vtkCoordinate.h:99
#define VTK_VIEW
Definition: vtkCoordinate.h:74
vtkCoordinate * ReferenceCoordinate
void SetCoordinateSystemToNormalizedDisplay()
Set/get the coordinate system which this coordinate is defined in.
void SetCoordinateSystemToPose()
Set/get the coordinate system which this coordinate is defined in.
a simple class to control print indentation
Definition: vtkIndent.h:39
#define VTK_VIEWPORT
Definition: vtkCoordinate.h:72
void SetCoordinateSystemToView()
Set/get the coordinate system which this coordinate is defined in.
#define VTK_NORMALIZED_DISPLAY
Definition: vtkCoordinate.h:71
#define VTK_SIZEHINT(...)
void SetCoordinateSystemToViewport()
Set/get the coordinate system which this coordinate is defined in.
vtkViewport * Viewport
perform coordinate transformation, and represent position, in a variety of vtk coordinate systems ...
Definition: vtkCoordinate.h:79
#define VTK_WORLD
Definition: vtkCoordinate.h:76
static vtkObject * New()
Create an object with Debug turned off, modified time initialized to zero, and reference counting on...
#define VTK_DISPLAY
Definition: vtkCoordinate.h:70