导出弯头的时候,正常的流程如下:
OnElementBegin
OnInstanceBegin
OnFaceBegin
OnPolymesh
OnFaceEnd
OnInstanceEnd
OnElementEnd
但是,柱子的逻辑是先运行了[OnInstanceEnd],然后在运行的[OnPolymesh]。
对于这种非正常的情况下,通过OnPolymesh获得的顶点肯定是实际的世界坐标。
那么最后导出坐标的时候,是不需要矩阵变换的。使用使用个单位矩阵即可。
反过来讲,如果是正常流程那么坐标是局部坐标,矩阵是有数值的,不是单位矩阵。
通过OnInstanceBegin获得的此时的节点的矩阵需要保存下来,最后导出坐标的时候,需要矩阵变换。
贴个图:
结构柱,不仅有几何实例,还有solid:
2019.10.21 修改bug总结