44 lines
1.4 KiB
C++
44 lines
1.4 KiB
C++
#ifndef PROJECT_SURFACE_POINTS_ON_POLY_H
|
|
#define PROJECT_SURFACE_POINTS_ON_POLY_H
|
|
|
|
#include <vtkUnstructuredGridAlgorithm.h>
|
|
#include <vtkIdList.h>
|
|
#include <vector>
|
|
#include <vtkPolyData.h>
|
|
#include <vtkKdTree.h>
|
|
#include <vtkStaticCellLinks.h>
|
|
|
|
class ProjectSurfacePointsOnPoly : public vtkUnstructuredGridAlgorithm {
|
|
public:
|
|
static ProjectSurfacePointsOnPoly *New();
|
|
vtkTypeMacro(ProjectSurfacePointsOnPoly, vtkUnstructuredGridAlgorithm);
|
|
ProjectSurfacePointsOnPoly();
|
|
int FillInputPortInformation(int, vtkInformation *info) override;
|
|
vtkTypeBool RequestData(vtkInformation *request,
|
|
vtkInformationVector **inputVector,
|
|
vtkInformationVector *outputVector) override;
|
|
vtkSetMacro(affectedNeighborsCount, int);
|
|
vtkGetMacro(affectedNeighborsCount, int);
|
|
|
|
vtkSetMacro(RadiusScale, double);
|
|
|
|
protected:
|
|
int affectedNeighborsCount = 0;
|
|
double RadiusScale;
|
|
vtkIntArray *isSurface = nullptr;
|
|
|
|
~ProjectSurfacePointsOnPoly() override = default;
|
|
|
|
void moveSurfacePoint(vtkUnstructuredGrid *tetMesh,
|
|
vtkPolyData *polyMesh,
|
|
vtkIdType pointId,
|
|
std::vector<double> &motionVectors,
|
|
std::vector<unsigned> &numberOfAffectors,
|
|
vtkKdTree *polyMeshKdTree,
|
|
vtkKdTree *tetMeshKdTree,
|
|
vtkStaticCellLinks *links);
|
|
};
|
|
|
|
|
|
#endif
|