VTK  9.2.6
vtkImageCanvasSource2D.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkImageCanvasSource2D.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 =========================================================================*/
136 #ifndef vtkImageCanvasSource2D_h
137 #define vtkImageCanvasSource2D_h
138 
139 #include "vtkImageAlgorithm.h"
140 #include "vtkImagingSourcesModule.h" // For export macro
141 
142 class VTKIMAGINGSOURCES_EXPORT vtkImageCanvasSource2D : public vtkImageAlgorithm
143 {
144 public:
149 
151  void PrintSelf(ostream& os, vtkIndent indent) override;
152 
154 
158  vtkSetVector4Macro(DrawColor, double);
159  vtkGetVector4Macro(DrawColor, double);
161 
165  void SetDrawColor(double a) { this->SetDrawColor(a, 0.0, 0.0, 0.0); }
166 
170  void SetDrawColor(double a, double b) { this->SetDrawColor(a, b, 0.0, 0.0); }
171 
175  void SetDrawColor(double a, double b, double c) { this->SetDrawColor(a, b, c, 0.0); }
176 
181 
183 
187  void FillBox(int min0, int max0, int min1, int max1);
188  void FillTube(int x0, int y0, int x1, int y1, double radius);
189  void FillTriangle(int x0, int y0, int x1, int y1, int x2, int y2);
190  void DrawCircle(int c0, int c1, double radius);
191  void DrawPoint(int p0, int p1);
192  void DrawSegment(int x0, int y0, int x1, int y1);
193  void DrawSegment3D(double* p0, double* p1);
194  void DrawSegment3D(double x1, double y1, double z1, double x2, double y2, double z2)
195  {
196  double p1[3], p2[3];
197  p1[0] = x1;
198  p1[1] = y1;
199  p1[2] = z1;
200  p2[0] = x2;
201  p2[1] = y2;
202  p2[2] = z2;
203  this->DrawSegment3D(p1, p2);
204  }
206 
211  void DrawImage(int x0, int y0, vtkImageData* i) { this->DrawImage(x0, y0, i, -1, -1, -1, -1); }
212  void DrawImage(int x0, int y0, vtkImageData*, int sx, int sy, int width, int height);
213 
219  void FillPixel(int x, int y);
220 
222 
227  void SetExtent(int* extent);
228  void SetExtent(int x1, int x2, int y1, int y2, int z1, int z2);
230 
232 
237  vtkSetMacro(DefaultZ, int);
238  vtkGetMacro(DefaultZ, int);
240 
242 
247  vtkSetVector3Macro(Ratio, double);
248  vtkGetVector3Macro(Ratio, double);
250 
252 
255  virtual void SetNumberOfScalarComponents(int i);
256  virtual int GetNumberOfScalarComponents() const;
258 
260 
267  void SetScalarTypeToFloat() { this->SetScalarType(VTK_FLOAT); }
268  void SetScalarTypeToDouble() { this->SetScalarType(VTK_DOUBLE); }
269  void SetScalarTypeToInt() { this->SetScalarType(VTK_INT); }
270  void SetScalarTypeToUnsignedInt() { this->SetScalarType(VTK_UNSIGNED_INT); }
271  void SetScalarTypeToLong() { this->SetScalarType(VTK_LONG); }
272  void SetScalarTypeToUnsignedLong() { this->SetScalarType(VTK_UNSIGNED_LONG); }
273  void SetScalarTypeToShort() { this->SetScalarType(VTK_SHORT); }
274  void SetScalarTypeToUnsignedShort() { this->SetScalarType(VTK_UNSIGNED_SHORT); }
275  void SetScalarTypeToUnsignedChar() { this->SetScalarType(VTK_UNSIGNED_CHAR); }
276  void SetScalarTypeToChar() { this->SetScalarType(VTK_CHAR); }
277  void SetScalarType(int);
278  int GetScalarType() const;
280 
281 protected:
283  // Destructor: Deleting a vtkImageCanvasSource2D automatically deletes the
284  // associated vtkImageData. However, since the data is reference counted,
285  // it may not actually be deleted.
287 
289  int WholeExtent[6];
290  double DrawColor[4];
291  int DefaultZ;
292  double Ratio[3];
293 
294  int ClipSegment(int& a0, int& a1, int& b0, int& b1);
295 
298 
299 private:
301  void operator=(const vtkImageCanvasSource2D&) = delete;
302 };
303 
304 #endif
Generic algorithm superclass for image algs.
void SetScalarTypeToUnsignedShort()
Set/Get the data scalar type (i.e VTK_DOUBLE).
int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
Subclasses can reimplement this method to collect information from their inputs and set information f...
void DrawImage(int x0, int y0, vtkImageData *i)
Draw subimage of the input image in the canvas at position x0 and y0.
void SetDrawColor(double a, double b)
Set DrawColor to (a, b, 0, 0)
void SetScalarTypeToShort()
Set/Get the data scalar type (i.e VTK_DOUBLE).
virtual void SetNumberOfScalarComponents(int i)
Set the number of scalar components.
void SetDrawColor(double a)
Set DrawColor to (a, 0, 0, 0)
~vtkImageCanvasSource2D() override
void SetDrawColor(double a, double b, double c)
Set DrawColor to (a, b, c, 0)
int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
This is called in response to a REQUEST_DATA request from the executive.
void SetScalarTypeToFloat()
Set/Get the data scalar type (i.e VTK_DOUBLE).
void SetScalarTypeToLong()
Set/Get the data scalar type (i.e VTK_DOUBLE).
void SetScalarTypeToUnsignedChar()
Set/Get the data scalar type (i.e VTK_DOUBLE).
void SetScalarTypeToDouble()
Set/Get the data scalar type (i.e VTK_DOUBLE).
void FillBox(int min0, int max0, int min1, int max1)
Set the pixels inside the box (min0, max0, min1, max1) to the current DrawColor.
void DrawSegment3D(double *p0, double *p1)
Set the pixels inside the box (min0, max0, min1, max1) to the current DrawColor.
static vtkImageCanvasSource2D * New()
Construct an instance of vtkImageCanvasSource2D with no data.
void DrawSegment3D(double x1, double y1, double z1, double x2, double y2, double z2)
Set the pixels inside the box (min0, max0, min1, max1) to the current DrawColor.
void FillTriangle(int x0, int y0, int x1, int y1, int x2, int y2)
Set the pixels inside the box (min0, max0, min1, max1) to the current DrawColor.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void SetExtent(int *extent)
These methods set the WholeExtent of the output It sets the size of the canvas.
int ClipSegment(int &a0, int &a1, int &b0, int &b1)
int GetScalarType() const
Set/Get the data scalar type (i.e VTK_DOUBLE).
void FillPixel(int x, int y)
Fill a colored area with another color.
void DrawSegment(int x0, int y0, int x1, int y1)
Set the pixels inside the box (min0, max0, min1, max1) to the current DrawColor.
void InitializeCanvasVolume(vtkImageData *volume)
Initialize the canvas with a given volume.
void SetExtent(int x1, int x2, int y1, int y2, int z1, int z2)
These methods set the WholeExtent of the output It sets the size of the canvas.
void DrawPoint(int p0, int p1)
Set the pixels inside the box (min0, max0, min1, max1) to the current DrawColor.
void FillTube(int x0, int y0, int x1, int y1, double radius)
Set the pixels inside the box (min0, max0, min1, max1) to the current DrawColor.
void SetScalarTypeToUnsignedInt()
Set/Get the data scalar type (i.e VTK_DOUBLE).
virtual int GetNumberOfScalarComponents() const
Set the number of scalar components.
void SetScalarTypeToInt()
Set/Get the data scalar type (i.e VTK_DOUBLE).
void SetScalarTypeToChar()
Set/Get the data scalar type (i.e VTK_DOUBLE).
void DrawImage(int x0, int y0, vtkImageData *, int sx, int sy, int width, int height)
void DrawCircle(int c0, int c1, double radius)
Set the pixels inside the box (min0, max0, min1, max1) to the current DrawColor.
void SetScalarTypeToUnsignedLong()
Set/Get the data scalar type (i.e VTK_DOUBLE).
void SetScalarType(int)
Set/Get the data scalar type (i.e VTK_DOUBLE).
topologically and geometrically regular array of data
Definition: vtkImageData.h:163
a simple class to control print indentation
Definition: vtkIndent.h:119
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
@ extent
Definition: vtkX3D.h:351
@ height
Definition: vtkX3D.h:260
@ radius
Definition: vtkX3D.h:258
#define VTK_SHORT
Definition: vtkType.h:48
#define VTK_UNSIGNED_INT
Definition: vtkType.h:51
#define VTK_DOUBLE
Definition: vtkType.h:55
#define VTK_UNSIGNED_CHAR
Definition: vtkType.h:47
#define VTK_UNSIGNED_SHORT
Definition: vtkType.h:49
#define VTK_INT
Definition: vtkType.h:50
#define VTK_FLOAT
Definition: vtkType.h:54
#define VTK_CHAR
Definition: vtkType.h:45
#define VTK_UNSIGNED_LONG
Definition: vtkType.h:53
#define VTK_LONG
Definition: vtkType.h:52