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
|
// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
// SPDX-FileCopyrightText: Copyright 2009 Sandia Corporation
// SPDX-License-Identifier: LicenseRef-BSD-3-Clause-Sandia-USGov
/**
* @class vtkPPairwiseExtractHistogram2D
* @brief compute a 2D histogram between
* all adjacent columns of an input vtkTable in parallel.
*
*
* This class does exactly the same this as vtkPairwiseExtractHistogram2D,
* but does it in a multi-process environment. After each node
* computes their own local histograms, this class does an AllReduce
* that distributes the sum of all local histograms onto each node.
*
* Because vtkPairwiseExtractHistogram2D is a light wrapper around a series
* of vtkExtractHistogram2D classes, this class just overrides the function
* that instantiates new histogram filters and returns the parallel version
* (vtkPExtractHistogram2D).
*
* @sa
* vtkExtractHistogram2D vtkPairwiseExtractHistogram2D vtkPExtractHistogram2D
*
* @par Thanks:
* Developed by David Feng and Philippe Pebay at Sandia National Laboratories
*------------------------------------------------------------------------------
*/
#ifndef vtkPPairwiseExtractHistogram2D_h
#define vtkPPairwiseExtractHistogram2D_h
#include "vtkFiltersParallelImagingModule.h" // For export macro
#include "vtkPairwiseExtractHistogram2D.h"
VTK_ABI_NAMESPACE_BEGIN
class vtkExtractHistogram2D;
class vtkMultiProcessController;
class VTKFILTERSPARALLELIMAGING_EXPORT vtkPPairwiseExtractHistogram2D
: public vtkPairwiseExtractHistogram2D
{
public:
static vtkPPairwiseExtractHistogram2D* New();
vtkTypeMacro(vtkPPairwiseExtractHistogram2D, vtkPairwiseExtractHistogram2D);
void PrintSelf(ostream& os, vtkIndent indent) override;
virtual void SetController(vtkMultiProcessController*);
vtkGetObjectMacro(Controller, vtkMultiProcessController);
protected:
vtkPPairwiseExtractHistogram2D();
~vtkPPairwiseExtractHistogram2D() override;
vtkMultiProcessController* Controller;
/**
* Generate a new histogram filter, but actually generate a parallel one this time.
*/
vtkExtractHistogram2D* NewHistogramFilter() override;
private:
vtkPPairwiseExtractHistogram2D(const vtkPPairwiseExtractHistogram2D&) = delete;
void operator=(const vtkPPairwiseExtractHistogram2D&) = delete;
};
VTK_ABI_NAMESPACE_END
#endif
|