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 对象,并设置和获取各种属性,例如选择模式、显示模式和高亮状态。

cpp 复制代码
#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;
}

代码解释

  1. 创建 AIS_GlobalStatus 对象 : AIS_GlobalStatus globalStatus;
  2. 添加选择模式 : 使用 AddSelectionMode 方法添加选择模式,例如模式 1 和模式 2。
  3. 设置显示模式 : 使用 SetDisplayMode 方法设置显示模式,例如模式 3。
  4. 设置高亮样式 : 创建 Prs3d_Drawer 对象并使用 SetHilightStyle 方法设置高亮样式。
  5. 设置高亮状态 : 使用 SetHilightStatus 方法将高亮状态设置为 Standard_True
  6. 打印当前高亮状态 : 使用 IsHilighted 方法检查对象是否被高亮,并输出结果。
  7. 检查选择模式是否已注册 : 使用 IsSModeIn 方法检查选择模式 1 是否已注册,并输出结果。
  8. 获取当前显示模式 : 使用 DisplayMode 方法获取当前显示模式,并输出结果。
  9. 获取所有选择模式 : 使用 SelectionModes 方法获取活动的选择模式,并输出结果。
  10. 清除所有选择模式 : 使用 ClearSelectionModes 方法清除所有选择模式。
  11. 确认选择模式已被清除 : 使用 IsSModeIn 方法确认选择模式已被清除,并输出结果。

通过这个示例,您可以了解如何使用 AIS_GlobalStatus 类的各种功能来管理和操作对象的显示和选择模式。

相关推荐
西岸行者5 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
悠哉悠哉愿意5 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
别催小唐敲代码5 天前
嵌入式学习路线
学习
毛小茛5 天前
计算机系统概论——校验码
学习
babe小鑫5 天前
大专经济信息管理专业学习数据分析的必要性
学习·数据挖掘·数据分析
winfreedoms5 天前
ROS2知识大白话
笔记·学习·ros2
在这habit之下5 天前
Linux Virtual Server(LVS)学习总结
linux·学习·lvs
我想我不够好。5 天前
2026.2.25监控学习
学习
im_AMBER5 天前
Leetcode 127 删除有序数组中的重复项 | 删除有序数组中的重复项 II
数据结构·学习·算法·leetcode
CodeJourney_J5 天前
从“Hello World“ 开始 C++
c语言·c++·学习