opencascade V3d_RectangularGrid 源码学习

news2024/10/5 22:24:25

类V3d_RectangularGrid

在这里插入图片描述

V3d_RectangularGrid()

V3d_RectangularGrid::V3d_RectangularGrid(const V3d_ViewerPointer &aViewer,
const Quantity_Color &aColor,
const Quantity_Color &aTenthColor)
// 构造函数

◆ ~V3d_RectangularGrid()

virtual V3d_RectangularGrid::~V3d_RectangularGrid()
// 虚析构函数

成员函数文档
◆ Display()

virtual void V3d_RectangularGrid::Display()
overridevirtual
// 在屏幕上显示网格。

实现了 Aspect_Grid。

◆ DumpJson()

virtual void V3d_RectangularGrid::DumpJson(Standard_OStream &theOStream,
Standard_Integer theDepth = -1) const
overridevirtual
// 将我的内容转储到流中。

从 Aspect_RectangularGrid 重新实现。

◆ Erase()

virtual void V3d_RectangularGrid::Erase() const
overridevirtual
// 从屏幕上擦除网格。

实现了 Aspect_Grid。

◆ GraphicValues()

void V3d_RectangularGrid::GraphicValues(Standard_Real &XSize,
Standard_Real &YSize,
Standard_Real &OffSet) const
// 返回图形参数值。

◆ IsDisplayed()

virtual Standard_Boolean V3d_RectangularGrid::IsDisplayed() const
overridevirtual
// 当网格在屏幕上显示时返回 TRUE。

实现了 Aspect_Grid。

◆ SetColors()

virtual void V3d_RectangularGrid::SetColors(const Quantity_Color &aColor,
const Quantity_Color &aTenthColor)
overridevirtual
// 更改网格的颜色。

从 Aspect_Grid 重新实现。

◆ SetGraphicValues()

void V3d_RectangularGrid::SetGraphicValues(const Standard_Real XSize,
const Standard_Real YSize,
const Standard_Real OffSet)
// 设置图形参数值。

◆ UpdateDisplay()

virtual void V3d_RectangularGrid::UpdateDisplay()
overrideprotectedvirtual
// 更新网格参数。

这个包提供了来自 BRepAdaptor 的曲线和曲面的包围盒。这些函数用于将拓扑形状添加到一个包围盒中。

Add()

向包围盒 B 中添加形状 S。具体来说,将依次添加到 B 中:每个 S 的面;如果存在,则使用面的三角剖分;然后是 S 的每条不属于面的边,如果存在,则使用边的多边形;最后是 S 的每个不属于边的顶点。在每个基本操作之后,包围盒 B 的大小会增加相应子形状的公差值。当使用面的三角剖分时,这种增大值是三角剖分偏差和面公差的总和。当使用边的多边形时,这种增大值是多边形偏差和边公差的总和。警告:如果没有在形状 S 的数据结构中插入三角剖分,则此算法会消耗大量时间。结果的包围盒可能比对象略大。

AddClose()

将形状 S 添加到包围盒 B 中。这是一种快速算法,但仅在形状 S 由多边形平面面组成时有效,如 S 是精确形状的逼近多面体表示时。特别注意,因为不检查此条件,如果未遵守此条件,则在建立包围盒的算法中可能会出现错误。请注意,结果的包围盒不会像 Add 函数那样通过子形状的公差值增大。因此,结果的包围盒的添加部分更接近形状 S。

AddOBB()

计算形状 theS 的定向包围盒。实现了两种独立的计算方法:第一种基于点集(因此需要三角剖分形状或具有平面面和线性边的形状)。如果 theIsTriangulationUsed 为 FALSE,则将完全忽略三角剖分。如果 theIsShapeToleranceUsed 为 TRUE,则结果盒子将根据形状的公差进行扩展。theIsOptimal 标志定义是否为了性能而寻找更紧凑的 OBB。

AddOptimal()

将形状 S 添加到包围盒 B 中。此算法构建精确的包围盒,其仅在形状的几何边界上与精确几何边界有所不同。算法与 Add 方法相同,但使用更精确的方法构建几何对象的包围盒。如果 useShapeTolerance = True,则包围盒将根据形状公差进行扩展,并且这些公差将用于包围盒大小计算的数值方法,否则,包围盒将根据底层几何实体的大小进行构建,数值计算使用公差 Precision::Confusion()。

总结

使用过程中 Add 求的快一些 但是有些求取不准确
AddOptimal 相比Add求的慢一些 但是比Add准确度高

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

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

相关文章

华为诺亚等发布MagicDrive3D:自动驾驶街景中任意视图渲染的可控3D生成

文章链接:https://arxiv.org/pdf/2405.14475 项目链接:https://flymin.github.io/magicdrive3d 虽然可控生成模型在图像和视频方面取得了显著成功,但在自动驾驶等无限场景中,高质量的3D场景生成模型仍然发展不足,主…

NDIS小端口驱动开发(三)

微型端口驱动程序处理来自过度驱动程序的发送请求,并发出接收指示。 在单个函数调用中,NDIS 微型端口驱动程序可以指示具有多个接收 NET_BUFFER_LIST 结构的链接列表。 微型端口驱动程序可以处理对每个NET_BUFFER_LIST结构上具有多个 NET_BUFFER 结构的多…

树莓派部署harbor_arm64

文章目录 树莓派4b部署Harbor-arm64版本docker-compose维护命令访问harbor 192.168.1.111认用户名密码admin/Harbor12345 树莓派4b部署Harbor-arm64版本 harbor-arm版本 部署:参考 wget https://github.com/hzliangbin/harbor-arm64/releases/download/v1.9.3/ha…

NFS p.1 服务器的部署以及客户端与服务端的远程挂载

目录 介绍 应用 NFS的工作原理 NFS的使用 步骤 1、两台机子 2、安装 3、配置文件 4、实验 服务端 准备 启动服务: 客户端 准备 步骤 介绍 NFS(Network File System,网络文件系统)是一种古老的用于在UNIX/Linux主…

redis数据类型之string,list

华子目录 key操作说明SCAN cursor [MATCH pattern] [COUNT count]dump与restorekeys 通配符 示例演示 string说明setbit key offset valuegetbit key offsetsetrange key offset value List结构图相关命令lrem key count valueltrim key count value示例:使用 LTRIM…

Blazor入门-svg绘制-碰撞检测和图形坐标调整

上一篇: Blazor入门-简单svg绘制导出图像_blazor 画图-CSDN博客 https://blog.csdn.net/pxy7896/article/details/139003443 注意:本文只给出思路和框架,对于具体的计算细节,考虑到日后会写入软件著作权和专利文书,因…

被追着问UUID和自增ID做主键哪个好,为什么?

之前无意间看到群友讨论到用什么做主键比较好 其实 UUID 和自增主键 ID 是常用于数据库主键的两种方式,各自具有独特的优缺点。 UUID UUID 是一个由 128 位组成的唯一标识符,通常以字符串形式表示。它可以通过不同的算法生成,例如基于时间…

绝招曝光!3小时高效利用ChatGPT写出精彩论文

在这份指南中,我将深入解析如何利用ChatGPT 4.0的高级功能,指导整个学术研究和写作过程。从初步探索研究主题,到撰写结构严谨的学术论文,我将一步步展示如何在每个环节中有效运用ChatGPT。如果您还未使用PLUS版本,可以…

C++入门 ros自定义msg话题通信

一、 开发环境 ubuntu20.04 ros版本noetic 参考视频 https://www.bilibili.com/video/BV1Ci4y1L7ZZ/?p52&spm_id_from333.1007.top_right_bar_window_history.content.click&vd_source4cd1b6f268e2a29a11bea5d2568836ee 二、 编写msg文件 在功能包下面创建msg文件夹…

【源码】6语言跨境电商PHP源码 精美UI+功能强大开源无授权

6语言跨境电商PHP源码 精美UI功能强大开源无授权 英文,简体中文,繁体中文,日语、泰语、越南语6语言。功能非常强大,UI也很漂亮的跨境电商源码。基于国外成熟电商系统二开的源码,带POS系统。 系统采用Laravel框架开发…

盘点好用的国产传输软件,看看哪个适合你

流动让数据释放价值,无论什么企业,什么行业,业务的正常开展均是以数据和文件的传输为基础,因此,对企业来说,文件传输工具是最基础但也是最举重若轻的。在琳琅满目的多种国产传输软件中,哪个是最…

【运筹学】前言:基础知识

💞💞 前言 hello hello~ ,这里是大耳朵土土垚~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 💥个人主页&#x…

CISCN --EzHeap

当时有点着急了,这题没写出来,结束后在ctfshow上做了一下。 使用的方法是environ泄露栈地址,然后在栈上构造orw的rop链。 以下是过程: 只能orw。 堆体开沙盒模式会在heap和bin一开始构造很多垃圾堆。所以分配和free的时候要注意…

1806 jsp防疫物资销售管理系统 Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 jsp 防疫物资销售管理系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助采用了java设计,系统具有完整的源代码和数据库,系统采用web模式,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.…

Ps:消失点滤镜 - 透视平面和网格

Ps菜单:滤镜/消失点 Filter/Vanishing Point 快捷键:Ctrl Alt V “消失点”滤镜中的透视平面 Plane和网格 Grid用于在编辑图像时保持正确的透视效果。 只有定义了与图像透视对齐的矩形平面,才能在消失点中进行编辑。平面的精确度确定了能否…

[自动驾驶技术]-5 Tesla自动驾驶方案之算法(AI Day 2021)

有朋友问我,如何有效学习一个新技术。笔者这么多年的经验是:1)了解国内外产业应用和标准法规现状,先建立宏观知识图谱及技术系统框架;2)根据系统框架逐块进行深入研究(横向、纵向)&a…

【LLM第7篇】transformer跟bert、gpt、大模型的联系

上一篇讲了transformer的原理,接下来,看看它的衍生物们。 Transformer基本架构 Transformer模型主要由两部分组成:编码器(Encoder)和解码器(Decoder)。编码器负责处理输入序列,将其…

正邦科技(day2)

自动校准 问题:电量不准都可以直接去校准 校准方式:可程式变频电压 问题分析:他是通过软件去自动自动校准的,flash 清空的时候有缓存没有清空,或者互感器没有读取到问题 互感器:电流互感器的作用包括电流测…

2024年5月份架构师考试真题完整版

截至2024-5-28 19:24:14已全部收录完成 共75到选择题,5道案例题,4道论文题。题目顺序不分先后。 全网最全的2024年5月份架构师考试真题回忆版,包含答案和解析。 群友 疯狂程序员 花落无声 半夏 鲁迅-三战老兵(预备役) 本次必成 锦鲤附体 2024…

LabVIEW车轮动平衡检测系统

LabVIEW车轮动平衡检测系统 随着汽车行业的快速发展,车轮动平衡问题对乘坐舒适性、操控稳定性及安全性的影响日益凸显,成为了提高汽车性能的一个关键环节。传统的检测系统因精度低、成本高、操作复杂等问题,难以满足现代汽车行业的需求。开发…