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.

81 lines
2.2 KiB
C

/*=========================================================================
Program: Visualization Toolkit
Module: vtkWarpTo.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 vtkWarpTo
* @brief deform geometry by warping towards a point
*
* vtkWarpTo is a filter that modifies point coordinates by moving the
* points towards a user specified position.
*/
#ifndef vtkWarpTo_h
#define vtkWarpTo_h
#include "vtkFiltersGeneralModule.h" // For export macro
#include "vtkPointSetAlgorithm.h"
class VTKFILTERSGENERAL_EXPORT vtkWarpTo : public vtkPointSetAlgorithm
{
public:
static vtkWarpTo* New();
vtkTypeMacro(vtkWarpTo, vtkPointSetAlgorithm);
void PrintSelf(ostream& os, vtkIndent indent) override;
//@{
/**
* Set/Get the value to scale displacement.
*/
vtkSetMacro(ScaleFactor, double);
vtkGetMacro(ScaleFactor, double);
//@}
//@{
/**
* Set/Get the position to warp towards.
*/
vtkGetVectorMacro(Position, double, 3);
vtkSetVector3Macro(Position, double);
//@}
//@{
/**
* Set/Get the Absolute ivar. Turning Absolute on causes scale factor
* of the new position to be one unit away from Position.
*/
vtkSetMacro(Absolute, vtkTypeBool);
vtkGetMacro(Absolute, vtkTypeBool);
vtkBooleanMacro(Absolute, vtkTypeBool);
//@}
int FillInputPortInformation(int port, vtkInformation* info) override;
protected:
vtkWarpTo();
~vtkWarpTo() override {}
int RequestDataObject(vtkInformation* request, vtkInformationVector** inputVector,
vtkInformationVector* outputVector) override;
int RequestData(vtkInformation*, vtkInformationVector**, vtkInformationVector*) override;
double ScaleFactor;
double Position[3];
vtkTypeBool Absolute;
private:
vtkWarpTo(const vtkWarpTo&) = delete;
void operator=(const vtkWarpTo&) = delete;
};
#endif