VTK  9.7.0
vtkImageWeightedSum.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2// SPDX-License-Identifier: BSD-3-Clause
18
19#ifndef vtkImageWeightedSum_h
20#define vtkImageWeightedSum_h
21
22#include "vtkImagingMathModule.h" // For export macro
24
25VTK_ABI_NAMESPACE_BEGIN
26class vtkDoubleArray;
27class VTKIMAGINGMATH_EXPORT vtkImageWeightedSum : public vtkThreadedImageAlgorithm
28{
29public:
32 void PrintSelf(ostream& os, vtkIndent indent) override;
33
35
39 virtual void SetWeights(vtkDoubleArray*);
40 vtkGetObjectMacro(Weights, vtkDoubleArray);
42
46 virtual void SetWeight(vtkIdType id, double weight);
47
49
56 vtkSetClampMacro(NormalizeByWeight, vtkTypeBool, 0, 1);
57 vtkBooleanMacro(NormalizeByWeight, vtkTypeBool);
59
64
65protected:
68
69 // Array to hold all the weights
71
72 // Boolean flag to divide by sum or not
74
75 int RequestInformation(vtkInformation* vtkNotUsed(request),
76 vtkInformationVector** vtkNotUsed(inputVector), vtkInformationVector* outputVector) override;
77
79 vtkInformationVector* outputVector, vtkImageData*** inData, vtkImageData** outData,
80 VTK_FUTURE_CONST int ext[6], int id) override;
81 int FillInputPortInformation(int i, vtkInformation* info) override;
82
83private:
85 void operator=(const vtkImageWeightedSum&) = delete;
86};
87
88VTK_ABI_NAMESPACE_END
89#endif
dynamic, self-adjusting array of double
topologically and geometrically regular array of data
static vtkImageWeightedSum * New()
vtkDoubleArray * Weights
~vtkImageWeightedSum() override
int RequestInformation(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
Subclasses can reimplement this method to collect information from their inputs and set information f...
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
int FillInputPortInformation(int i, vtkInformation *info) override
void ThreadedRequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector, vtkImageData ***inData, vtkImageData **outData, VTK_FUTURE_CONST int ext[6], int id) override
If the subclass does not define an Execute method, then the task will be broken up,...
double CalculateTotalWeight()
Compute the total value of all the weight.
virtual void SetWeights(vtkDoubleArray *)
The weights control the contribution of each input to the sum.
virtual void SetWeight(vtkIdType id, double weight)
Change a specific weight.
a simple class to control print indentation
Definition vtkIndent.h:29
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
int vtkTypeBool
Definition vtkABI.h:64
int vtkIdType
Definition vtkType.h:363