VTK  9.1.0
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=========================================================================*/
133#ifndef vtkImageCanvasSource2D_h
134#define vtkImageCanvasSource2D_h
135
136#include "vtkImageAlgorithm.h"
137#include "vtkImagingSourcesModule.h" // For export macro
138
139class VTKIMAGINGSOURCES_EXPORT vtkImageCanvasSource2D : public vtkImageAlgorithm
140{
141public:
146
148 void PrintSelf(ostream& os, vtkIndent indent) override;
149
151
155 vtkSetVector4Macro(DrawColor, double);
156 vtkGetVector4Macro(DrawColor, double);
158
162 void SetDrawColor(double a) { this->SetDrawColor(a, 0.0, 0.0, 0.0); }
163
167 void SetDrawColor(double a, double b) { this->SetDrawColor(a, b, 0.0, 0.0); }
168
172 void SetDrawColor(double a, double b, double c) { this->SetDrawColor(a, b, c, 0.0); }
173
178
180
184 void FillBox(int min0, int max0, int min1, int max1);
185 void FillTube(int x0, int y0, int x1, int y1, double radius);
186 void FillTriangle(int x0, int y0, int x1, int y1, int x2, int y2);
187 void DrawCircle(int c0, int c1, double radius);
188 void DrawPoint(int p0, int p1);
189 void DrawSegment(int x0, int y0, int x1, int y1);
190 void DrawSegment3D(double* p0, double* p1);
191 void DrawSegment3D(double x1, double y1, double z1, double x2, double y2, double z2)
192 {
193 double p1[3], p2[3];
194 p1[0] = x1;
195 p1[1] = y1;
196 p1[2] = z1;
197 p2[0] = x2;
198 p2[1] = y2;
199 p2[2] = z2;
200 this->DrawSegment3D(p1, p2);
201 }
203
208 void DrawImage(int x0, int y0, vtkImageData* i) { this->DrawImage(x0, y0, i, -1, -1, -1, -1); }
209 void DrawImage(int x0, int y0, vtkImageData*, int sx, int sy, int width, int height);
210
216 void FillPixel(int x, int y);
217
219
224 void SetExtent(int* extent);
225 void SetExtent(int x1, int x2, int y1, int y2, int z1, int z2);
227
229
234 vtkSetMacro(DefaultZ, int);
235 vtkGetMacro(DefaultZ, int);
237
239
244 vtkSetVector3Macro(Ratio, double);
245 vtkGetVector3Macro(Ratio, double);
247
249
252 virtual void SetNumberOfScalarComponents(int i);
253 virtual int GetNumberOfScalarComponents() const;
255
257
264 void SetScalarTypeToFloat() { this->SetScalarType(VTK_FLOAT); }
265 void SetScalarTypeToDouble() { this->SetScalarType(VTK_DOUBLE); }
266 void SetScalarTypeToInt() { this->SetScalarType(VTK_INT); }
267 void SetScalarTypeToUnsignedInt() { this->SetScalarType(VTK_UNSIGNED_INT); }
268 void SetScalarTypeToLong() { this->SetScalarType(VTK_LONG); }
269 void SetScalarTypeToUnsignedLong() { this->SetScalarType(VTK_UNSIGNED_LONG); }
270 void SetScalarTypeToShort() { this->SetScalarType(VTK_SHORT); }
271 void SetScalarTypeToUnsignedShort() { this->SetScalarType(VTK_UNSIGNED_SHORT); }
272 void SetScalarTypeToUnsignedChar() { this->SetScalarType(VTK_UNSIGNED_CHAR); }
273 void SetScalarTypeToChar() { this->SetScalarType(VTK_CHAR); }
274 void SetScalarType(int);
275 int GetScalarType() const;
277
278protected:
280 // Destructor: Deleting a vtkImageCanvasSource2D automatically deletes the
281 // associated vtkImageData. However, since the data is reference counted,
282 // it may not actually be deleted.
284
286 int WholeExtent[6];
287 double DrawColor[4];
289 double Ratio[3];
290
291 int ClipSegment(int& a0, int& a1, int& b0, int& b1);
292
295
296private:
298 void operator=(const vtkImageCanvasSource2D&) = delete;
299};
300
301#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).
static vtkImageCanvasSource2D * New()
Construct an instance of vtkImageCanvasSource2D with no data.
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.
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:157
a simple class to control print indentation
Definition: vtkIndent.h:113
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
#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