1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89
|
// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
// SPDX-License-Identifier: BSD-3-Clause
/**
* @class vtkExplicitStructuredGridSurfaceFilter
* @brief Filter which creates a surface (polydata) from an explicit structured grid.
*/
#ifndef vtkExplicitStructuredGridSurfaceFilter_h
#define vtkExplicitStructuredGridSurfaceFilter_h
#include "vtkFiltersGeometryModule.h" // For export macro
#include "vtkPolyDataAlgorithm.h"
VTK_ABI_NAMESPACE_BEGIN
class vtkExplicitStructuredGrid;
class vtkIdTypeArray;
class vtkMultiProcessController;
class VTKFILTERSGEOMETRY_EXPORT vtkExplicitStructuredGridSurfaceFilter : public vtkPolyDataAlgorithm
{
public:
static vtkExplicitStructuredGridSurfaceFilter* New();
vtkTypeMacro(vtkExplicitStructuredGridSurfaceFilter, vtkPolyDataAlgorithm);
void PrintSelf(ostream& os, vtkIndent indent) override;
///@{
/**
* If on, the output polygonal dataset will have a celldata array that
* holds the cell index of the original 3D cell that produced each output
* cell. This is useful for cell picking. The default is off to conserve
* memory.
*/
vtkSetMacro(PassThroughCellIds, int);
vtkGetMacro(PassThroughCellIds, int);
vtkBooleanMacro(PassThroughCellIds, int);
vtkSetMacro(PassThroughPointIds, int);
vtkGetMacro(PassThroughPointIds, int);
vtkBooleanMacro(PassThroughPointIds, int);
///@}
///@{
/**
* If PassThroughCellIds or PassThroughPointIds is on, then these ivars
* control the name given to the field in which the ids are written into. If
* set to NULL, then vtkOriginalCellIds or vtkOriginalPointIds (the default)
* is used, respectively.
*/
vtkSetStringMacro(OriginalCellIdsName);
virtual const char* GetOriginalCellIdsName()
{
return (this->OriginalCellIdsName ? this->OriginalCellIdsName : "vtkOriginalCellIds");
}
vtkSetStringMacro(OriginalPointIdsName);
virtual const char* GetOriginalPointIdsName()
{
return (this->OriginalPointIdsName ? this->OriginalPointIdsName : "vtkOriginalPointIds");
}
///@}
protected:
vtkExplicitStructuredGridSurfaceFilter();
~vtkExplicitStructuredGridSurfaceFilter() override;
int RequestInformation(vtkInformation*, vtkInformationVector**, vtkInformationVector*) override;
int RequestUpdateExtent(vtkInformation*, vtkInformationVector**, vtkInformationVector*) override;
int RequestData(vtkInformation*, vtkInformationVector**, vtkInformationVector*) override;
int FillInputPortInformation(int, vtkInformation*) override;
int ExtractSurface(vtkExplicitStructuredGrid*, vtkPolyData*);
// Helper methods.
int PieceInvariant;
int PassThroughCellIds;
char* OriginalCellIdsName;
int PassThroughPointIds;
char* OriginalPointIdsName;
int WholeExtent[6];
private:
vtkExplicitStructuredGridSurfaceFilter(const vtkExplicitStructuredGridSurfaceFilter&) = delete;
void operator=(const vtkExplicitStructuredGridSurfaceFilter&) = delete;
};
VTK_ABI_NAMESPACE_END
#endif
|