VTK  9.3.1
vtkImplicitImageRepresentation.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-License-Identifier: BSD-3-Clause
25 #ifndef vtkImplicitImageRepresentation_h
26 #define vtkImplicitImageRepresentation_h
27 
28 #include "vtkImagePlaneWidget.h" //For enums
30 #include "vtkInteractionWidgetsModule.h" // For export macro
31 
32 VTK_ABI_NAMESPACE_BEGIN
33 class vtkActor;
34 class vtkImageData;
36 class vtkImageReslice;
37 class vtkLookupTable;
38 class vtkMatrix4x4;
39 class vtkTexture;
41 
42 class VTKINTERACTIONWIDGETS_EXPORT vtkImplicitImageRepresentation
44 {
45 public:
50 
52 
56  void PrintSelf(ostream& os, vtkIndent indent) override;
58 
60 
64  void PlaceImage(vtkImageData* img);
65  void PlaceImage(vtkAlgorithmOutput* aout);
67 
69 
73  void BuildRepresentation() override;
75 
77 
81  vtkSetMacro(UserControlledLookupTable, bool);
82  vtkGetMacro(UserControlledLookupTable, bool);
83  vtkBooleanMacro(UserControlledLookupTable, bool);
85 
87 
94  virtual void SetLookupTable(vtkLookupTable*);
95  vtkGetObjectMacro(LookupTable, vtkLookupTable);
97 
99 
105  vtkSetMacro(TextureInterpolate, bool);
106  vtkGetMacro(TextureInterpolate, bool);
107  vtkBooleanMacro(TextureInterpolate, bool);
109 
111 
114  void SetResliceInterpolate(int);
115  vtkGetMacro(ResliceInterpolate, int);
117  {
118  this->SetResliceInterpolate(VTK_NEAREST_RESLICE);
119  }
120  void SetResliceInterpolateToLinear() { this->SetResliceInterpolate(VTK_LINEAR_RESLICE); }
121  void SetResliceInterpolateToCubic() { this->SetResliceInterpolate(VTK_CUBIC_RESLICE); }
123 
125 
131  virtual void SetColorMap(vtkImageMapToColors*);
132  vtkGetObjectMacro(ColorMap, vtkImageMapToColors);
134 
139  vtkGetObjectMacro(Reslice, vtkImageReslice);
140 
145  void SetCropPlaneToBoundingBox(bool) override;
146 
147 protected:
149  ~vtkImplicitImageRepresentation() override;
150 
156 
157  // These classes implement the imaging pipeline. Note that we
158  // use the superclass plane to draw the image texture.
165  vtkLookupTable* CreateDefaultLookupTable();
166  void UpdatePlane();
167  void GenerateTexturePlane();
168  void CreateDefaultProperties() override;
169 
170  // This enables texture mapping on the cropped plane
172 
173 private:
175  void operator=(const vtkImplicitImageRepresentation&) = delete;
176 };
177 
178 VTK_ABI_NAMESPACE_END
179 #endif
#define VTK_CUBIC_RESLICE
represents an object (geometry & properties) in a rendered scene
Definition: vtkActor.h:40
#define VTK_LINEAR_RESLICE
represent and manipulate 4x4 transformation matrices
Definition: vtkMatrix4x4.h:30
a representation for a vtkImplicitPlaneWidget2 which reslices a volume
map scalar values into colors via a lookup table
Proxy object to connect input/output ports.
void PrintSelf(ostream &os, vtkIndent indent) override
Standard methods for the class.
void SetResliceInterpolateToNearestNeighbour()
Set the interpolation to use when texturing the plane.
a simple class to control print indentation
Definition: vtkIndent.h:28
a class defining the representation for a vtkImplicitPlaneWidget2
#define VTK_NEAREST_RESLICE
topologically and geometrically regular array of data
Definition: vtkImageData.h:42
map the input image through a lookup table
handles properties associated with a texture map
Definition: vtkTexture.h:57
Reslices a volume along a new set of axes.
void BuildRepresentation() override
Methods to interface with the vtkImplicitPlaneWidget2.
static vtkImplicitPlaneRepresentation * New()
Instantiate the class.
void SetResliceInterpolateToLinear()
Set the interpolation to use when texturing the plane.
virtual void CreateDefaultProperties()
void SetResliceInterpolateToCubic()
Set the interpolation to use when texturing the plane.
virtual void SetCropPlaneToBoundingBox(bool)
Control if the plane should be drawn cropped by the bounding box or without cropping.
generate texture coordinates by mapping points to plane