VTK  9.3.20240420
vtkImageCanvasSource2D.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
124#ifndef vtkImageCanvasSource2D_h
125#define vtkImageCanvasSource2D_h
126
127#include "vtkImageAlgorithm.h"
128#include "vtkImagingSourcesModule.h" // For export macro
129
130VTK_ABI_NAMESPACE_BEGIN
131class VTKIMAGINGSOURCES_EXPORT vtkImageCanvasSource2D : public vtkImageAlgorithm
132{
133public:
138
140 void PrintSelf(ostream& os, vtkIndent indent) override;
141
143
147 vtkSetVector4Macro(DrawColor, double);
148 vtkGetVector4Macro(DrawColor, double);
150
154 void SetDrawColor(double a) { this->SetDrawColor(a, 0.0, 0.0, 0.0); }
155
159 void SetDrawColor(double a, double b) { this->SetDrawColor(a, b, 0.0, 0.0); }
160
164 void SetDrawColor(double a, double b, double c) { this->SetDrawColor(a, b, c, 0.0); }
165
170
172
176 void FillBox(int min0, int max0, int min1, int max1);
177 void FillTube(int x0, int y0, int x1, int y1, double radius);
178 void FillTriangle(int x0, int y0, int x1, int y1, int x2, int y2);
179 void DrawCircle(int c0, int c1, double radius);
180 void DrawPoint(int p0, int p1);
181 void DrawSegment(int x0, int y0, int x1, int y1);
182 void DrawSegment3D(double* p0, double* p1);
183 void DrawSegment3D(double x1, double y1, double z1, double x2, double y2, double z2)
184 {
185 double p1[3], p2[3];
186 p1[0] = x1;
187 p1[1] = y1;
188 p1[2] = z1;
189 p2[0] = x2;
190 p2[1] = y2;
191 p2[2] = z2;
192 this->DrawSegment3D(p1, p2);
193 }
195
200 void DrawImage(int x0, int y0, vtkImageData* i) { this->DrawImage(x0, y0, i, -1, -1, -1, -1); }
201 void DrawImage(int x0, int y0, vtkImageData*, int sx, int sy, int width, int height);
202
208 void FillPixel(int x, int y);
209
211
216 void SetExtent(int* extent);
217 void SetExtent(int x1, int x2, int y1, int y2, int z1, int z2);
219
221
226 vtkSetMacro(DefaultZ, int);
227 vtkGetMacro(DefaultZ, int);
229
231
236 vtkSetVector3Macro(Ratio, double);
237 vtkGetVector3Macro(Ratio, double);
239
241
244 virtual void SetNumberOfScalarComponents(int i);
245 virtual int GetNumberOfScalarComponents() const;
247
249
256 void SetScalarTypeToFloat() { this->SetScalarType(VTK_FLOAT); }
257 void SetScalarTypeToDouble() { this->SetScalarType(VTK_DOUBLE); }
258 void SetScalarTypeToInt() { this->SetScalarType(VTK_INT); }
259 void SetScalarTypeToUnsignedInt() { this->SetScalarType(VTK_UNSIGNED_INT); }
260 void SetScalarTypeToLong() { this->SetScalarType(VTK_LONG); }
261 void SetScalarTypeToUnsignedLong() { this->SetScalarType(VTK_UNSIGNED_LONG); }
262 void SetScalarTypeToShort() { this->SetScalarType(VTK_SHORT); }
263 void SetScalarTypeToUnsignedShort() { this->SetScalarType(VTK_UNSIGNED_SHORT); }
264 void SetScalarTypeToUnsignedChar() { this->SetScalarType(VTK_UNSIGNED_CHAR); }
265 void SetScalarTypeToChar() { this->SetScalarType(VTK_CHAR); }
266 void SetScalarType(int);
267 int GetScalarType() const;
269
270protected:
272 // Destructor: Deleting a vtkImageCanvasSource2D automatically deletes the
273 // associated vtkImageData. However, since the data is reference counted,
274 // it may not actually be deleted.
276
278 int WholeExtent[6];
279 double DrawColor[4];
281 double Ratio[3];
282
283 int ClipSegment(int& a0, int& a1, int& b0, int& b1);
284
287
288private:
290 void operator=(const vtkImageCanvasSource2D&) = delete;
291};
292
293VTK_ABI_NAMESPACE_END
294#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
a simple class to control print indentation
Definition vtkIndent.h:108
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
#define VTK_SHORT
Definition vtkType.h:36
#define VTK_UNSIGNED_INT
Definition vtkType.h:39
#define VTK_DOUBLE
Definition vtkType.h:43
#define VTK_UNSIGNED_CHAR
Definition vtkType.h:35
#define VTK_UNSIGNED_SHORT
Definition vtkType.h:37
#define VTK_INT
Definition vtkType.h:38
#define VTK_FLOAT
Definition vtkType.h:42
#define VTK_CHAR
Definition vtkType.h:33
#define VTK_UNSIGNED_LONG
Definition vtkType.h:41
#define VTK_LONG
Definition vtkType.h:40