常见问题:什么是 OdGiGeometrySimplifier 以及几何简化级别?

OdGiGeometrySimplifier 类(在 Teigha 示例/扩展源代码中)经常在几何输送器内部使用,将 Gi 几何图元转换为更简单的形式。例如,多边形可以简化为一组三角形;文本可以简化为一组三角形和多段线,等等。每种几何图元简化后的简化方法都会调用更简单几何级别的虚方法。

本主题描述了图元简化方法实际可以调用的方法,有助于理解 OdGiGeometrySimplifier 的哪些方法必须被重写才能获得所需简化级别的几何体。

image1

几何输送器可以包含高级几何图元(将被简化为一组低级几何图元的复杂图元)和低级几何图元(可以被简化为一组非输送器图元)。

高级几何图元包括边、点行、多点、文本、栅格图像、多段线和 TrueType 字体多边形绘制。这些图元被简化为低级输送器几何图元。

低级几何图元包括圆、圆弧、椭圆弧、NURBS 曲线、多段线、多边形壳和网格。这些图元被简化为非输送器几何图元。

下一个简化步骤是 generateXXX 方法集。它们用于壳和网格等复杂图元。这些方法在检查输出所需的几何类型(图元是填充还是轮廓)后被调用,并将子图元的简化委托给下一级方法。

下一个简化步骤实际上是用于壳/网格面生成。shellFaceOut/meshFaceOut 方法执行面三角剖分,并使用 triangleOut 方法输出结果三角剖分。

带有方法参数中索引的 triangleOut/polylineOut 方法是壳/网格图元简化的结果。如果这些方法未被重写,它们会调用带有参数列表中顶点列表的 polygonOut/polylineOut 方法。

简化级别的最终点是 polygonOut/polylineOut 方法。如果成员代码没有重写先前的简化级别,它们肯定必须被重写。如果调用了 polygonOut 但未被重写,它可能会调用 shellProc 方法,如果客户端代码没有重写其他简化级别,应用程序可能会进入无限循环。如果 polylineOut 方法被调用但未在成员代码中重写,它将生成一个断言消息(仅适用于调试配置)。

今天就开始行动

免费试用 ODA 软件 60 天。
无风险,无需信用卡。

免费试用