BIMHome v1.0.0
BIMHome接口文档说明
ISnapper.h
浏览该文件的文档.
1/************************************************************************
2* @file ISnapper.h
3*
4* @brief 自定义捕捉
5*
6* @details 自定义捕捉
7*
8* @author
9*
10* @version 版本号 V0.1
11*
12* @date 2025-5-27
13*
14* @license 北京华科软科技有限公司
15*
16*************************************************************************/
17#ifndef UNDERGROUNDPOWER_GUI_ISNAPPER_H
18#define UNDERGROUNDPOWER_GUI_ISNAPPER_H
19
20#include <BHGlobal.h>
21#include "ISnapProcessedBase.h"
22
23namespace PlatformUI
24{
25 class ISnapProcessedBase;
26 enum class SnapMode {
27 None = 0x0000,
28 Endpoint = 0x0001,
29 Midpoint = 0x0002,
30 Center = 0x0004,
31 Intersection = 0x0008,
32 All = 0xFFFF
33 };
34
35 class PlatformUIEXPORTS ISnapper
36 {
37 public:
47 static ISnapper* Create(ISnapProcessedBase* process, SnapMode mode, double range = 10, double pickRange = 50);
48 virtual ~ISnapper();
49
56 virtual void setSnapMode(SnapMode mode, bool enabled) = 0;
57
63 virtual bool isSnapModeEnabled(SnapMode mode) const = 0;
64
70 virtual void setSnapRange(double range) = 0;
71
77 virtual double getSnapRange() const = 0;
78
84 virtual void setPickRange(double range) = 0;
85
91 virtual double getPickRange() const = 0;
92
93 // 鼠标移动处理
102 virtual void processMouseMove(const double x, const double y, bool bPicked, const Base::Vector3d& newpos) = 0;
103
104 // 鼠标点击处理
111 virtual void processMouseClick(const MouseKeyType mouseType, const UpDownType eventType) = 0;
112
113 //键盘事件处理
120 virtual void processKeyBoard(const KeyBoardType keyType, const UpDownType eventType) = 0;
121 };
122}
123
124#endif // UNDERGROUNDPOWER_GUI_ISNAPPER_H
125
Definition ISnapProcessedBase.h:82
virtual void processMouseMove(const double x, const double y, bool bPicked, const Base::Vector3d &newpos)=0
处理鼠标移动事件以实时更新捕捉状态
virtual bool isSnapModeEnabled(SnapMode mode) const =0
查询指定捕捉模式是否已启用
virtual void processMouseClick(const MouseKeyType mouseType, const UpDownType eventType)=0
处理鼠标点击事件,用于触发或确认捕捉操作
virtual void setSnapRange(double range)=0
设置捕捉的有效范围(半径)(像素)
virtual void processKeyBoard(const KeyBoardType keyType, const UpDownType eventType)=0
处理键盘输入事件,用于在捕捉过程中响应快捷键或状态切换。
virtual double getPickRange() const =0
获取当前拾取的有效范围(半径)(像素)
virtual double getSnapRange() const =0
获取当前捕捉的有效范围(半径)(像素)
virtual void setSnapMode(SnapMode mode, bool enabled)=0
设置捕捉模式的启用/禁用状态
virtual void setPickRange(double range)=0
设置拾取的有效范围(半径)(像素)
static ISnapper * Create(ISnapProcessedBase *process, SnapMode mode, double range=10, double pickRange=50)
创建并返回一个 ISnapper 实例
Definition ISnapper.h:36
SnapMode
Definition ISnapper.h:26
Definition ISnapHandle.h:23