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.

122 lines
3.9 KiB
C++

/*=========================================================================
Program: Visualization Toolkit
Module: vtkPointDataToCellData.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 vtkPointDataToCellData
* @brief map point data to cell data
*
* vtkPointDataToCellData is a filter that transforms point data (i.e., data
* specified per point) into cell data (i.e., data specified per cell).
* The method of transformation is based on averaging the data
* values of all points defining a particular cell. For large datasets with
* several cell data arrays, the filter optionally supports selective
* processing to speed up processing. Optionally, the input point
* data can be passed through to the output as well.
*
* @warning
* This filter is an abstract filter, that is, the output is an abstract type
* (i.e., vtkDataSet). Use the convenience methods (e.g.,
* GetPolyDataOutput(), GetStructuredPointsOutput(), etc.) to get the type
* of output you want.
*
* @sa
* vtkPointData vtkCellData vtkCellDataToPointData
*/
#ifndef vtkPointDataToCellData_h
#define vtkPointDataToCellData_h
#include "vtkDataSetAlgorithm.h"
#include "vtkFiltersCoreModule.h" // For export macro
class VTKFILTERSCORE_EXPORT vtkPointDataToCellData : public vtkDataSetAlgorithm
{
public:
static vtkPointDataToCellData* New();
vtkTypeMacro(vtkPointDataToCellData, vtkDataSetAlgorithm);
void PrintSelf(ostream& os, vtkIndent indent) override;
//@{
/**
* Control whether the input point data is to be passed to the output. If
* on, then the input point data is passed through to the output; otherwise,
* only generated point data is placed into the output.
*/
vtkSetMacro(PassPointData, bool);
vtkGetMacro(PassPointData, bool);
vtkBooleanMacro(PassPointData, bool);
//@}
//@{
/**
* Control whether the input point data is to be treated as categorical. If
* the data is categorical, then the resultant cell data will be determined by
* a "majority rules" vote, with ties going to the smaller value.
*/
vtkSetMacro(CategoricalData, bool);
vtkGetMacro(CategoricalData, bool);
vtkBooleanMacro(CategoricalData, bool);
//@}
//@{
/**
* Activate selective processing of arrays. If inactive, only arrays selected
* by the user will be considered by this filter. The default is true.
*/
vtkSetMacro(ProcessAllArrays, bool);
vtkGetMacro(ProcessAllArrays, bool);
vtkBooleanMacro(ProcessAllArrays, bool);
//@}
/**
* Adds an array to be processed. This only has an effect if the
* ProcessAllArrays option is turned off. If a name is already present,
* nothing happens.
*/
virtual void AddPointDataArray(const char* name);
/**
* Removes an array to be processed. This only has an effect if the
* ProcessAllArrays option is turned off. If the specified name is not
* present, nothing happens.
*/
virtual void RemovePointDataArray(const char* name);
/**
* Removes all arrays to be processed from the list. This only has an effect
* if the ProcessAllArrays option is turned off.
*/
virtual void ClearPointDataArrays();
protected:
vtkPointDataToCellData();
~vtkPointDataToCellData() override;
int RequestData(vtkInformation* request, vtkInformationVector** inputVector,
vtkInformationVector* outputVector) override;
bool PassPointData;
bool CategoricalData;
bool ProcessAllArrays;
class Internals;
Internals* Implementation;
private:
vtkPointDataToCellData(const vtkPointDataToCellData&) = delete;
void operator=(const vtkPointDataToCellData&) = delete;
};
#endif