6#include <vtkDataArray.h>
8#include <vtkInformation.h>
9#include <vtkObjectFactory.h>
10#include <vtkPointData.h>
18 this->SetNumberOfInputPorts(1);
19 this->SetNumberOfOutputPorts(1);
25 vtkInformation *info) {
27 info->Set(vtkAlgorithm::INPUT_REQUIRED_DATA_TYPE(),
"vtkDataSet");
34 vtkInformation *info) {
43 vtkInformationVector **inputVector,
44 vtkInformationVector *outputVector) {
46 auto input = vtkDataSet::GetData(inputVector[0]);
47 auto output = vtkDataSet::GetData(outputVector);
51 int const keepGoing = checkEmptyMPIInput<Triangulation>(triangulation);
58 vtkDataArray *inputScalarField = this->GetInputArrayToProcess(0, inputVector);
62 if(inputScalarField->GetNumberOfComponents() != 1) {
75 outputArray->SetName(inputScalarField->GetName());
76 outputArray->SetNumberOfComponents(1);
77 outputArray->SetNumberOfTuples(inputScalarField->GetNumberOfTuples());
82 output->ShallowCopy(input);
83 output->GetPointData()->AddArray(outputArray);
87 {{
" Scalar Array", inputScalarField->GetName()},
88 {
" Mask Array", inputMaskField ? inputMaskField->GetName() :
"None"},
91 const auto inputMaskPtr
92 = (inputMaskField) ? ttkUtils::GetPointer<char>(inputMaskField) :
nullptr;
101 inputScalarField->GetDataType(), triangulation->
getType(),
103 static_cast<const T1 *
>(triangulation->
getData()), NumberOfIterations)));
#define ttkNotUsed(x)
Mark function/method parameters that are not used in the function body at all.
static vtkInformationIntegerKey * SAME_DATA_TYPE_AS_INPUT_PORT()
ttk::Triangulation * GetTriangulation(vtkDataSet *dataSet)
vtkDataArray * GetOptionalArray(const bool &enforceArrayIndex, const int &arrayIndex, const std::string &arrayName, vtkDataSet *const inputData, const int &inputPort=0)
TTK VTK-filter for scalar field smoothing.
int FillOutputPortInformation(int port, vtkInformation *info) override
int FillInputPortInformation(int port, vtkInformation *info) override
int RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
~ttkScalarFieldSmoother() override
static void * GetVoidPointer(vtkDataArray *array, vtkIdType start=0)
int printErr(const std::string &msg, const debug::LineMode &lineMode=debug::LineMode::NEW, std::ostream &stream=std::cerr) const
void setMaskDataPointer(const char *const mask)
int preconditionTriangulation(AbstractTriangulation *triangulation)
void setDimensionNumber(const int &dimensionNumber)
void setOutputDataPointer(void *data)
void setInputDataPointer(void *data)
Triangulation is a class that provides time and memory efficient traversal methods on triangulations ...
AbstractTriangulation * getData()
Triangulation::Type getType() const
std::string to_string(__int128)
const char MaskScalarFieldName[]
default name for mask scalar field
#define ttkTypeMacroAT(group0, group1, call)
vtkStandardNewMacro(ttkScalarFieldSmoother)
printMsg(debug::output::BOLD+" | | | | | . \\ | | (__| | / __/| |_| / __/|__ _|"+debug::output::ENDCOLOR, debug::Priority::PERFORMANCE, debug::LineMode::NEW, stream)