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.
AppFlow/FITK_Interface/FITKInterfaceMesh/FITKMeshFeatureVTK.h

158 lines
4.5 KiB
C

/*****************************************************************//**
* @file FITKMeshFeatureVTK.h
* @brief
*
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-03-25
*********************************************************************/
#ifndef _FITKMESHFEATURE_H___
#define _FITKMESHFEATURE_H___
#include "FITKInterfaceMeshAPI.h"
#include "FITK_Kernel/FITKCore/FITKAbstractDataObject.h"
// 前置声明
class vtkDataSet;
class vtkPolyData;
class vtkDataArray;
class FITKPolyDataNormals;
class FITKSurfaceFilter;
class FITKShellFeatureEdges;
class FITKHighOrderCellFilter;
// 过滤器传递原始id数据名称
#define POINTIDNAME "vtkOriginalPointIds"
#define CELLIDNAME "vtkOriginalCellIds"
namespace Interface
{
/**
* @brief vtk
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-03-25
*/
class FITKInterfaceMeshAPI FITKMeshFeatureVTK : public Core::FITKAbstractDataObject
{
public:
/**
* @brief
* @param dataSet:
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-03-25
*/
explicit FITKMeshFeatureVTK(vtkDataSet* dataSet);
/**
* @brief []
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-03-25
*/
virtual ~FITKMeshFeatureVTK();
/**
* @brief []
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-03-25
*/
virtual void update();
/**
* @brief []
* @param dataSet:
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-03-25
*/
virtual void reset(vtkDataSet* dataSet);
/**
* @brief
* @return
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-03-22
*/
FITKSurfaceFilter* getSurfaceFilter();
/**
* @brief
* @return
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-03-22
*/
FITKShellFeatureEdges* getFeatureEdgeFilter();
/**
* @brief
* @return
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-03-22
*/
FITKHighOrderCellFilter* getHighOrderFilter();
/**
* @brief
* @return
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-03-22
*/
FITKPolyDataNormals* getNormalsFilter();
/**
* @brief
* @param type: 1- 2- 3-
* @return
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-03-22
*/
vtkPolyData* getFeatureMesh(int type);
/**
* @brief
* @return
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-03-22
*/
vtkDataArray* getCellNormals();
private:
/**
* @brief
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-03-25
*/
vtkDataSet* _dataSet{};
/**
* @brief
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-03-25
*/
FITKSurfaceFilter* _surfaceFilter{};
/**
* @brief
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-03-25
*/
FITKPolyDataNormals* _normalFilter{};
/**
* @brief
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-03-25
*/
FITKShellFeatureEdges* _featureEdgeFilter{};
/**
* @brief
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-03-25
*/
FITKHighOrderCellFilter* _highOrderFilter{};
};
}
#endif