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:边界表示法的实现相关推荐

  1. python爬虫学习19

    python爬虫学习19 经过urllib与requests库的学习,相信我们已经对python爬虫有了一个初步的掌握了,下面我们将一起学习正则表达式的运用(还记得之前挖的坑嘛?). 三.正则表达式 ...

  2. 收藏 | 深度学习19个损失函数汇总

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:作者|mingo_敏,来源 https://blog.csd ...

  3. Spark中组件Mllib的学习19之分层抽样

    更多代码请见:https://github.com/xubo245/SparkLearning Spark中组件Mllib的学习之基础概念篇 1解释 分层抽样的概念就不讲了,具体的操作: RDD有个操 ...

  4. [学习]19 如何高效工作和学习

    大神是这样高效工作和学习的  今天要跟大家分享的是,大神们是如何高效地学习.生活和工作的,我将教大家如何利用[标准操作程序」(SOP),节省大量时间和精力,把事情处理得井井有条.又快又好.  我们经常 ...

  5. C++学习19 类的多继承

    在前面的例子中,派生类都只有一个基类,称为单继承.除此之外,C++也支持多继承,即一个派生类可以有两个或多个基类. 多继承容易让代码逻辑复杂.思路混乱,一直备受争议,中小型项目中较少使用,后来的 Ja ...

  6. 深度学习(19): Deep Reinforcement learning(Policy gradientinteract with environment)

    Deep Reinforcement learning AL=DL+RL Machine 观察到环境的状态,做出一些行为对环境产生影响,环境根据machine的改变给予一个reward.正向的acti ...

  7. HEVC代码学习19:MV、MVD、MVP概念解析

    在代码阅读中,可以看到MV.MVD.MVP三个概念,在开始学习的时候就很糊涂,一直买具体来看下,也找不到具体在哪里有讲解,现在来关注学习一下. 先来逗比一下,名词解析: MVP--most valua ...

  8. Kubernetes 学习19基于canel的网络策略

    一.概述 1.我们说过,k8s的可用插件有很多,除了flannel之外,还有一个流行的叫做calico的组件,不过calico在很多项目中都会有这个名字被应用,所以他们把自己称为project cal ...

  9. C语言学习19:操作符详解

    目录 1.操作符种类 1.1 算术操作符 1.2 移位操作符 1.3 位操作符 1.4 赋值操作符 1.5 单目操作符 1.6 关系操作符 1.7 逻辑操作符 1.8 条件操作符 1.9 逗号表达式 ...

  10. 【OCC学习12】边界表示法(Brep)简述

    一.边界表示法简述 边界表示(Boundary Representation)也称为BRep表示,它是几何造型中最成熟.无二义的表示法.实体Solid用一组封闭的面组成,而每个面又由它所在的曲面的定义 ...

最新文章

  1. 2022-2028年中国民用航空装备行业市场需求与投资规划分析报告
  2. 【常用】细数那些常用的linux命令(只针对更新前端代码、上传文件到linux服务器)
  3. centos sqldeveloper 连接mysql,Oracle SQL Developer 连接 Mysql 等数据库
  4. 预言机、预言机网络、预测市场
  5. 2021-04-02 反步法示例
  6. JSP页面的继承(extends)
  7. go连接mysql集群_什么是MySQL集群-Go语言中文社区
  8. 接口管理平台YApi
  9. 04. 二维数组中的查找
  10. POJ-2488 A Knights Journey-深度优先搜索DFS
  11. 疯狂Java讲义笔记
  12. 大一高数下册笔记整理_大学高等数学知识点整理(全)
  13. Python:实现graham scan葛立恒扫描法算法(附完整源码)
  14. php设置字体为黑体,css如何设置黑体样式
  15. Angular4 - 启动过程
  16. 移动流量转赠给好友_移动流量转赠方法2019(如何通过10086转赠流量)
  17. Fiber Optic Enclosure: What to Benefit From It?
  18. bzoj1826: [JSOI2010]缓存交换
  19. 老板急坏了,公司网站的 HTTPS 过期了
  20. 二自由度云台扫描算法_智能盒子oj

热门文章

  1. 解决Google浏览器打不开宝塔登录页面——阿里云服务器
  2. 解决android.support.multide... keeps stopping问题
  3. pdm系统是归档服务器吗,PDM系统的主要功能
  4. Android开发者的Ane简单入门
  5. 【学习笔记】英文科技论文常见英语句式积累
  6. flea-frame-cache使用之Redis接入【旧】
  7. 海康威视java研发一面
  8. 【12月英语博客】念念不忘,必有回响
  9. 外星人笔记本计算机在哪里,笔记本电脑没声音,教您外星人笔记本没声音如何解决...
  10. 终极版Python打包exe文件,并修改图标,这将是你见过最详细的教程~