【OOC学习19】TKBrep:边界表示法的实现
Brep边界表示法相关的类都在ModelingData模块下的TKBrep toolkit中
一、TKBrep下比较重要的包有:
- TopoDS:边界表示法核心类
- TopExp:Brep数据结构进行遍历工具类
- TopTools:Brep数据结构集合类
二、Boundary representation(BRep)
边界表示(Boundary Representation)也称为BRep表示,它是几何造型中最成熟、无二义的表示法。实体Solid用一组封闭的面组成,而每个面又由它所在的曲面的定义加上其边界来表示,面的边界是边的并集,而边又是由点来表示的。
边界表示的一个重要特征是描述形体的信息包括几何信息(Geometry)和拓朴信息(Topology)两个方面。拓朴信息描述形体上的顶点、边、面的连接关系,它形成物体边界表示的“骨架”。形体的几何信息犹如附着在“骨架”上的肌肉。例如,形体的某个面位于某一个曲面上,定义这一曲面方程的数据就是几何信息。此外,边的形状、顶点在三维空间中的位置(点的坐标)等都是几何信息,一般来说,几何信息描述形体的大小、尺寸、位置和形状等。
在边界表示法中,边界表示就按照体-面-环-边-点的层次,详细记录构成形体的所有几何元素的几何信息及其相互连接的拓朴关系。这样,在进行各种运算和操作中,就可以直接取得这些信息。
一个边界表示法的数据模型中,包含拓扑与几何两部分,他们的对应关系:
几何对象 拓扑对象
Point <----> Vertex
Curve、line <----> Edge
Surface <----> Face
三、TopoDS包
TopoDS包提供拓扑相关的类,他们的基类都是TopoDS_Shape。
- TopoDS_Compound: 多个solid的组合
- TopoDS_Solid:实体
- TopoDS_Shell:多个由边相连的面
- TopoDS_Face:由封闭的wire组成的面,是平面或曲面的一部分
- TopoDS_Wire:由多个边组成,边之间由顶点相连
- TopoDS_Edge:边
- TopoDS_Vertex:顶点
TopoDS类:当某Shape确定是是某种拓扑类型,可通过TopoDS类转换成更准确的子类。
Brep_Tool类:提供获取Brep Shape的几何对象
- 从拓扑面获取几何面
static const Handle(Geom_Surface)& Surface (const TopoDS_Face& F, TopLoc_Location& L);
- 从Vertex获取几何点
static gp_Pnt Pnt (const TopoDS_Vertex& V);
- 从Edge获取3D曲线
static Handle(Geom_Curve) Curve (const TopoDS_Edge& E, Standard_Real& First, Standard_Real& Last);
四、TK3d工具集下TopAbs包
这个包定义了拓扑相关的枚举。
1. TopAbs_State: 定义点或多个点相对于某个shape的位置:
- TopAbs_IN: 内部
- TopAbs_OUT:外部
- TopAbs_ON:之上,如点在边上
- TopAbs_UNKNOWN:不确定,可能是计算失败
2. TopAbs_Orientation: 方向,如线的方向
- TopAbs_FORWARD:
- TopAbs_REVERSED
- TopAbs_INTERNAL
- TopAbs_EXTERNAL
3. TopAbs_ShapeEnum: 定义拓扑形状
- TopAbs_COMPOUND:复合体
- TopAbs_COMPSOLID:
- TopAbs_SOLID:体
- TopAbs_SHELL:壳
- TopAbs_FACE:面
- TopAbs_WIRE:线框
- TopAbs_EDGE:边
- TopAbs_VERTEX:顶点
- TopAbs_SHAPE:
五、TopExp包
TopExp包提供查看、操作拓扑数据的类。TopExp_Explorer可查看一个拓扑对象的子组件。
Standard_EXPORT TopExp_Explorer(const TopoDS_Shape& S, // 要查找的对象
const TopAbs_ShapeEnum ToFind, // 目标查找类型
const TopAbs_ShapeEnum ToAvoid = TopAbs_SHAPE); // 过滤掉的类型
【OOC学习19】TKBrep:边界表示法的实现相关推荐
- python爬虫学习19
python爬虫学习19 经过urllib与requests库的学习,相信我们已经对python爬虫有了一个初步的掌握了,下面我们将一起学习正则表达式的运用(还记得之前挖的坑嘛?). 三.正则表达式 ...
- 收藏 | 深度学习19个损失函数汇总
点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:作者|mingo_敏,来源 https://blog.csd ...
- Spark中组件Mllib的学习19之分层抽样
更多代码请见:https://github.com/xubo245/SparkLearning Spark中组件Mllib的学习之基础概念篇 1解释 分层抽样的概念就不讲了,具体的操作: RDD有个操 ...
- [学习]19 如何高效工作和学习
大神是这样高效工作和学习的 今天要跟大家分享的是,大神们是如何高效地学习.生活和工作的,我将教大家如何利用[标准操作程序」(SOP),节省大量时间和精力,把事情处理得井井有条.又快又好. 我们经常 ...
- C++学习19 类的多继承
在前面的例子中,派生类都只有一个基类,称为单继承.除此之外,C++也支持多继承,即一个派生类可以有两个或多个基类. 多继承容易让代码逻辑复杂.思路混乱,一直备受争议,中小型项目中较少使用,后来的 Ja ...
- 深度学习(19): Deep Reinforcement learning(Policy gradientinteract with environment)
Deep Reinforcement learning AL=DL+RL Machine 观察到环境的状态,做出一些行为对环境产生影响,环境根据machine的改变给予一个reward.正向的acti ...
- HEVC代码学习19:MV、MVD、MVP概念解析
在代码阅读中,可以看到MV.MVD.MVP三个概念,在开始学习的时候就很糊涂,一直买具体来看下,也找不到具体在哪里有讲解,现在来关注学习一下. 先来逗比一下,名词解析: MVP--most valua ...
- Kubernetes 学习19基于canel的网络策略
一.概述 1.我们说过,k8s的可用插件有很多,除了flannel之外,还有一个流行的叫做calico的组件,不过calico在很多项目中都会有这个名字被应用,所以他们把自己称为project cal ...
- C语言学习19:操作符详解
目录 1.操作符种类 1.1 算术操作符 1.2 移位操作符 1.3 位操作符 1.4 赋值操作符 1.5 单目操作符 1.6 关系操作符 1.7 逻辑操作符 1.8 条件操作符 1.9 逗号表达式 ...
- 【OCC学习12】边界表示法(Brep)简述
一.边界表示法简述 边界表示(Boundary Representation)也称为BRep表示,它是几何造型中最成熟.无二义的表示法.实体Solid用一组封闭的面组成,而每个面又由它所在的曲面的定义 ...
最新文章
- MongoDB搭建和简单操作(windows环境)
- 15张令人震撼的物理动图,看完惊呆了!
- 一款jQuery立体感动态下拉导航菜单特效
- ResNet论文笔记
- 【aviator】aviator 报错 EOF while reading string at index
- 最新试客联盟JS逆向分析
- android图片加水印,文字
- PMP考试有哪些技巧?(技巧+资料分享)
- c语言余数求和,C语言实现两数相加2018-09-23(示例代码)
- 如何自定义starter
- 微型计算机延时,延迟时间
- paper weekly_Android Weekly:Galaxy Fold详细信息,可在17分钟内充电的4000 mAh电池等
- 电子表整点报时怎么取消_歪果仁怎么说“我被放鸽子了”?这可跟鸽子没关系哦...
- Keras实例教程(4)之迁移学习
- .net framework4.0 安装回滚问题
- 下载imageLib工具包批量转换.flo文件为png
- 卡西欧5800计算机隧道程序,卡西欧5800隧道放样程序
- CRM Plugin的基本操作
- C语言·输入身份证号码,给出年月日。
- Word2016中Visio对象无法打开的问题
热门文章
- 数据库实验——简单数据库应用系统设计与实现
- 《新参者-加贺恭一郎》、《麦田里的守望者》杂记
- 职场新人如何快速赚到自己的第一桶金?
- Unit Of Measure UOM in Oracle Applications Inventory
- 20200726 T3 树高【ETT(dfs序splay)维护同色边连通块】
- java word转换pdf(先自定义添加水印 后转换pdf)通过 aspose-words
- Python招聘岗位信息聚合系统源码(爬虫爬取、数据分析、可视化、互动等功能)...
- 华为S5700交换机设置密码包括telnet密码
- axure中图表背影_Axure教程:如何制作可视化图表?
- 做一个靠谱的软件测试工程师:进行有效地沟通