OpenCascade拓扑对象之:有向边和共边
@font-face { font-family: "Times New Roman" }
@font-face { font-family: "宋体" }
@font-face { font-family: "Wingdings" }
@list l0:level1{
mso-level-number-format:bullet;
mso-level-suffix:tab;
mso-level-text:\F0D8;
mso-level-tab-stop:none;
mso-level-number-position:left;
margin-left:21.0000pt;text-indent:-21.0000pt;font-family:Wingdings;}
p.MsoNormal { mso-style-name: 正文; mso-style-parent: ""; margin: 0 0 0.0001pt; mso-pagination: none; text-align: justify; text-justify: inter-ideograph; font-family: "Times New Roman"; mso-fareast-font-family: 宋体; color: rgba(0, 0, 0, 1); font-size: 10.5pt; mso-font-kerning: 1.0000pt }
{ font-family: "Times New Roman" }
span.msoIns { mso-style-type: export-only; mso-style-name: ""; text-decoration: underline; text-underline: single; color: rgba(0, 0, 255, 1) }
span.msoDel { mso-style-type: export-only; mso-style-name: ""; text-decoration: line-through; color: rgba(255, 0, 0, 1) }
table.MsoNormalTable { mso-style-name: 普通表格; mso-style-parent: ""; mso-style-noshow: yes; mso-tstyle-rowband-size: 0; mso-tstyle-colband-size: 0; mso-padding-alt: 0.0000pt 5.4000pt 0.0000pt 5.4000pt; mso-para-margin: 0pt; mso-para-margin-bottom: .0001pt; mso-pagination: widow-orphan; font-family: "Times New Roman"; font-size: 10pt; mso-ansi-language: #0400; mso-fareast-language: #0400; mso-bidi-language: #0400 }
@page { mso-page-border-surround-header: no mso-page-border-surround-footer: no }
@page Section0 { margin-top: 72pt margin-bottom: 72pt margin-left: 90pt margin-right: 90pt size: 595.3000pt 841.9000pt layout-grid: 15.6000pt }
div.Section0 { page: Section0 }
有向边和共边是拓扑结构中一对重要的关系。简单来说,两个或多个有向边共用一个共边对象。对manifold情形,通常两个有向边共用一个共边,两个有向边的方向通常是一正一反(一个有向边和共边同向,一个有向边和共边反向)。在Non-Manifold情形下,可能有多个有向边共用一个共边,每个有向边和共边有不同的方向。
有向边和共边的邻接关系,是拓扑结构中一个重要的关系,借助该关系,可以实现例如:遍历共边所邻接的所有Face这样的操作。这个也是拓扑结构中设计的一个关键点。
通常,共边记录如下信息:
- 一个3D曲线,是有向边共同使用的曲线
- 端点对应的Vertex对象
- 共边的邻接关系,可能是记录一系列的有向边对象,也可能是记录一系列邻接的Face对象。
有向边通常记录如下信息:
- 一个参数域曲线,对应的是空间3D曲线在对应曲面上投影得到的参数曲线
- 一个参数范围,是3D曲线上的参数范围,通常Edge是曲线上的一段,特别对无限长的曲线(例如:直线),必须有一个参数域范围。
- 一个共边的对象引用,共边指针或者其他形式
对Parasolid来说,有向边使用Fin结构,共边使用Edge结构;对ACIS来说,有向边使用COEDGE类,共边使用EDGE类。
但对OpenCascade来说,拓扑对象只有一个类TopoDS_Edge类。没有明显的有向边和共边的区分。共边对应的数据,记录在TopoDS_TShape派生的BRep_TEdge类中。在BRep_TEdge类中,不仅记录了通常共边的信息,还记录了邻接信息、参数曲线信息、边的连续性信息等多种信息。这些信息是通过记录一系列的BRep_CurveRepresentation类派生类对应的对象来实现的。这其中主要类如下:
BRep_GCurve类:记录了3D曲线信息
BRep_CurveOnSurface类:记录了参数曲线的信息
BRep_CurveOn2Surfaces类:记录了边邻接两个Face的连续性信息,是G0连续,还是G1连续。
具体定义在BRep_TEdge中,如下:
Standard_Real myTolerance;
Standard_Integer myFlags;
BRep_ListOfCurveRepresentation myCurves;
通常,一条边对应一条3D曲线,多条参数曲线,多种连续性对象。由于OpenCascade是支持Non-manifold模型的,因此一个边可能邻接多个Face,每个Face对应一个参数曲线,每两个Face间可能有不同的连续性。
OpenCascade拓扑对象之:有向边和共边的更多相关文章
- OpenCascade拓扑对象之:拓扑对象方向继承关系
@font-face { font-family: "Times New Roman" } @font-face { font-family: "宋体" } @ ...
- OpenCascade拓扑对象之:TopoDS_Shape的三要素
@font-face { font-family: "Times New Roman" } @font-face { font-family: "宋体" } @ ...
- OpenCascade拓扑对象之:拓扑对象的层次结构
@font-face { font-family: "Times New Roman" } @font-face { font-family: "宋体" } @ ...
- OpenCascade拓扑对象之:Face的方向、参数域和曲面间的关系
@font-face { font-family: "Times New Roman" } @font-face { font-family: "宋体" } @ ...
- OpenCascade拓扑对象之:TopoDS_Shape对象及其子对象
@font-face { font-family: "Times New Roman" } @font-face { font-family: "宋体" } @ ...
- 解析ArcGis拓扑——根据拓扑错误记录提取shp文件、导出Excel表格
在ArcGis拓扑检查的流程——以面重叠检查为例中讲述了如何在ArcGis进行拓扑检查与修改. 在实际操作中,有时我们还需要将ArcGis拓扑检查的结果制作成报告或者提取错误信息反馈作业方. 本文仍然 ...
- Sharepoint2013搜索学习笔记之修改搜索拓扑(三)
搜索服务新建好之后可以从管理中心,应用程序管理页面,进入搜索服务的管理页面,进入管理页面之后可以看到当前sharepoint场的搜索拓扑结构. 如果sharepoint场内有多台服务器,需要将搜索组件 ...
- ThinkingInJava 学习 之 0000001 一切都是对象
-- -- -- -- -- -- -- -- -- 大杂烩 -- Java内存布局[图]以及java各种存储区[详解] -- -- -- -- -- -- -- -- -- 1. 用引用操纵对象 在 ...
- 【python37--面向对象】
一. self是什么 绑定方法,self就是实例对象的唯一标志 >>> class Ball: def setName(self,name): self.name = name de ...
随机推荐
- netty第一讲 创建
1.新建一个maven项目 https://blog.csdn.net/yanghaibobo110/article/details/73835469 2.netty是什么玩意 官方那个给出的介绍是 ...
- 3、JVM中的对象
1.对象的创建 A a = new A() A:引用的类型 a::引用的名称 new A():创建一个A类对象 当创建一个对象时,具体创建过程是什么呢? (1)JVM遇到new的字节码指令后,检查类 ...
- 从面向过程到面向对象再到MVC
/* * * title: 从面向过程到面向对象再到MVC * author: tanghao * date: 2020.9.30 * version: 1.0 * */ 前言 本文档通过一个显示20 ...
- 小白也能看懂的Redis教学基础篇——朋友面试被Skiplist跳跃表拦住了
各位看官大大们,双节快乐 !!! 这是本系列博客的第二篇,主要讲的是Redis基础数据结构中ZSet(有序集合)底层实现之一的Skiplist跳跃表. 不知道那些是Redis基础数据结构的看官们,可以 ...
- Hyper-V Server + Windows Admin Center
2020年的十一黄金周是双节,偶然间得知再出现双节可能要几十年之后了,很可惜我并没有出去游玩的打算.所以假期没什么事,就来研究下Hyper Server + Windows Admin Center. ...
- error C2065: “uint8_t”: 未声明的标识符
转载:https://blog.csdn.net/lys07962000/article/details/12052571 参考: http://blog.csdn.net/chenxin_130/a ...
- DORIS系统概述
DORIS(Doppler Orbitography and Radio-positioning Integrated by Satellite)(多普勒轨道学与无线电定位集成卫星),它是由法国Cne ...
- IDEA使用正则表达式替换
替换目标:为value添加函数『JSON.stringify()』 vars.put("_id",value); 表达式: //find: (vars.put\(\"_i ...
- CSG:清华大学提出通过分化类特定卷积核来训练可解释的卷积网络 | ECCV 2020 Oral
论文提出类特定控制门CSG来引导网络学习类特定的卷积核,并且加入正则化方法来稀疏化CSG矩阵,进一步保证类特定.从实验结果来看,CSG的稀疏性能够引导卷积核与类别的强关联,在卷积核层面产生高度类相关的 ...
- 如何选择JVM垃圾回收器?
明确垃圾回收器组合 -XX:+UseSerialGC 年轻代和老年代都用串行收集器 -XX:+UseParNewGC 年轻代使用ParNew,老年代使用 Serial Old -XX:+UsePara ...