opencascade V3d_RectangularGrid 源码学习

类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.mfbz.cn/a/659125.html

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

相关文章

YOLOv10最详细全面讲解1- 目标检测-准备自己的数据集(YOLOv5,YOLOv8均适用)

YOLOv10没想到出来的如此之快,作为一名YOLO的爱好者,以YOLOv5和YOLOv8的经验,打算出一套从数据集装备->环境配置->训练->验证->目标追踪全系列教程。请大家多多点赞和收藏!!!YOLOv5和YOLOv8亲测…

Simulink从0搭建模型06-P7模型中结构体的使用

Simulink从0搭建模型06-P7模型中结构体的使用 本节课学习内容1. 结构体的创建 Bus Creator(多输入单输出)2. 结构体的引用 Bus Selector(单输入多输出)3. 结构体的赋值 Bus Assignment4. 结构体对象的创建 Bus object5. 结构体数组…

10分钟掌握FL Studio21中文版,音乐制作更高效!

FL Studio 21中文版是Image Line公司推出的一款深受欢迎的数字音频工作站软件,在音乐制作领域享有盛誉。这个版本特别针对中文用户进行了本地化处理,旨在提供更加便捷的用户体验和操作界面。本次评测将深入探讨FL Studio 21中文版的功能特点、使用体验及…

Java RMI

RMI - 安全篇 RMI分为三个主体部分: *Client-客户端*:客户端调用服务端的方法 *Server-服务端*:远程调用方法对象的提供者,也是代码真正执行的地方,执行结束会返回给客户端一个方法执行的结果。 *Registry-注册中心…

防火墙技术基础篇:配置主备备份的双机热备

防火墙技术基础篇:配置主备备份的双机热备 防火墙双机热备(High Availability, HA)技术是网络安全中的一个关键组成部分,通过它,我们可以确保网络环境的高可靠性和高可用性。下面我们一起来了解防火墙双机热备的基本原…

第二十三届中国科学家论坛盛大开幕,星医联董事长杨星荣获“十四五”科技创新先锋人物

2024年5月25-26日,第二十三届中国科学家论坛在北京召开,北京星医联科技有限公司(以下简称“星医联”)董事长杨星女士受邀出席并荣获“十四五科技创新先锋人物”称号。同时星医联专利“一种靶向协同降脂的纳米双药制备及应用”荣获…

[CVPR-24] HUGS: Human Gaussian Splats

本文提出一种新的数字人表征Human Gaussian Splats (HUGS),可以实现新姿态和新视角生成;本文提出一种新的前向形变模块(forward deformation module),在标定空间基于Gaussians表征数字人,并基于LBS学习如何…

从 ASCII 到 UTF-8 - Unicode 码的诞生与实现

前言:最近我在整理过往笔记时,发现涉及到了 UTF-8、Unicode 的相关内容,相信大家中的很多人和之前的我一样,在过去的很长一段时间里,并没有搞清楚什么是 Unicode、什么是 UTF-8,于是就有了这篇文章&#xf…

SSL证书:守护个人信息安全的坚固盾牌

在数字化浪潮汹涌的今天,我们的个人信息如同一座座宝藏,吸引着不法分子的贪婪目光。数据泄露事件频发,让信息安全问题日益凸显。而在这个信息爆炸的时代,如何保护我们的个人信息安全,成为了一个亟待解决的问题。幸运的…

【第三节】类的构造和析构函数

目录 一、数据成员的初始化 二、构造函数 2.1 什么是构造函数 2.2 构造函数的注意事项 三、析构函数 四、带参数的构造函数 五、缺省构造函数 六、构造函数初始化列表 七、拷贝构造函数和调用规则 八、深拷贝和浅拷贝 九、总结 一、数据成员的初始化 定义普通变量&am…

java智慧工厂制造生产管理MES系统saas模式Java+ idea+ uniapp全套MES系统源码,多端展示

java智慧工厂制造生产管理MES系统saas模式Java idea uniapp全套MES系统源码,多端展示 MES 系统源码(生产制造执行系统)能够帮助企业实现全生产过程的可视化,数据分析智能化、构建高效智能工厂,MES系统通过控制指令、人…

大气污染溯源算法及其技术实现

污染溯源基础概念知识 大气污染溯源是指识别并追踪污染物的来源及其传输过程,以确定造成大气污染的根本原因和污染物传播路径的技术和方法。这对于制定有效的控制和减轻污染策略至关重要。大气污染的溯源主要涉及以下几个方面: 污染源识别:…

Facebook开户 | 如何检查公共主页的状态

想要了解你的Facebook公共主页的状态吗? Facebook公共主页是让广告主与粉丝互动、传播信息的绝佳平台,但是大家知道如何检查并维护自己的主页状态吗?别担心,Facebook提供了一系列简单易用的工具来帮助大家实现这一目标。 *Page Q…

RedHat9网络配置设计

目录 一、实验目的 二、实验过程 1、配置新网络接口 2、多网卡配置网络 3、网络接口的绑定,进行远程访问 4、配置网络接口的组合 一、实验目的 本次实验的目的是使用nmcli命令工具配置网络,ens160配置多个网卡,进行网络接口的绑定与组合…

一文搞懂Java8 Lambda表达式、方法引用

Lambda表达式介绍 Java 8的一个大亮点是引入Lambda表达式,使用它设计的代码会更加简洁。通过Lambda表达式,可以替代我们以前经常写的匿名内部类来实现接口。Lambda表达式本质是一个匿名函数; 体验Lambda表达式 我们通过一个小例子来体验下L…

单元测试框架Pytest的基本操作

Pytest基本操作 1. 详解1.1 命名规则:1.2 自定义查找规则:1.3 3种运行方式1.4 执行顺序2. 断言2.1 定义2.2 断言的规则3. mark3.1 mark的作用3.2 mark的标记方式3.3 注册标签名3.4 skip跳过标记4. pytest的参数化5. pytest的夹具(fixture测试夹具)5.1. 作用5.2. 夹具应用场…

Java网络编程:UDP通信篇

目录 UDP协议 Java中的UDP通信 DatagramSocket DatagramPacket UDP客户端-服务端代码实现 UDP协议 对于UDP协议,这里简单做一下介绍: 在TCP/IP协议簇中,用户数据报协议(UDP)是传输层的一个主要协议之一&#xf…

LeetCode hot100-57-G

17. 电话号码的字母组合 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。不会,放IDEA里执行了一下大概理解了流程 …

《Ai企业知识库》-rasa-初步使用

根据上面的环境准备之后: 《Ai企业知识库》-模型实践-rasa开源学习框架-搭建简易机器人-环境准备(针对windows)-02-CSDN博客 基础的使用: rasa项目初始化: rasa init 首先进入目标文件夹 在dos窗口(目标文件夹下&#xff09…

10Django项目--用户管理系统--改

对应视频链接点击直达 10Django项目--用户管理系统--改 对应视频链接点击直达改a,本质b,修改(更新) 页面相关a,index页面新增操作按钮b,修改(更新)页面c,路由和函数 OVER,不会有人不会吧不会的加Q139400651…