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.
90 lines
2.9 KiB
C
90 lines
2.9 KiB
C
3 weeks ago
|
/*=========================================================================
|
||
|
|
||
|
Program: Visualization Toolkit
|
||
|
Module: vtkMergeArrays.h
|
||
|
|
||
|
Copyright (c) Kitware, Inc.
|
||
|
All rights reserved.
|
||
|
See Copyright.txt or http://www.paraview.org/HTML/Copyright.html 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 vtkMergeArrays
|
||
|
* @brief Multiple inputs with one output.
|
||
|
*
|
||
|
* vtkMergeArrays tries to put all arrays from all inputs into one output.
|
||
|
* The output data object is the same as the first data input.
|
||
|
* The filter checks for a consistent number of points and cells with
|
||
|
* respect to the first input, but does not check any more. Any inputs
|
||
|
* which do not have the correct number of points or cells are ignored
|
||
|
* for that type of data set attribute. When adding new arrays, if there
|
||
|
* is an existing array of the same name and attribute type, the new array
|
||
|
* will have the name mangled to be the original array name plus
|
||
|
* `_input_<inputid>` where `<inputid>` is the id/index of the input filter
|
||
|
* that is providing that array.
|
||
|
*/
|
||
|
|
||
|
#ifndef vtkMergeArrays_h
|
||
|
#define vtkMergeArrays_h
|
||
|
|
||
|
#include "vtkFiltersGeneralModule.h" // For export macro
|
||
|
#include "vtkPassInputTypeAlgorithm.h"
|
||
|
|
||
|
#include <string> // Needed for protected method argument
|
||
|
|
||
|
class vtkDataSet;
|
||
|
class vtkFieldData;
|
||
|
|
||
|
class VTKFILTERSGENERAL_EXPORT vtkMergeArrays : public vtkPassInputTypeAlgorithm
|
||
|
{
|
||
|
public:
|
||
|
static vtkMergeArrays* New();
|
||
|
|
||
|
vtkTypeMacro(vtkMergeArrays, vtkPassInputTypeAlgorithm);
|
||
|
void PrintSelf(ostream& os, vtkIndent indent) override;
|
||
|
|
||
|
protected:
|
||
|
vtkMergeArrays();
|
||
|
~vtkMergeArrays() override;
|
||
|
|
||
|
//@{
|
||
|
/**
|
||
|
* Given an existing set of output arrays and an array name and input data set
|
||
|
* index, return an appropriate name to use for the output array. Returns true
|
||
|
* if the name is a new name and false if not.
|
||
|
*/
|
||
|
virtual bool GetOutputArrayName(
|
||
|
vtkFieldData* arrays, const char* inArrayName, int inputIndex, std::string& outArrayName);
|
||
|
//@}
|
||
|
|
||
|
//@{
|
||
|
/**
|
||
|
* Add input field arrays to output, mangling output array names as needed
|
||
|
* based on inputIndex.
|
||
|
*/
|
||
|
void MergeArrays(int inputIndex, vtkFieldData* inputFD, vtkFieldData* outputFD);
|
||
|
|
||
|
//@{
|
||
|
/**
|
||
|
* For a given input and index, add data arrays to the output. Returns 1 for
|
||
|
* success and 0 for failure.
|
||
|
*/
|
||
|
virtual int MergeDataObjectFields(vtkDataObject* input, int inputIndex, vtkDataObject* output);
|
||
|
//@}
|
||
|
|
||
|
// see algorithm for more info
|
||
|
int FillInputPortInformation(int port, vtkInformation* info) override;
|
||
|
|
||
|
int RequestData(vtkInformation*, vtkInformationVector**, vtkInformationVector*) override;
|
||
|
|
||
|
private:
|
||
|
vtkMergeArrays(const vtkMergeArrays&) = delete;
|
||
|
void operator=(const vtkMergeArrays&) = delete;
|
||
|
};
|
||
|
|
||
|
#endif
|