opencascade AIS_TypeFilter AIS_XRTrackedDevice源码学习

news2024/9/22 17:16:42

opencascade AIS_TypeFilter

前言

在这里插入图片描述
通过它们的类型选择交互对象。该过滤器会对本地上下文中的每个交互对象提出问题,
以确定它是否具有非空的所有者,并且如果是,则检查它是否是所需类型。
如果对象在每种情况下都返回 true,则保留该对象。否则,将其拒绝。
默认情况下,交互对象的类型为 None,签名为 0。类型过滤器指定了一
个类型的选择范围,可以在任何级别上枚举类型或种类。这个选择可以是
交互对象的种类、维度、单位,或者轴、平面或属性的类型。
如果要为您的交互对象指定特定的类型和签名,必须重新定义两个虚拟方法:
Type 和 Signature。
此过滤器在中立点和开放的本地上下文中均可使用。
在收集器视图中,只能在打开本地上下文时对位置过滤器积极响应的交互
对象进行定位。
当关闭本地上下文时,所有临时交互对象都将被删除,与上下文相关的所有
选择模式都将取消,并且所有内容过滤器都将被清空。

方法

1

初始化类型过滤器,使用给定的种类aGivenKind。
AIS_TypeFilter(const AIS_KindOfInteractive aGivenKind);

2

如果临时对象不是交互对象,或者交互对象的类型与过滤器中存储的类型不同,
则返回False。
virtual Standard_Boolean IsOk (const Handle(SelectMgr_EntityOwner)& anobj);

用法示例

在OpenCASCADE中,AIS_TypeFilter是用于过滤特定类型交互对象的类。这个类通常用于与视图选择管理器(SelectMgr)一起工作,以便在3D场景中选择和操作特定类型的对象。以下是一个简单的示例,展示了如何使用AIS_TypeFilter类来初始化和应用过滤器:

#include <AIS_TypeFilter.hxx>
#include <AIS_KindOfInteractive.hxx>
#include <SelectMgr_EntityOwner.hxx>

// 示例函数,演示如何使用AIS_TypeFilter

void exampleUsage()
{
    // 假设已有一个特定的交互对象种类定义
    AIS_KindOfInteractive givenKind = AIS_KOI_Dimension;

    // 初始化一个类型过滤器,使用给定的种类
    AIS_TypeFilter typeFilter(givenKind);

    // 假设有一个 SelectMgr_EntityOwner 对象 anEntityOwner
    Handle(SelectMgr_EntityOwner) anEntityOwner = ...; // 获取实际的 EntityOwner 对象

    // 检查该 EntityOwner 是否符合过滤器条件
    Standard_Boolean isOk = typeFilter.IsOk(anEntityOwner);

    if (isOk)
    {
        // 如果符合过滤器条件,执行相应的操作
        // 例如,选择该交互对象进行特定的操作
        // 在实际应用中,通常会将符合过滤器条件的对象添加到选择集中或进行其他操作
        // 例如:
        // mySelection->Add(anEntityOwner);
        // 或者
        // Handle(AIS_InteractiveObject) interactiveObject = anEntityOwner->Selectable();
        // 进行交互对象的其他操作
    }
    else
    {
        // 如果不符合过滤器条件,可以进行相应的处理
        // 例如,忽略或者进行其他处理
    }
}

在这个示例中:

  • 首先,我们定义了一个AIS_KindOfInteractive类型的变量 givenKind,它表示我们希望过滤的交互对象的种类。
  • 然后,我们通过 AIS_TypeFilter typeFilter(givenKind); 初始化了一个类型过滤器,这样它就会过滤出具有特定种类的交互对象。
  • 接着,我们假设有一个 SelectMgr_EntityOwner 类型的对象 anEntityOwner,通过调用 typeFilter.IsOk(anEntityOwner); 来检查该对象是否符合过滤条件。
  • 最后,根据 IsOk 的返回结果,我们可以对符合过滤条件的交互对象执行相应的操作。

在实际应用中,你可以根据具体需求定制不同的 AIS_KindOfInteractive 类型和相应的操作,以实现对交互对象的选择和处理。
参考

opencascade AIS_XRTrackedDevice

前言

在这里插入图片描述

“被跟踪的XR设备的辅助纹理网格呈现”

方法

1

主构造函数。
AIS_XRTrackedDevice(const Handle(Graphic3d_ArrayOfTriangles)& theTris,
const Handle(Image_Texture)& theTexture);

2

空构造函数。
AIS_XRTrackedDevice();

3

返回设备角色。
Aspect_XRTrackedDeviceRole Role() const { return myRole; }

4

设置设备角色。
void SetRole(Aspect_XRTrackedDeviceRole theRole) { myRole = theRole; }

5

返回激光颜色。
const Quantity_Color& LaserColor() const { return myLaserColor; }

6

设置激光颜色。
Standard_EXPORT void SetLaserColor(const Quantity_Color& theColor);

7

返回激光长度。
Standard_ShortReal LaserLength() const { return myLaserLength; }

8

设置激光长度。
Standard_EXPORT void SetLaserLength(Standard_ShortReal theLength);

9

返回单位比例因子。
Standard_ShortReal UnitFactor() const { return myUnitFactor; }

10

设置单位比例因子。
void SetUnitFactor(Standard_ShortReal theFactor) { myUnitFactor = theFactor; }

用法示例

OpenCASCADE中的 AIS_TypeFilterAIS_XRTrackedDevice 是用于管理和显示3D图形对象的类。AIS_TypeFilter 用于过滤特定类型的交互对象,而 AIS_XRTrackedDevice 则可能用于表示和管理被跟踪的XR设备的可视化。以下是一个简单的示例,展示如何结合使用这两个类来管理和显示XR设备的虚拟表示:

示例代码

#include <AIS_TypeFilter.hxx>
#include <AIS_XRTrackedDevice.hxx>
#include <Graphic3d_ArrayOfTriangles.hxx>
#include <Image_Texture.hxx>

// 示例函数,演示如何使用AIS_TypeFilter和AIS_XRTrackedDevice

void exampleUsage()
{
    // 假设已经创建了一个用于管理交互对象的类型过滤器,例如筛选特定种类的交互对象
    AIS_TypeFilter typeFilter(/* 指定所需的种类参数 */);

    // 假设有一个用于被跟踪XR设备的三角形网格数组和纹理
    Handle(Graphic3d_ArrayOfTriangles) tris = ...; // 创建三角形网格数组
    Handle(Image_Texture) texture = ...; // 创建纹理对象

    // 创建一个AIS_XRTrackedDevice对象来表示被跟踪的XR设备
    AIS_XRTrackedDevice trackedDevice(tris, texture);

    // 设置XR设备的角色
    trackedDevice.SetRole(/* 指定角色参数 */);

    // 设置XR设备的激光颜色和长度
    Quantity_Color laserColor(/* 设置激光颜色参数 */);
    trackedDevice.SetLaserColor(laserColor);
    trackedDevice.SetLaserLength(/* 设置激光长度参数 */);

    // 假设需要将XR设备对象添加到场景中,并且仅在满足类型过滤器条件时才添加
    if (typeFilter.IsOk(/* 指定要添加的交互对象 */))
    {
        // 将XR设备对象添加到场景中的适当位置
        // 例如:
        // myAISContext->Display(trackedDevice, Standard_True);
    }
}

解释说明

  1. AIS_TypeFilter 使用:

    • AIS_TypeFilter 类用于定义和应用类型过滤器,确保只有符合特定类型条件的交互对象才能被操作或显示。
  2. AIS_XRTrackedDevice 使用:

    • AIS_XRTrackedDevice 类用于创建和管理被跟踪的XR设备的可视化表示。它可以接受三角形网格和纹理对象作为参数,用来构建设备的外观。
    • 可以使用其设置方法,如 SetRoleSetLaserColorSetLaserLength,来定义和调整设备的角色、激光颜色和长度等属性。
  3. 场景管理:

    • 示例中展示了如何结合使用 AIS_TypeFilterAIS_XRTrackedDevice,确保只有符合特定类型条件的XR设备可被添加到场景中进行显示或操作。

在实际应用中,你可以根据具体需求调整和扩展这些示例代码,以实现更复杂的XR设备管理和可视化功能。

参考

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1982473.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

运动控制卡——固高GTS

文章目录 前言什么是运动控制卡指示灯状态检测主卡指示灯状态说明端子板指示灯状态说明 软件调试(P39)何将控制器配置成脉冲模式设置与定位 编程C#编程 一些概念 前言 在一些控制多轴电机运动的场景下&#xff0c;除了需要驱动器驱动该轴的电机外&#xff0c;还需要用到控制卡…

kickstart自动部署

目录 一 准备工作二 安装软件及其相关配置配置步骤&#xff0c;图形引导部署web服务配置dhcp部署pxe 三 使用新机验证 一 准备工作 主机采用rhel7.9版本 本文使用图形化界面就行操作设置 取消VMware dhcp设置 yum group install "Server with GUI" init 5 #启动图…

vue3中使用logicFlow

浅结logicFlow使用&#xff1a; 应用场景&#xff1a;vue3中使用logicFlow绘制流程图 技术碎片应用&#xff1a; vue3&#xff1a;ref,reactive, onMounted, watchEffect,nextTick,inject logicFlow&#xff1a;节点&#xff0c;边&#xff0c;锚点&#xff0c;事件 官网&#…

大模型微调fine-tuning

版权声明 本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl大模型微调概述 大模型fine-tuning(微调)是一种重要的机器学习技术,特别是在处理自然语言处理(NLP)任务时广泛应用。它指在已经预训练好的大型深度学习模型基础上,使用新的、特定任务相关的…

【文献阅读】GraphAny: A Foundation Model for Node Classification on Any Graph

Abstract 可以执行任何新任务而无需特定训练的基础模型已经在视觉和语言应用中引发了机器学习的革命。然而&#xff0c;涉及图结构数据的应用仍然是基础模型面临的一个难题&#xff0c;因为每个图都有独特的特征和标签空间。传统的图机器学习模型&#xff0c;如图神经网络&…

在Fragment中显示高德地图

一、首先在高德官网上申请key 第一步:按照规定填写Key名称第二步:选择服务平台,运用在android上就勾选anroid就好了第三步:输入发布版安全码SHA1 首先打开命令行按住windows+r两个按键在命令行中输入cd .android,定位到.android文件下调试版本使用 debug.keystore,命令为…

交通预测数据文件梳理:METR-LA

文章目录 前言一、adj_METR-LA.pkl文件读取子文件1读取子文件2读取子文件3 二、METR-LA.h5文件 前言 最近做的实验比较多&#xff0c;对于交通预测数据的各种文件和文件中的数据格式理解愈加混乱&#xff0c;因此打算重新做一遍梳理来加深实验数据集的理解&#xff0c;本文章作…

数位dp学习

参考借鉴&#xff1a; 数位DP学习整理&#xff08;数位DP看完这篇你就会了&#xff09;-CSDN博客 AcWing1081.度的数量(数位DP)题解_求给定区间$ [x,y]$ 中满足下列条件的整数个数:这个数恰好等于 k k k 个互不相等-CSDN博客 就是类似前缀和的思想&#xff0c;进行数字在位数…

最新资讯 | 开源大模型Llama会失去技术优势吗?

昨夜&#xff0c;Meta宣布推出迄今为止最强大的开源模型——Llama 3.1 405B&#xff0c;支持上下文长度为128K Tokens&#xff0c;在基于15万亿个Tokens、超1.6万个H100 GPU上进行训练&#xff0c;这也是Meta有史以来第一次以这种规模训练Llama模型。Meta同时还发布了全新升级的…

2024年,pdf文献热门翻译软件总结推荐

对于如今的时代&#xff0c;市面上存在各式各样的学术资料&#xff0c;对于没有语言天赋的我&#xff0c;看得眼花缭乱。看个学术资料都不知道要用哪个工具&#xff0c;试来试去和睦浪费时间。今天就我使用过的翻译软件中&#xff0c;整理了四款能帮助我们解决文献翻译难题的四…

未授权访问漏洞系列详解⑧!

Druid未授权访问漏洞 漏洞特征:http://www.xxxx.com/druid/index.html 当开发者配置不当时就可能造成未授权访问下面给出常见Druid未授权访问路径 ------------- /druid/websession.html /system/druid/websession.html /webpage/system/druid/websession.html(jeecg) ----…

GitHub惊天安全漏洞:删除的仓库竟能永远访问

引言 近日&#xff0c;GitHub 被曝出一个严重的安全漏洞&#xff0c;引发了广泛关注。开源安全软件公司 Truffle Security 的安全研究员 Joe Leon 发现&#xff0c;在 GitHub 上删除的代码仓库实际上仍然可以被访问。这一发现震惊了整个开源社区。本文将详细探讨这一安全漏洞的…

PXE服务器自助部署

kickstart部分 一、实验环境 两台主机&#xff1a;一台用于环境搭建&#xff08;ngnix.yee.org&#xff09;&#xff0c;一台用于测试(check_ks)。测试机 二、开启主机图形工具&#xff0c;并进行基本配置 查看 /root/anaconda-ks.cfg 文件&#xff0c;这个文件是系统安装以…

学习记录——day26 进程间的通信(IPC)无名管道 无名管道 信号通信 特殊的信号处理

目录 一、进程间通信引入 二、无名管道 1、无名管道相关概念 2、无名管道的API接口函数 pipe(int pipefd[2]); 3、管道通信的特点 4、管道的读写特点 三、无名管道 1、有名管道&#xff1a;有名字的管道文件&#xff0c;其他进程可以调用 2、可以用于亲缘进程间的通信&…

windows下,使用vs code远程连接云服务器【以CentOS7为例】

windows下&#xff0c;使用vs code远程连接云服务器 1. 下载VS code并准备相关插件2. 使用Remote - SSH远程控制Linux 1. 下载VS code并准备相关插件 1. VS code官网&#xff1a; 下载地址&#xff1a;https://code.visualstudio.com/Download下载合适版本的vs code。 2. 推荐…

20款奔驰S450升级原厂红外夜视系统,提升您夜晚行车安全

夜视辅助系统增强版不仅可以对处于潜在危险位置的行人进行探测&#xff0c;还可发现动物。当车辆进入没有路灯的区域&#xff0c;第三代夜视系统可自动将仪表盘的显示内容从车速表转变为锐度极高的夜视图像&#xff0c;并将探测到前方出现的行人或动物在系统中以鲜明的色彩突出…

CSS前端:元素的布局技巧

【备注】在线测试网站&#xff0c;点此进入。 一、内边距和外边距 【总结】padding增加本元素和子元素的距离&#xff0c;margin增加本元素和父元素的距离。 二、居中和对齐 【需求】 【HTML】 <div id"container"><p id"top">我在div容器…

打卡第33天------动态规划

周末的时候刷题了,在代码随想录系统的学习了一遍算法,看到leetcode上的题不再那么懵了,有点思路了,心里面对题的恐惧感也在逐渐消失,滴水石穿,小坚持带来大改变。 一、不同路径 leetcode题目链接:62.不同路径 题目描述: 一个机器人位于一个 m x n 网格的左上角 (起始…

【更新2022】省级经济高质量发展指标体系测度 含代码 2000-2022

重磅更新&#xff01;【章汕】制作“省级经济高质量发展指标体系测度 含代码”&#xff0c;市面上有这个版本的数据&#xff0c;但其内容非常不全面&#xff0c;个别指标有误&#xff0c;没有stata和代码&#xff0c;即使有代码小白也很容易报错&#xff1b;没有权重、宽面板等…

大数据SQL面试题002-合并日期重叠的活动

在大数据SQL面试中&#xff0c;我们经常会遇到一些棘手的问题&#xff0c;比如合并日期重叠的活动。本文将为大家详细解析这个问题&#xff0c;并提供相应的解决方案。 一、题目分析 题目要求我们处理一个表&#xff0c;表中记录了每个品牌的活动开始日期和结束日期。如果两个…