前言:
StdPrs_WFShape是 OpenCASCADE Technology(OCCT)中用于以线框模式(Wireframe Mode)可视化拓扑形状(TopoDS_Shape) 的标准呈现器(Presentation Builder)类。它属于StdPrs(Standard Presentations)模块,专门负责将几何/拓扑结构转换为适用于线框显示的图形图元(如点、线、曲线等),常用于 CAD 系统中的轮廓显示、调试或轻量化渲染。
一、StdPrs_WFShape 类
- 核心功能:将
TopoDS_Shape(包括顶点、边、线、面边界等)转换为线框表示(wireframe representation),即仅绘制其几何边界(edges 和 vertices),不填充面。 - 适用对象:支持所有类型的拓扑实体:
TopoDS_Vertex绘制为点TopoDS_Edge绘制为 3D 曲线(经离散化)TopoDS_Wire / Face / Shell / Solid递归提取所有边和顶点进行绘制
- 依赖机制:
- 自动对曲线边(如圆弧、样条)进行离散化(deflection-based tessellation),生成折线段。
- 使用
Prs3d_Drawer控制线宽、颜色、是否显示顶点等属性。 - 不涉及三角剖分(与着色模式不同),因此计算开销通常较小。
✅ 简言之:
StdPrs_WFShape是 OCCT 中实现“线框显示”的标准工具类,对应显示模式通常为0。
2、Add 接口
2.1、功能
将任意类型的
TopoDS_Shape(如顶点、边、面、体等)转换为适用于 3D 视图渲染的线框图形图元(如折线段和点),并添加到指定的图形呈现对象中。
2.2、函数签名
static void Add(
const Handle(Prs3d_Presentation)& thePresentation,
const TopoDS_Shape& theShape,
const Handle(Prs3d_Drawer)& theDrawer
);
2.3、 参数说明
| 参数 | 类型 | 作用 |
|---|---|---|
thePresentation | Handle(Prs3d_Presentation) | 输出容器:用于接收生成的线框图元(如折线、点)。这些图元将被 OCCT 渲染引擎绘制到 3D 视图中。 |
theShape | const TopoDS_Shape& | 输入拓扑形状:可以是任意类型的 TopoDS_Shape(Vertex, Edge, Wire, Face, Solid 等)。函数会自动遍历其子结构,提取所有可显示的边和顶点。 |
theDrawer | Handle(Prs3d_Drawer) | 绘制属性配置器:控制线框外观,包括: • 线颜色、线宽( LineAspect())• 点颜色、大小( PointAspect())• 离散精度( MaximalChordialDeviation() 或 Discretization)• 是否显示顶点( VertexDrawMode())等 |
2.4、实现原理
- 遍历拓扑结构:递归访问
theShape中的所有子形状,收集TopoDS_Edge和TopoDS_Vertex。 - 离散化边(Edge):对每条边(尤其是非直线边,如圆、样条曲线):
- 使用
GCPnts_TangentialDeflection或BRepAdaptor_Curve+ 离散算法, - 根据
theDrawer中的弦高偏差(deflection) 参数生成一系列点, - 构成折线段(polyline)。
- 使用
- 生成图元:
- 边 → 添加为
Graphic3d_ArrayOfPolylines或Graphic3d_ArrayOfSegments - 顶点 → 若启用,添加为
Graphic3d_ArrayOfPoints
- 边 → 添加为
- 应用样式:
- 从
theDrawer->LineAspect()获取线颜色/宽度 - 从
theDrawer->PointAspect()获取点样式
- 从
- 加入 Presentation:所有图元被添加到
thePresentation,供后续渲染使用。
2449

被折叠的 条评论
为什么被折叠?



