opencascade AIS_InteractiveContext源码学习8 trihedron display attributes

AIS_InteractiveContext

在这里插入图片描述

前言

交互上下文(Interactive Context)允许您在一个或多个视图器中管理交互对象的图形行为和选择。类方法使这一操作非常透明。需要记住的是,对于已经被交互上下文识别的交互对象,必须使用上下文方法进行修改。如果交互对象尚未加载到交互上下文中,您才能直接调用交互对象的方法。

trihedron display attributes

三维坐标系(trihedron)显示属性通常包括以下内容:

  1. 颜色:设置三维坐标系的颜色,以便在图形中清晰可见。

  2. 线型:定义三维坐标系的线条样式,例如实线、虚线或其他类型。

  3. 线宽:指定三维坐标系线条的宽度,影响其在图形中的视觉效果。

  4. 箭头样式:控制坐标轴末端箭头的样式,以指示方向。

  5. 坐标轴长度:设置坐标轴的长度,以适应图形的比例。

  6. 标记:可选择在坐标轴上添加刻度或标签,以显示坐标值。

这些属性有助于增强三维坐标系的可读性和视觉效果,使其在不同应用中更加清晰和易于理解。

1:SetTrihedronSize

设置三维坐标系的大小 aSize。用于更改三维坐标系默认显示值 100 毫米。若在您自定义的交互对象中使用此函数,则需要调用新类的 Compute 函数。这将重新计算每个显示的三维坐标系的呈现。

2:PlaneSize

如果 X 方向的长度 XSize 与 Y 方向的长度 YSize 相同,则返回 true。
AIS_InteractiveContext 中,SetTrihedronSize 用于设置三维坐标系的大小。这一方法通常在需要自定义显示大小的场合使用。

用法示例

以下是使用 AIS_InteractiveContext::SetTrihedronSize 的示例代码:

#include <AIS_InteractiveContext.hxx>
#include <AIS_Trihedron.hxx>

// 设置三维坐标系的大小
void SetTrihedronSize(AIS_InteractiveContext& context, Standard_Real size) {
    // 创建三维坐标系对象
    Handle(AIS_Trihedron) trihedron = new AIS_Trihedron();
    
    // 设置坐标系的大小
    context.SetTrihedronSize(size);
    
    // 显示三维坐标系
    context.Display(trihedron, Standard_True); // 第一个参数是形状,第二个是是否立即更新视图
}

// 调用示例
// AIS_InteractiveContext context; // 假设交互上下文已经创建
// SetTrihedronSize(context, 100.0); // 设置大小为 100.0 毫米

参数

  • size:指定三维坐标系的大小(通常以毫米为单位)。

通过这种方式,可以在 OpenCascade 的交互上下文中灵活调整三维坐标系的显示大小,适应不同的可视化需求。

tessellation deviation properties for automatic triangulation

在 OpenCascade 中,网格细分(tessellation)偏差属性用于控制自动三角剖分的精度和表现。这些属性帮助定义如何将几何形状转化为三角形网格。以下是一些常见的网格细分偏差属性:

  1. 最大弦偏差:控制网格细分过程中,曲线或曲面上弦的最大偏差。较小的偏差值会生成更精细的三角形。

  2. 最大角度偏差:定义三角形中允许的最大角度变化,以确保生成的三角形在视觉上不会过于扭曲。

  3. 相对偏差:相对于对象大小的偏差值,允许在不同尺寸的对象上保持一致的细分质量。

  4. 绝对偏差:固定的偏差值,不受对象尺寸影响。

通过调整这些属性,可以优化渲染效果和性能,确保在不同场景中平衡细节和计算资源。

1:SetDeviationCoefficient

设置偏差系数 theCoefficient。曲线或曲面的绘制是基于最大弦偏差。偏差系数用于阴影显示模式,形状被分解为三角形,这些三角形用于计算物体表面的光反射。三角形由形状中曲线的弦构成。偏差系数 theCoefficient 定义了弦可以偏离曲线切线的最大角度。如果达到此限制,则开始新的三角形。该偏差是绝对的,通过方法 SetMaximalChordialDeviation 设置,默认值为 0.001。然而,在绘制形状时,您可以要求相对偏差。此偏差为:SizeOfObject * DeviationCoefficient。

2:SetDeviationAngle

设置偏差系数 theCoefficient。曲线或曲面的绘制基于最大弦偏差。偏差系数用于阴影显示模式,形状被分解为三角形,这些三角形用于计算物体表面的光反射。三角形由形状中曲线的弦构成。偏差系数 theCoefficient 定义了弦可以偏离曲线切线的最大角度。一旦达到此限制,就会开始新的三角形。该偏差是绝对的,通过方法 SetMaximalChordialDeviation 设置,默认值为 0.001。然而,在绘制形状时,您可以请求相对偏差,此偏差为:SizeOfObject * DeviationCoefficient。

3:SetAngleAndDeviation

调用 AIS_Shape 的 SetAngleAndDeviation 方法,以同时设置角度和偏差系数。

4:SetDeviationCoefficient

设置偏差系数 theCoefficient。曲线或曲面的绘制基于最大弦偏差。偏差系数用于阴影显示模式,形状被分解为三角形,这些三角形用于计算物体表面的光反射。三角形由形状中曲线的弦构成。偏差系数 theCoefficient 定义了弦可以偏离曲线切线的最大角度。如果达到此限制,则开始新的三角形。该偏差是绝对的,通过方法 SetMaximalChordialDeviation 设置,默认值为 0.001。然而,在绘制形状时,您可以请求相对偏差,此偏差为:SizeOfObject * DeviationCoefficient。

5:DeviationCoefficient ()

返回偏差系数。曲线或曲面的绘制基于最大弦偏差。偏差系数用于阴影显示模式,形状被分解为三角形,这些三角形用于计算物体表面的光反射。三角形由形状中曲线的弦构成。偏差系数定义了弦可以偏离曲线切线的最大角度。一旦达到此限制,就会开始新的三角形。该偏差是绝对的,通过 Prs3d_Drawer::SetMaximalChordialDeviation 设置,默认值为 0.001。然而,在绘制形状时,您可以请求相对偏差,此偏差为:SizeOfObject * DeviationCoefficient。

6:DeviationAngle

设置偏差系数 theCoefficient。曲线或曲面的绘制是基于最大弦偏差。偏差系数用于阴影显示模式,形状被分解为三角形,这些三角形用于计算物体表面的光反射。三角形由形状中曲线的弦构成。偏差系数 theCoefficient 定义了弦可以偏离曲线切线的最大角度。如果达到此限制,则开始新的三角形。该偏差是绝对的,通过方法 SetMaximalChordialDeviation 设置,默认值为 0.001。然而,在绘制形状时,您可以请求相对偏差,此偏差为:SizeOfObject * DeviationCoefficient。

简单示例

HLR (Hidden Line Removal) display attributes

HLR(隐藏线去除)显示属性是指在计算机图形学中,特别是在 CAD(计算机辅助设计)和 3D 建模应用程序中,用于控制如何渲染或去除隐藏线的设置和参数。以下是与 HLR 显示相关的一些关键属性:

  1. 偏差系数:此属性设置线(通常是边缘或轮廓)可以偏离直线的容忍度,超出此容忍度后该线将被视为隐藏。这会影响隐藏线去除的准确性。

  2. 最大弦偏差:定义线段(弦)从真实曲线或表面边缘可以允许的最大偏差。该参数对于确定何时打断线段以实现更准确的渲染至关重要。

  3. 阴影显示模式:指定在去除隐藏线时对象表面的渲染方式。该模式通常涉及将表面分解为三角形或其他基本图元,以计算光的反射和阴影。

  4. 三角形形成:描述如何从曲线和表面的弦形成三角形,以便于隐藏线去除。三角形是一种常见的图元,因为它们易于计算和渲染。

  5. 相对偏差:允许相对于正在渲染的对象的大小指定偏差。该参数有助于在不同规模的对象之间实现一致的视觉质量。

这些属性共同确保在 CAD 和类似应用程序中 3D 对象的表示既视觉准确又计算高效,通过选择性去除隐藏线,同时保持可见边缘和表面的完整性。

1:HiddenLineAspect

初始化默认绘图工具(或 Drawer)中的隐藏线外观。默认值为:颜色:Quantity_NOC_YELLOW,线型:Aspect_TOL_DASH,宽度:1。

2:SetHiddenLineAspect

设置隐藏线外观 anAspect。Aspect 定义了 HLR 投影中隐藏线的显示属性。

3:DrawHiddenLine

如果隐藏线要绘制,则返回 Standard_True。默认情况下,隐藏线不被绘制。

4:EnableDrawHiddenLine

初始化默认绘图工具(或 Drawer)中的隐藏线外观。默认值为:颜色:Quantity_NOC_YELLOW,线型:Aspect_TOL_DASH,宽度:1。

5:DisableDrawHiddenLine

初始化默认绘图工具(或 Drawer)中的隐藏线外观。默认值为:颜色:Quantity_NOC_YELLOW,线型:Aspect_TOL_DASH,宽度:1。

iso-line display attributes

ISO 线显示属性通常指用于控制 ISO 线(等值线)在图形界面中呈现的设置。以下是一些常见的 ISO 线显示属性:

  1. 颜色:设置 ISO 线的颜色,以便在图形中清晰可见。

  2. 线型:定义 ISO 线的样式,比如实线、虚线或其他类型。

  3. 线宽:指定 ISO 线的宽度,影响其在图形中的视觉效果。

  4. 透明度:控制 ISO 线的透明度,使其可以与其他图形元素相互作用。

  5. 间距:定义相邻 ISO 线之间的距离,这对于等值线的密度和可读性非常重要。

  6. 标签:可选择显示 ISO 线的标签,以标识对应的数值或类别。

这些属性有助于增强数据可视化效果,使得 ISO 线在不同的应用中更具可读性和美观性。

1:SetIsoNumber

设置显示的 U 和 V 等参数的数量。

2:IsoNumber

返回显示的 U 和 V 等参数的数量。

3:IsoOnPlane

方法1:如果启用了在平面上绘制等参数,则返回 True。如果 <forUIsos> 为 False,则不绘制。
方法2:如果启用了在平面上绘制等参数,则返回 True。

4:IsoOnTriangulation

方法1:如果启用了在三角剖分算法上绘制等值线,则返回 true。
方法2:启用或禁用特定对象的等值线三角剖分构建。如果禁用三角剖分构建,默认的平面构建器将为给定对象计算等值线。
方法3:启用或禁用默认绘图工具的等值线三角剖分构建。如果禁用三角剖分构建,默认的平面构建器将为给定对象计算等值线。

来源:网址
继续obsolete methods

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MySQL集群、Redis集群、RabbitMQ集群

一、MySQL集群 1、集群原理 MySQL-MMM 是 Master-Master Replication Manager for MySQL&#xff08;mysql 主主复制管理器&#xff09;的简称。脚本&#xff09;。MMM 基于 MySQL Replication 做的扩展架构&#xff0c;主要用来监控 mysql 主主复制并做失败转移。其原理是将真…

linux高级编程(网络)(www,http,URL)

数据的封包和拆包 封包&#xff1a; 应用层数据&#xff08;例如HTTP请求&#xff09;被传递给传输层。传输层&#xff08;TCP&#xff09;在数据前添加TCP头部&#xff08;包含端口号、序列号等&#xff09;。网络层&#xff08;IP&#xff09;在TCP段前添加IP头部&#xff…

解读InnoDB数据库索引页与数据行的紧密关联

目录 一、快速走进索引页结构 &#xff08;一&#xff09;整体展示说明 &#xff08;二&#xff09;内容说明 File Header&#xff08;文件头部&#xff09; Page Header&#xff08;页面头部&#xff09; Infimum Supremum&#xff08;最小记录和最大记录&#xff09; …

多模态大模型 - MM1

1. 摘要 本文主要通过分析模型结构和数据选择讨论如何构建一个好的多模态大模型&#xff08;MLLM&#xff09;&#xff0c;并同时提出了MM1模型&#xff0c;包括30B dense版本和64B的MoE版本。 具体贡献&#xff1a; 模型层面&#xff1a;影响效果的重要性排序为&#xff1a;…

昇思25天学习打卡营第10天|NLP-RNN实现情感分类

打卡 目录 打卡 任务说明 流程 数据准备与加载 加载预训练词向量&#xff08;分词&#xff09; 数据集预处理 模型构建 Embedding RNN(循环神经网络) LSTM 全连接层 损失函数与优化器 训练逻辑 评估指标和逻辑 模型训练与保存 模型加载与测试 自定义输入测试 …

周报(1)<仅供自己学习>

文章目录 一.pytorch学习1.配置GPU2.数据读取问题1&#xff08;已解决问题2&#xff08;已解决 3.卷积的学习 二.NeRF学习1.介绍部分问题1&#xff08;已解决 2.神经辐射场表示问题2&#xff08;已解决问题3&#xff08;已解决问题4&#xff08;已解决问题5&#xff1a;什么是视…

1-5岁幼儿胼胝体的表面形态测量

摘要 胼胝体(CC)是大脑中的一个大型白质纤维束&#xff0c;它参与各种认知、感觉和运动过程。尽管CC与多种发育和精神疾病有关&#xff0c;但关于这一结构的正常发育(特别是在幼儿阶段)还有很多待解开的谜团。虽然早期文献中报道了性别二态性&#xff0c;但这些研究的观察结果…

Armv8-R内存模型详解

目录 1.内存模型的必要性 2.Armv8-R内存模型分类 2.1 Normal memory 2.2 Device Memory 2.2.1 Gathering 2.2.2 Reordering 2.2.3 Early Write Acknowledgement 3.小结 大家好&#xff0c;今天是悲伤的肌肉。 在调研区域控制器芯片时&#xff0c;发现了S32Z、Stellar …

从Centos7升级到Rocky linux 9后,网卡连接显示‘Wired connection 1‘问题解决方法

问题描述 从Centos7升级到Rocky9后, 发现网卡eth0的IP不正确。通过nmcli查看网卡连接&#xff0c;找不到name为eth0的连接&#xff0c;只显示’Wired connection 1’ 查看/etc/NetworkManager/system-connections/&#xff0c;发现找不到网卡配置文件。 原因分析 centos7使…

git取消合并:--hard 或 --merge

第一步&#xff1a;查了git日志 git reflog如下&#xff0c;运行上述命令后&#xff0c;可以看见所有的提交哈希&#xff08;id&#xff09; 第二步 查看到上述所有的提交记录后&#xff0c;有如下方法去回退 方法1&#xff1a;--hard 确定上一次提交的哈希值 git reset…

RK3568笔记三十八:DS18B20驱动开发测试

若该文为原创文章&#xff0c;转载请注明原文出处。 DS18B20驱动参考的是讯为电子的单总线驱动第十四期 | 单总线_北京迅为的博客-CSDN博客 博客很详细&#xff0c;具体不描述。 只是记录测试下DS18B20读取温度。 一、介绍 流程基本和按键驱动差不多&#xff0c;主要功能是…

内存RAS技术介绍:内存故障预测

故障预测是内存可靠性、可用性和服务性&#xff08;RAS&#xff09;领域中的一个重要方面&#xff0c;旨在提前识别潜在的不可纠正错误&#xff08;UE&#xff09;&#xff0c;以防止系统崩溃或数据丢失。 4.1 错误日志记录与预测基础 错误一般通过Linux内核模块Mcelog记录到…

Matlab 判断直线上一点

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 判断一个点是否位于一直线上有很多方法,这里使用一种很有趣的坐标:Plucker线坐标,它的定义如下所示: 这个坐标有个很有趣的性质,我们可以使用Plucker坐标矢量构建一个Plucker矩阵: 则它与位于对应线上的齐次点…

鸿蒙语言基础类库:【@system.configuration (应用配置)】

应用配置 说明&#xff1a; 从API Version 7 开始&#xff0c;该接口不再维护&#xff0c;推荐使用新接口[ohos.i18n]和[ohos.intl]。本模块首批接口从API version 3开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。 导入模块 import configurati…

uniapp启动图延时效果,启动图的配置

今天阐述uniapp开发中给启动图做延迟效果&#xff0c;不然启动图太快了&#xff0c;一闪就过去了&#xff1b; 一&#xff1a;修改配置文件&#xff1a;manifest.json "app-plus" : {"splashscreen" : {"alwaysShowBeforeRender" : false,"…

vue学习day09-自定义指令、插槽

29、自定义指令 &#xff08;1&#xff09;概念&#xff1a;自己定义的指令&#xff0c;可以封装一些dom操作&#xff0c;扩展额外的功能。 &#xff08;2&#xff09;分类&#xff1a; 1&#xff09;全局注册 2&#xff09;局部注册 3&#xff09;示例&#xff1a; 让表…

前端Vue组件化实践:自定义银行卡号格式化组件的探索与应用

在前端开发中&#xff0c;随着业务逻辑的复杂化和应用规模的扩大&#xff0c;传统的一体式开发方式逐渐显露出其局限性。任何微小的改动或新功能的增加都可能牵一发而动全身&#xff0c;导致整体逻辑的修改&#xff0c;进而增加了开发成本和维护难度。为了解决这一问题&#xf…

Java软件设计模式-单例设计模式

目录 1.软件设计模式的概念 2.设计模式分类 2.1 创建型模式 2.2 结构型模式 2.3 行为型模式 3.单例设计模式 3.1 单例模式的结构 3.2 单例模式的实现 3.2.1 饿汉式-方式1&#xff08;静态变量方式&#xff09; 3.2.2 懒汉式-方式1&#xff08;线程不安全&#xff09; 3.…

数据结构之初始二叉树(2)

找往期文章包括但不限于本期文章中不懂的知识点&#xff1a; 个人主页&#xff1a;我要学编程(ಥ_ಥ)-CSDN博客 所属专栏&#xff1a;数据结构&#xff08;Java版&#xff09; 二叉树的前置知识&#xff08;概念、性质、、遍历&#xff09; 通过上篇文章的学习&#xff0c;我们…

STM32第十八课:SPIFlash

目录 需求一、SPI概要二、SPI配置1.开时钟2.配置IO3.配置&使能SPI 三、FLash操作函数1.SPI发送数据2.FLASH写使能3.FLASH等待操作完成4.FLASH页写操作5.FLASH读操作6.FLASH扇区擦除 四、需求实现 需求 通过SPI控制FLash进行数据的保存和删除。 一、SPI概要 在我们使用UA…