[返回博客](/cn/blog) # 常见问题：什么是 OdGiGeometrySimplifier 以及几何简化级别？

Andrew Markovich 十一月 30, 2017 [\#geometry](/cn/blog/tag/geometry) [\#getting started](/cn/blog/tag/getting-started)

<a class="a2a_button_facebook"></a><a class="a2a_button_twitter"></a><a class="a2a_button_linkedin"></a>

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

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

![image1](/files/inline-images/image007_1_0.png)几何输送器可以包含高级几何图元（将被简化为一组低级几何图元的复杂图元）和低级几何图元（可以被简化为一组非输送器图元）。

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

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

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

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

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

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

## 今天就开始行动

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

[免费试用](https://www.opendesign.com/cn/free-trial)
