|
|
|
|
/*****************************************************************//**
|
|
|
|
|
* @file FITKFluidVTKGraphObjectPick.h
|
|
|
|
|
* @brief Graph object for picking.
|
|
|
|
|
*
|
|
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
|
|
* @date 2024-07-19
|
|
|
|
|
*********************************************************************/
|
|
|
|
|
|
|
|
|
|
#ifndef __FITKFLUIDVTKGRAPHOBJECTPICK_H__
|
|
|
|
|
#define __FITKFLUIDVTKGRAPHOBJECTPICK_H__
|
|
|
|
|
|
|
|
|
|
#include "FITKFluidVTKGraphObject3D.h"
|
|
|
|
|
|
|
|
|
|
#include "FITKFluidVTKGraphAdaptorAPI.h"
|
|
|
|
|
|
|
|
|
|
// Forward declaration
|
|
|
|
|
class QVariant;
|
|
|
|
|
|
|
|
|
|
class vtkDataSet;
|
|
|
|
|
class vtkDataSetSurfaceFilter;
|
|
|
|
|
|
|
|
|
|
class FITKGraphActor;
|
|
|
|
|
class FITKHighOrderCellFilter;
|
|
|
|
|
|
|
|
|
|
namespace Core
|
|
|
|
|
{
|
|
|
|
|
class FITKAbstractDataObject;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
namespace Exchange
|
|
|
|
|
{
|
|
|
|
|
/**
|
|
|
|
|
* @brief Graph object for picking.
|
|
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
|
|
* @date 2024-07-19
|
|
|
|
|
*/
|
|
|
|
|
class FITKFLUIDGRAPHADAPTORAPI FITKFluidVTKGraphObjectPick : public FITKFluidVTKGraphObject3D
|
|
|
|
|
{
|
|
|
|
|
// Regist
|
|
|
|
|
FITKGraphRegist(FITKFluidVTKGraphObjectPick, FITKFluidVTKGraphObject3D);
|
|
|
|
|
FITKCLASS(Exchange, FITKFluidVTKGraphObjectPick);
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
/**
|
|
|
|
|
* @brief Constructor.
|
|
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
|
|
* @date 2024-07-19
|
|
|
|
|
*/
|
|
|
|
|
FITKFluidVTKGraphObjectPick();
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief Destructor.
|
|
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
|
|
* @date 2024-07-19
|
|
|
|
|
*/
|
|
|
|
|
~FITKFluidVTKGraphObjectPick();
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief Hide or show the graph object's actor.[override]
|
|
|
|
|
* @param visibility: The visibility.
|
|
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
|
|
* @date 2024-07-19
|
|
|
|
|
*/
|
|
|
|
|
void setVisible(bool visibility) override;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief Set the dataset for visualization.
|
|
|
|
|
* @param grid: The picked data
|
|
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
|
|
* @date 2024-07-19
|
|
|
|
|
*/
|
|
|
|
|
void setPickedData(vtkDataSet* grid);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief Set the data set for visualization.
|
|
|
|
|
* @param type: The type of picked data( 1: Points, 2: Cells, 3: Mixed)
|
|
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
|
|
* @date 2024-07-19
|
|
|
|
|
*/
|
|
|
|
|
void setPickedType(int type);
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief Set the color.[override]
|
|
|
|
|
* @param color: The color
|
|
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
|
|
* @date 2024-07-19
|
|
|
|
|
*/
|
|
|
|
|
void setColor(QColor color) override;
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
/**
|
|
|
|
|
* @brief Initialize the pointers.
|
|
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
|
|
* @date 2024-07-23
|
|
|
|
|
*/
|
|
|
|
|
void init();
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief Initialize the actor's visualization properties.[override]
|
|
|
|
|
* @param actor: The actor
|
|
|
|
|
* @param details: No used
|
|
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
|
|
* @date 2024-07-19
|
|
|
|
|
*/
|
|
|
|
|
void initActorProperties(vtkProp* actor, QVariant details = QVariant()) override;
|
|
|
|
|
|
|
|
|
|
private:
|
|
|
|
|
/**
|
|
|
|
|
* @brief The actor.
|
|
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
|
|
* @date 2024-07-19
|
|
|
|
|
*/
|
|
|
|
|
FITKGraphActor* m_fActor{ nullptr };
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief The surface filter for high-order element.
|
|
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
|
|
* @date 2024-07-19
|
|
|
|
|
*/
|
|
|
|
|
vtkDataSetSurfaceFilter* m_surfaceFilter{ nullptr };
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @brief The high-order element dealer.
|
|
|
|
|
* @author ChengHaotian (yeguangbaozi@foxmail.com)
|
|
|
|
|
* @date 2024-07-19
|
|
|
|
|
*/
|
|
|
|
|
FITKHighOrderCellFilter* m_highOrderFilter{ nullptr };
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
} // namespace Exchange
|
|
|
|
|
|
|
|
|
|
#endif // __FITKFLUIDVTKGRAPHOBJECTPICK_H__
|