/*========================================================================= Program: Visualization Toolkit Module: vtkImageGridSource.h Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen All rights reserved. See Copyright.txt or http://www.kitware.com/Copyright.htm for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notice for more information. =========================================================================*/ /** * @class vtkImageGridSource * @brief Create an image of a grid. * * vtkImageGridSource produces an image of a grid. The * default output type is double. */ #ifndef vtkImageGridSource_h #define vtkImageGridSource_h #include "vtkImageAlgorithm.h" #include "vtkImagingSourcesModule.h" // For export macro class VTKIMAGINGSOURCES_EXPORT vtkImageGridSource : public vtkImageAlgorithm { public: static vtkImageGridSource* New(); vtkTypeMacro(vtkImageGridSource, vtkImageAlgorithm); void PrintSelf(ostream& os, vtkIndent indent) override; //@{ /** * Set/Get the grid spacing in pixel units. Default (10,10,0). * A value of zero means no grid. */ vtkSetVector3Macro(GridSpacing, int); vtkGetVector3Macro(GridSpacing, int); //@} //@{ /** * Set/Get the grid origin, in ijk integer values. Default (0,0,0). */ vtkSetVector3Macro(GridOrigin, int); vtkGetVector3Macro(GridOrigin, int); //@} //@{ /** * Set the grey level of the lines. Default 1.0. */ vtkSetMacro(LineValue, double); vtkGetMacro(LineValue, double); //@} //@{ /** * Set the grey level of the fill. Default 0.0. */ vtkSetMacro(FillValue, double); vtkGetMacro(FillValue, double); //@} //@{ /** * Set/Get the data type of pixels in the imported data. * As a convenience, the OutputScalarType is set to the same value. */ vtkSetMacro(DataScalarType, int); void SetDataScalarTypeToDouble() { this->SetDataScalarType(VTK_DOUBLE); } void SetDataScalarTypeToInt() { this->SetDataScalarType(VTK_INT); } void SetDataScalarTypeToShort() { this->SetDataScalarType(VTK_SHORT); } void SetDataScalarTypeToUnsignedShort() { this->SetDataScalarType(VTK_UNSIGNED_SHORT); } void SetDataScalarTypeToUnsignedChar() { this->SetDataScalarType(VTK_UNSIGNED_CHAR); } vtkGetMacro(DataScalarType, int); const char* GetDataScalarTypeAsString() { return vtkImageScalarTypeNameMacro(this->DataScalarType); } //@} //@{ /** * Set/Get the extent of the whole output image, * Default: (0,255,0,255,0,0) */ vtkSetVector6Macro(DataExtent, int); vtkGetVector6Macro(DataExtent, int); //@} //@{ /** * Set/Get the pixel spacing. */ vtkSetVector3Macro(DataSpacing, double); vtkGetVector3Macro(DataSpacing, double); //@} //@{ /** * Set/Get the origin of the data. */ vtkSetVector3Macro(DataOrigin, double); vtkGetVector3Macro(DataOrigin, double); //@} protected: vtkImageGridSource(); ~vtkImageGridSource() override {} int GridSpacing[3]; int GridOrigin[3]; double LineValue; double FillValue; int DataScalarType; int DataExtent[6]; double DataSpacing[3]; double DataOrigin[3]; int RequestInformation(vtkInformation*, vtkInformationVector**, vtkInformationVector*) override; void ExecuteDataWithInformation(vtkDataObject* data, vtkInformation* outInfo) override; private: vtkImageGridSource(const vtkImageGridSource&) = delete; void operator=(const vtkImageGridSource&) = delete; }; #endif