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
|
// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
// SPDX-License-Identifier: BSD-3-Clause
#include "vtkPiecewiseFunctionShiftScale.h"
#include "vtkInformation.h"
#include "vtkInformationVector.h"
#include "vtkObjectFactory.h"
#include "vtkPiecewiseFunction.h"
VTK_ABI_NAMESPACE_BEGIN
vtkStandardNewMacro(vtkPiecewiseFunctionShiftScale);
vtkPiecewiseFunctionShiftScale::vtkPiecewiseFunctionShiftScale()
{
this->PositionShift = 0.0;
this->PositionScale = 1.0;
this->ValueShift = 0.0;
this->ValueScale = 1.0;
}
vtkPiecewiseFunctionShiftScale::~vtkPiecewiseFunctionShiftScale() = default;
int vtkPiecewiseFunctionShiftScale::RequestData(
vtkInformation*, vtkInformationVector** inputVector, vtkInformationVector* outputVector)
{
vtkInformation* inInfo = inputVector[0]->GetInformationObject(0);
vtkInformation* outInfo = outputVector->GetInformationObject(0);
vtkPiecewiseFunction* input =
vtkPiecewiseFunction::SafeDownCast(inInfo->Get(vtkDataObject::DATA_OBJECT()));
vtkPiecewiseFunction* output =
vtkPiecewiseFunction::SafeDownCast(outInfo->Get(vtkDataObject::DATA_OBJECT()));
double* inFunction = input->GetDataPointer();
int numInValues = input->GetSize();
output->RemoveAllPoints();
int i;
for (i = 0; i < numInValues; i++)
{
output->AddPoint((inFunction[2 * i] + this->PositionShift) * this->PositionScale,
(inFunction[2 * i + 1] + this->ValueShift) * this->ValueScale);
}
return 1;
}
void vtkPiecewiseFunctionShiftScale::PrintSelf(ostream& os, vtkIndent indent)
{
this->Superclass::PrintSelf(os, indent);
os << indent << "PositionShift: " << this->PositionShift << "\n";
os << indent << "PositionScale: " << this->PositionScale << "\n";
os << indent << "ValueShift: " << this->ValueShift << "\n";
os << indent << "ValueScale: " << this->ValueScale << "\n";
}
VTK_ABI_NAMESPACE_END
|