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/OperatorsInterface/GraphInteractionOperator.h

113 lines
3.8 KiB
C

/*****************************************************************//**
* @file GraphInteractionOperator.h
* @brief
*
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-04-17
*********************************************************************/
#ifndef __GRAPHINTERACTIONOPERATOR_H__
#define __GRAPHINTERACTIONOPERATOR_H__
#include "FITK_Kernel/FITKCore/FITKAbstractOperator.h"
#include "OperatorsInterfaceAPI.h"
#include <QColor>
// 前置声明
class vtkActor2D;
class vtkActor;
class vtkPlanes;
namespace Comp
{
class FITKGraph3DWindowVTK;
}
namespace EventOper
{
/**
* @brief
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-04-17
*/
class OperatorsInterfaceAPI GraphInteractionOperator : public Core::FITKAbstractOperator
{
Q_OBJECT
public:
/**
* @brief
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-04-17
*/
explicit GraphInteractionOperator() = default;
/**
* @brief []
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-04-17
*/
virtual ~GraphInteractionOperator() = default;
/**
* @brief []
* @param graphWindow
* @param actor
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-05-16
*/
virtual void picked(Comp::FITKGraph3DWindowVTK* graphWindow, vtkActor2D* actor);
/**
* @brief []
* @param graphWindow
* @param actor
* @param index
* @param pickedWorldPos
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-04-17
*/
virtual void picked(Comp::FITKGraph3DWindowVTK* graphWindow, vtkActor* actor, int index, double* pickedWorldPos);
/**
* @brief []
* @param graphWindow
* @param actors
* @param cutPlane
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-04-19
*/
virtual void picked(Comp::FITKGraph3DWindowVTK* graphWindow, QList<vtkActor*> actors, vtkPlanes* cutPlane);
/**
* @brief []
* @param graphWindow[]
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-04-17
*/
virtual void clear(Comp::FITKGraph3DWindowVTK* graphWindow = nullptr);
/**
* @brief []
* @param color
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-05-23
*/
virtual void setPickedColor(QColor color);
/**
* @brief []
* @param pickObjType
* @param pickMethod
* @param dataObjIdID-1[]
* @author ChengHaotian (yeguangbaozi@foxmail.com)
* @date 2024-04-30
*/
virtual void setActorStateByPickInfo(int pickObjType, int pickMethod, int dataObjId = -1);
};
} // namespace EventOper
#endif // __GRAPHINTERACTIONOPERATOR_H__