BIMHome
v1.0.0
BIMHome接口文档说明
首页
相关页面
Topics
包
类
文件
文件列表
文件成员
BIMHome
PlatformUI
Interface
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
23
namespace
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
ISnapProcessedBase.h
Base::Vector3< double >
PlatformUI::ISnapProcessedBase
Definition
ISnapProcessedBase.h:82
PlatformUI::ISnapper::processMouseMove
virtual void processMouseMove(const double x, const double y, bool bPicked, const Base::Vector3d &newpos)=0
处理鼠标移动事件以实时更新捕捉状态
PlatformUI::ISnapper::isSnapModeEnabled
virtual bool isSnapModeEnabled(SnapMode mode) const =0
查询指定捕捉模式是否已启用
PlatformUI::ISnapper::processMouseClick
virtual void processMouseClick(const MouseKeyType mouseType, const UpDownType eventType)=0
处理鼠标点击事件,用于触发或确认捕捉操作
PlatformUI::ISnapper::setSnapRange
virtual void setSnapRange(double range)=0
设置捕捉的有效范围(半径)(像素)
PlatformUI::ISnapper::processKeyBoard
virtual void processKeyBoard(const KeyBoardType keyType, const UpDownType eventType)=0
处理键盘输入事件,用于在捕捉过程中响应快捷键或状态切换。
PlatformUI::ISnapper::getPickRange
virtual double getPickRange() const =0
获取当前拾取的有效范围(半径)(像素)
PlatformUI::ISnapper::getSnapRange
virtual double getSnapRange() const =0
获取当前捕捉的有效范围(半径)(像素)
PlatformUI::ISnapper::setSnapMode
virtual void setSnapMode(SnapMode mode, bool enabled)=0
设置捕捉模式的启用/禁用状态
PlatformUI::ISnapper::~ISnapper
virtual ~ISnapper()
PlatformUI::ISnapper::setPickRange
virtual void setPickRange(double range)=0
设置拾取的有效范围(半径)(像素)
PlatformUI::ISnapper::Create
static ISnapper * Create(ISnapProcessedBase *process, SnapMode mode, double range=10, double pickRange=50)
创建并返回一个 ISnapper 实例
PlatformUI::ISnapper
Definition
ISnapper.h:36
PlatformUI::SnapMode
SnapMode
Definition
ISnapper.h:26
PlatformUI::SnapMode::Endpoint
@ Endpoint
PlatformUI::SnapMode::Center
@ Center
PlatformUI::SnapMode::None
@ None
PlatformUI::SnapMode::Midpoint
@ Midpoint
PlatformUI::SnapMode::Intersection
@ Intersection
PlatformUI::SnapMode::All
@ All
PlatformUI
Definition
ISnapHandle.h:23