You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

141 lines
3.9 KiB
C++

/*=========================================================================
Program: Visualization Toolkit
Module: vtkTableToStructuredGrid.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 vtkTableToStructuredGrid
* @brief converts vtkTable to a vtkStructuredGrid.
*
* vtkTableToStructuredGrid is a filter that converts an input
* vtkTable to a vtkStructuredGrid. It provides API to select columns to use as
* points in the output structured grid. The specified dimensions of the output
* (specified using SetWholeExtent()) must match the number of rows in the input
* table.
*/
#ifndef vtkTableToStructuredGrid_h
#define vtkTableToStructuredGrid_h
#include "vtkFiltersGeneralModule.h" // For export macro
#include "vtkStructuredGridAlgorithm.h"
class vtkTable;
class VTKFILTERSGENERAL_EXPORT vtkTableToStructuredGrid : public vtkStructuredGridAlgorithm
{
public:
static vtkTableToStructuredGrid* New();
vtkTypeMacro(vtkTableToStructuredGrid, vtkStructuredGridAlgorithm);
void PrintSelf(ostream& os, vtkIndent indent) override;
//@{
/**
* Get/Set the whole extents for the image to produce. The size of the image
* must match the number of rows in the input table.
*/
vtkSetVector6Macro(WholeExtent, int);
vtkGetVector6Macro(WholeExtent, int);
//@}
//@{
/**
* Set the name of the column to use as the X coordinate for the points.
*/
vtkSetStringMacro(XColumn);
vtkGetStringMacro(XColumn);
//@}
//@{
/**
* Specify the component for the column specified using SetXColumn() to
* use as the xcoordinate in case the column is a multi-component array.
* Default is 0.
*/
vtkSetClampMacro(XComponent, int, 0, VTK_INT_MAX);
vtkGetMacro(XComponent, int);
//@}
//@{
/**
* Set the name of the column to use as the Y coordinate for the points.
* Default is 0.
*/
vtkSetStringMacro(YColumn);
vtkGetStringMacro(YColumn);
//@}
//@{
/**
* Specify the component for the column specified using SetYColumn() to
* use as the Ycoordinate in case the column is a multi-component array.
*/
vtkSetClampMacro(YComponent, int, 0, VTK_INT_MAX);
vtkGetMacro(YComponent, int);
//@}
//@{
/**
* Set the name of the column to use as the Z coordinate for the points.
* Default is 0.
*/
vtkSetStringMacro(ZColumn);
vtkGetStringMacro(ZColumn);
//@}
//@{
/**
* Specify the component for the column specified using SetZColumn() to
* use as the Zcoordinate in case the column is a multi-component array.
*/
vtkSetClampMacro(ZComponent, int, 0, VTK_INT_MAX);
vtkGetMacro(ZComponent, int);
//@}
protected:
vtkTableToStructuredGrid();
~vtkTableToStructuredGrid() override;
int Convert(vtkTable*, vtkStructuredGrid*, int extent[6]);
/**
* Overridden to specify that input must be a vtkTable.
*/
int FillInputPortInformation(int port, vtkInformation* info) override;
/**
* Convert input vtkTable to vtkStructuredGrid.
*/
int RequestData(vtkInformation* request, vtkInformationVector** inputVector,
vtkInformationVector* outputVector) override;
/**
* Request information -- pass whole extent to the pipeline.
*/
int RequestInformation(vtkInformation* vtkNotUsed(request),
vtkInformationVector** vtkNotUsed(inputVector), vtkInformationVector* outputVector) override;
char* XColumn;
char* YColumn;
char* ZColumn;
int XComponent;
int YComponent;
int ZComponent;
int WholeExtent[6];
private:
vtkTableToStructuredGrid(const vtkTableToStructuredGrid&) = delete;
void operator=(const vtkTableToStructuredGrid&) = delete;
};
#endif