当前位置: 首页 > backend >正文

OCC笔记:面、边的方向(TopAbs_Orientation)

1.面方向

在Open CASCADE中,面的方向(TopAbs_Orientation)本质是一个拓扑逻辑属性,用于描述面在三维空间中的“内外关系”。它与几何曲面本身的参数化方向(如UV坐标系)不同,而是更高层的拓扑语义。

TopAbs_FORWARD:面法线方向指向实体外部(默认方向,表示该面是实体外壳的正向边界)。
TopAbs_REVERSED:面法线方向指向实体内部(例如孔洞内壁、布尔运算中的切削面)。
TopAbs_INTERNAL/EXTERNAL:特殊场景使用,非流行3D模型中用,如中间过渡面或虚拟参考面。

比如一个occ构造的一个BRepPrimAPI_MakeBox theMakeBox(100, 200, 300);
Box的左下角点为(0,0,0),右上角点(100,200,300)

通过curFace.Orientation()输出面的方向
通过curEdge.Orientation()输出边的方向

通过以下代码输出面的法向
BRepAdaptor_Surface adaptorSurface(curFace);
const auto& anNormal = adaptorSurface.Plane().Axis().Direction();

得到结果如下图,
左侧面的法向为(1, 0, 0),指向实体的内部,所以左侧面的方向为TopAbs_REVERSED。
右侧面的法向为(1, 0, 0),指向实体的外部,所以右侧面的方向为TopAbs_FORWARD。
在这里插入图片描述

2.边的方向

边的方向(TopAbs_Orientation)是相对于其所属的父面而言的,并非绝对几何方向。

已知边所在面的正向方向,右手法则,大拇指指向面的正向方向,4指指向的方向为边的正向,即逆时针方向。

通过curEdge.Orientation()输出边的方向,参看上图输出可知,遍历左侧面的边可知

TopExp_Explorer anExp;
for( anExp.Init( tpFace, TopAbs_ShapeEnum::TopAbs_EDGE); anExp.More(); anExp.Next())
{
//const TopoDS_Edge& curEdge = TopoDS::Edge(anEdgeMap(i));
const TopoDS_Edge& curEdge = TopoDS::Edge(anExp.Current());
if (curEdge.IsNull()) continue;
//…
}
如下图画出左侧面示意图:
边1:A->B,正向
边2:B->C,正向
边3:D->C,反向
边4:A->D,反向
在这里插入图片描述

http://www.xdnf.cn/news/9757.html

相关文章:

  • Triton推理服务器部署YOLOv8(onnxruntime后端和TensorRT后端)
  • C++哈希
  • GitHub Copilot 使用手册与原理解析
  • 80x86CPU入栈与出栈操作
  • C++:lambda匿名函数
  • 【VSCode-Qt】Docker远程连接的项目UI文件在 VSCode 上无法预览
  • STM32F407VET6学习笔记8:UART5串口接收中断的Cubemx配置
  • Spring 面经
  • PnP(Perspective-n-Point)算法 | 用于求解已知n个3D点及其对应2D投影点的相机位姿
  • 5.LoadBalancer负载均衡服务调用
  • 【测试】Bug和用例
  • 视觉分析开发范例:Puppeteer截图+计算机视觉动态定位
  • 国内连接速度较快的常用 Yum 源及其具体配置方法
  • mysql一主多从 k8s部署实际案例
  • 【C++项目】:仿 muduo 库 One-Thread-One-Loop 式并发服务器
  • 什么是VR全景相机?如何选择VR全景相机?
  • http传输协议的加密
  • 黑马点评项目02——商户查询缓存(缓存穿透、缓存雪崩、缓存击穿)以及细节
  • 有关于常量的一节知识
  • JAVA学习 DAY1 初识JAVA
  • 生成式引擎的认知霸权:为什么传统内容失效?
  • 【AI非常道】二零二五年三月,AI非常道
  • 黑马程序员C++核心编程笔记--1 程序的内存模型
  • AniGS - 基于单张图像的动态高斯化身重建
  • 62、【OS】【Nuttx】编码规范解读(十)
  • 电缆中性点概念
  • webstrorm 提示(This file does not belong to the project)此文件不属于该项目
  • 深度学习-模型训练的相关概念
  • 【spring】spring中的retry重试机制; resilience4j熔断限流教程;springboot整合retry+resilience4j教程
  • java中自定义注解