opencascade AIS_GlobalStatus管理交互式对象显示信息 源码学习 原创
前言
存储有关图形上下文中对象的信息:
方法
AIS_GlobalStatus类的翻译
构造函数
AIS_GlobalStatus()
AIS_GlobalStatus::AIS_GlobalStatus ( )
默认构造函数。
成员函数文档
AddSelectionMode()
Standard_Boolean AIS_GlobalStatus::AddSelectionMode (const Standard_Integer theMode) inline
添加选择模式。
ClearSelectionModes()
void AIS_GlobalStatus::ClearSelectionModes ( ) inline
删除所有选择模式。
DisplayMode()
Standard_Integer AIS_GlobalStatus::DisplayMode ( ) const inline
返回显示模式。
HilightStyle()
const Handle<Prs3d_Drawer>& AIS_GlobalStatus::HilightStyle ( ) const inline
返回特定对象应用的高亮样式。
IsHilighted()
Standard_Boolean AIS_GlobalStatus::IsHilighted ( ) const inline
如果对象被高亮,则返回TRUE。
IsSModeIn()
Standard_Boolean AIS_GlobalStatus::IsSModeIn (Standard_Integer theMode) const inline
如果选择模式已注册,则返回TRUE。
IsSubIntensityOn()
Standard_Boolean AIS_GlobalStatus::IsSubIntensityOn ( ) const inline
返回子强度状态是否开启。
RemoveSelectionMode()
Standard_Boolean AIS_GlobalStatus::RemoveSelectionMode (const Standard_Integer theMode) inline
删除选择模式。
SelectionModes()
const TColStd_ListOfInteger& AIS_GlobalStatus::SelectionModes ( ) const inline
返回对象的活动选择模式。
SetDisplayMode()
void AIS_GlobalStatus::SetDisplayMode (const Standard_Integer theMode) inline
设置显示模式。
SetHilightStatus()
void AIS_GlobalStatus::SetHilightStatus (const Standard_Boolean theStatus) inline
设置高亮状态。
SetHilightStyle()
void AIS_GlobalStatus::SetHilightStyle (const Handle<Prs3d_Drawer>& theStyle) inline
更改特定对象应用的高亮样式。
SetSubIntensity()
void AIS_GlobalStatus::SetSubIntensity (Standard_Boolean theIsOn)
设置子强度状态。
示例
以下是一个关于如何使用 AIS_GlobalStatus
类的示例。此示例展示了如何创建 AIS_GlobalStatus
对象,并设置和获取各种属性,例如选择模式、显示模式和高亮状态。
#include <AIS_GlobalStatus.hxx>
#include <TColStd_ListOfInteger.hxx>
#include <Prs3d_Drawer.hxx>
#include <Handle.hxx>
int main()
{
// 创建AIS_GlobalStatus对象
AIS_GlobalStatus globalStatus;
// 添加选择模式
globalStatus.AddSelectionMode(1);
globalStatus.AddSelectionMode(2);
// 设置显示模式
globalStatus.SetDisplayMode(3);
// 设置高亮样式
Handle(Prs3d_Drawer) hilightStyle = new Prs3d_Drawer();
globalStatus.SetHilightStyle(hilightStyle);
// 设置高亮状态
globalStatus.SetHilightStatus(Standard_True);
// 打印当前高亮状态
if (globalStatus.IsHilighted())
{
std::cout << "The object is highlighted." << std::endl;
}
else
{
std::cout << "The object is not highlighted." << std::endl;
}
// 检查选择模式是否已注册
if (globalStatus.IsSModeIn(1))
{
std::cout << "Selection mode 1 is registered." << std::endl;
}
else
{
std::cout << "Selection mode 1 is not registered." << std::endl;
}
// 获取当前显示模式
Standard_Integer displayMode = globalStatus.DisplayMode();
std::cout << "Current display mode: " << displayMode << std::endl;
// 获取所有选择模式
const TColStd_ListOfInteger& selectionModes = globalStatus.SelectionModes();
std::cout << "Active selection modes: ";
for (TColStd_ListOfInteger::Iterator it(selectionModes); it.More(); it.Next())
{
std::cout << it.Value() << " ";
}
std::cout << std::endl;
// 清除所有选择模式
globalStatus.ClearSelectionModes();
// 确认选择模式已被清除
if (!globalStatus.IsSModeIn(1))
{
std::cout << "Selection modes have been cleared." << std::endl;
}
return 0;
}
代码解释
- 创建
AIS_GlobalStatus
对象:AIS_GlobalStatus globalStatus;
。 - 添加选择模式: 使用
AddSelectionMode
方法添加选择模式,例如模式 1 和模式 2。 - 设置显示模式: 使用
SetDisplayMode
方法设置显示模式,例如模式 3。 - 设置高亮样式: 创建
Prs3d_Drawer
对象并使用SetHilightStyle
方法设置高亮样式。 - 设置高亮状态: 使用
SetHilightStatus
方法将高亮状态设置为Standard_True
。 - 打印当前高亮状态: 使用
IsHilighted
方法检查对象是否被高亮,并输出结果。 - 检查选择模式是否已注册: 使用
IsSModeIn
方法检查选择模式 1 是否已注册,并输出结果。 - 获取当前显示模式: 使用
DisplayMode
方法获取当前显示模式,并输出结果。 - 获取所有选择模式: 使用
SelectionModes
方法获取活动的选择模式,并输出结果。 - 清除所有选择模式: 使用
ClearSelectionModes
方法清除所有选择模式。 - 确认选择模式已被清除: 使用
IsSModeIn
方法确认选择模式已被清除,并输出结果。
通过这个示例,您可以了解如何使用 AIS_GlobalStatus
类的各种功能来管理和操作对象的显示和选择模式。
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)