Opennurbs Boundary Representation Oritation
z在Opennurbs数据结构里的 m_Reversed flag 共计4处,
- Edge 和 Curve3d 之间的 m_bReversed
- Trim 和 Curve2d 之间的 m_bReversed
- Trim 和 Edge 之间的 m_bRev3d
- Face 和 Surface 之间的 m_bRev
Opennurbs Brep 类视图
总结 Opennurbs Brep几何拓扑间的Oritation关系:
-
Geom Direction:
Curve Tangent Direction, Surface Normal -
Topo Oritation:
Trim Oritation: Curve2d Direction+ m_bReversed
Edge Oritation : Curve3d Direction+ m_bReversed
Face Oritation: Surface Normal + m_bRev -
m_bRev3d :
2d trim and 3d edge have opposite orientations. -
m_bRev :
outer loops are always oriented counter-clockwise,no depends m_bRev -
m_Vi[2]:
m_Vi[0] is the Edge Start, not the Curve start
原则4的好处:
1.可以共享,Opencascade里体现更为明显(拉伸的上下 Face)
2.做boolean运算时可以不用翻转几何或者拓扑
3. 没有数据冗余,如果依赖m_bRev,相当于缓存冗余数据
关于Oritation的设计,OCCT的还有些不一样,看到一些解读OCCT Oritation的文章OCCT NOTE ,感觉解读的不是很到位,后面会写一篇OCCT的Oritation的~