comac_desk_app/ThirdpartyLibs/Libs/windows-x86_64/vtk/include/vtkComputeQuantiles.h

88 lines
2.7 KiB
C++

/*=========================================================================
Program: Visualization Toolkit
Module: vtkComputeQuantiles.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 vtkComputeQuantiles
* @brief Extract Ntiles and extremum values
* of all columns of a table or all fields of a dataset.
*
* vtkComputeQuantiles accepts any vtkDataObject as input and produces a vtkTable data as output
* containing the extrema and quantiles.
*
* The filter internally uses vtkOrderStatistics to divide the dataset into N intervals; so to
* compute quartiles set the number of intervals to 4, for deciles set the number of intervals to 10
* etc. The output table has the same number of columns as the input data set and has N+1 number of
* rows to store the intervals and extrema.
*
* @sa
* vtkTableAlgorithm vtkOrderStatistics
*
* @par Thanks:
* This class was written by Kitware SAS and supported by EDF - www.edf.fr
*/
#ifndef vtkComputeQuantiles_h
#define vtkComputeQuantiles_h
#include "vtkFiltersStatisticsModule.h" // For export macro
#include "vtkTableAlgorithm.h"
class vtkDataSet;
class vtkDoubleArray;
class vtkFieldData;
class vtkOrderStatistics;
class vtkTable;
class VTKFILTERSSTATISTICS_EXPORT vtkComputeQuantiles : public vtkTableAlgorithm
{
public:
static vtkComputeQuantiles* New();
vtkTypeMacro(vtkComputeQuantiles, vtkTableAlgorithm);
void PrintSelf(ostream& os, vtkIndent indent) override;
//@{
/**
* Set/get the number of intervals into which the data is to be divided.
* Default is 4.
*/
vtkGetMacro(NumberOfIntervals, int);
vtkSetMacro(NumberOfIntervals, int);
//@}
protected:
vtkComputeQuantiles();
~vtkComputeQuantiles() override = default;
int FillInputPortInformation(int port, vtkInformation* info) override;
int RequestData(vtkInformation* request, vtkInformationVector** inputVector,
vtkInformationVector* outputVector) override;
void ComputeTable(vtkDataObject*, vtkTable*, vtkIdType);
virtual vtkOrderStatistics* CreateOrderStatisticsFilter();
int FieldAssociation = -1;
int NumberOfIntervals = 4;
private:
void operator=(const vtkComputeQuantiles&) = delete;
vtkComputeQuantiles(const vtkComputeQuantiles&) = delete;
int GetInputFieldAssociation();
vtkFieldData* GetInputFieldData(vtkDataObject* input);
};
#endif