@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拓扑对象之:有向边和共边的更多相关文章

  1. OpenCascade拓扑对象之:拓扑对象方向继承关系

    @font-face { font-family: "Times New Roman" } @font-face { font-family: "宋体" } @ ...

  2. OpenCascade拓扑对象之:TopoDS_Shape的三要素

    @font-face { font-family: "Times New Roman" } @font-face { font-family: "宋体" } @ ...

  3. OpenCascade拓扑对象之:拓扑对象的层次结构

    @font-face { font-family: "Times New Roman" } @font-face { font-family: "宋体" } @ ...

  4. OpenCascade拓扑对象之:Face的方向、参数域和曲面间的关系

    @font-face { font-family: "Times New Roman" } @font-face { font-family: "宋体" } @ ...

  5. OpenCascade拓扑对象之:TopoDS_Shape对象及其子对象

    @font-face { font-family: "Times New Roman" } @font-face { font-family: "宋体" } @ ...

  6. 解析ArcGis拓扑——根据拓扑错误记录提取shp文件、导出Excel表格

    在ArcGis拓扑检查的流程——以面重叠检查为例中讲述了如何在ArcGis进行拓扑检查与修改. 在实际操作中,有时我们还需要将ArcGis拓扑检查的结果制作成报告或者提取错误信息反馈作业方. 本文仍然 ...

  7. Sharepoint2013搜索学习笔记之修改搜索拓扑(三)

    搜索服务新建好之后可以从管理中心,应用程序管理页面,进入搜索服务的管理页面,进入管理页面之后可以看到当前sharepoint场的搜索拓扑结构. 如果sharepoint场内有多台服务器,需要将搜索组件 ...

  8. ThinkingInJava 学习 之 0000001 一切都是对象

    -- -- -- -- -- -- -- -- -- 大杂烩 -- Java内存布局[图]以及java各种存储区[详解] -- -- -- -- -- -- -- -- -- 1. 用引用操纵对象 在 ...

  9. 【python37--面向对象】

    一. self是什么 绑定方法,self就是实例对象的唯一标志 >>> class Ball: def setName(self,name): self.name = name de ...

随机推荐

  1. 消息队列之事务消息,RocketMQ 和 Kafka 是如何做的?

    每个时代,都不会亏待会学习的人. 大家好,我是 yes. 今天我们来谈一谈消息队列的事务消息,一说起事务相信大家都不陌生,脑海里蹦出来的就是 ACID. 通常我们理解的事务就是为了一些更新操作要么都成 ...

  2. linux(centos)环境下安装rabbitMq

    1.由于rabbitMq是用Erlang语言写的,因此要先安装Erlang环境 下载Erlang :http://www.rabbitmq.com/releases/erlang/erlang-19. ...

  3. Centos-跟踪数据传输路由状态-traceroute

    traceroute 显示网卡数据包传输到指定主机的路径信息,追踪数据传输路由状况,默认数据包大小38字节 相关选项 -i   使用指定网络接口发送数据 -n 使用IP而不使用主机名 -v 显示命令的 ...

  4. interp1一维数据插值在matlab中的用法

    转载:https://ww2.mathworks.cn/help/matlab/ref/interp1.html?s_tid=srchtitle#btwp6lt-2_1 interp1 一维数据插值( ...

  5. Linux 杀毒软件ClamAV安装部署

    环境说明 系统安全需求,批量安装免费杀毒软件: 操作系统统一为CentOS 7 x64,在此选择免费开源杀毒软件ClamAV: 两种安装方式 1.yum 安装: 2.源码包编译安装: 安装参考网址: ...

  6. Semaphore最详细解析

    官方解释: 一个计数信号量.在概念上,信号量维持一组许可证.如果有必要,每个acquire()都会阻塞,直到许可证可用,然后才能使用它.每个release()添加许可证,潜在地释放阻塞获取方.但是,没 ...

  7. Linux输入子系统 转载

    NQian 记录成长~ 首页 新随笔 联系 订阅 管理 随笔 - 305  文章 - 0  评论 - 254 12.Linux之输入子系统分析(详解)   在此节之前,我们学的都是简单的字符驱动,涉及 ...

  8. 树状数组(BIT)—— 一篇就够了

    树状数组(BIT)-- 一篇就够了 前言.内容梗概 本文旨在讲解: 树状数组的原理(起源,原理,模板代码与需要注意的一些知识点) 树状数组的优势,缺点,与比较(eg:线段树) 树状数组的经典例题及其技 ...

  9. JSON,数组根据字段多次分组

    我们在前端开发过程中,遇到json对象,有时会需要多次分组.比如说,先按照是业务分组,然后再按照产品线分组,然后通过table或其他方式展示或操作 var obj1=[ { "demp&qu ...

  10. python虚拟环境的配置-ubuntu 18.04后

    python虚拟环境的配置 安装相关包 pip install virtualenv pip install virtualenvwrapper 配置~/.bashrc 加入以下内容: ------- ...