要从曲线和曲面赋值器中获得最大效率,在同一曲线或曲面上执行许多求值时,应尽可能重用 、 和对象。例如,假设 andand 两者都在同一图面上执行计算和调用。然后,用于评估的对象应传递给:AcGePointOnCurve2dAcGePointOnCurve3dAcGePointOnSurfacefunc1func2srffunc1func2AcGePointOnSurfacefunc1func2 void func1 (const AcGeSurface& srf) { AcGePointOnSurface pntOnSrf (srf); . . // Evaluate some points and derivatives. . func2 ( pntOnSrf ); . . . } void func2 (AcGePointOnSurface& pntOnSrf) { // Evaluate some points and derivatives using pntOnSrf // passed in from func1. } 通过传递到,赋值器可以继续使用用于所有评估的相同数据区域。如果不将对象传递给,则必须声明一个新对象,这将创建一个新的数据区域并重新计算计算的数据。以下代码正确执行;但是,它的效率低于以前的代码:pntOnSrffunc2func1func1AcGePointOnSurfacefunc2func2AcGePointOnSurfacefunc1 void func1 (const AcGeSurface& srf) { AcGePointOnSurface pntOnSrf (srf); ... func2 (srf); ... } void func2 (const AcGeSurface& srf) { AcGePointOnSurface pntOnSrf (srf); . . // Evaluate some points and derivatives, using new // pntOnSrf declared above. . } 重用相同对象对于评估器密集型应用非常重要,例如曲面-曲面扇区或有限元网格生成器。在曲面-曲面交叉的情况下,顶级函数应声明两个对象(每个曲面一个),并通过所有较低级别的例程向下传递这些对象。通过这种方式,应用程序可以最大限度地利用在评估之间保存的数据,并从其表面评估器获得最大效率。AcGePointOnSurfaceAcGePointOnSurface 为了充分利用 、 和类,对于同一曲线或曲面,不应同时在作用域中出现大量这些对象。在大多数情况下,这些对象中只有一个应位于特定曲线或曲面的范围内。AcGePointOnCurve2dAcGePointOnCurve3dAcGePointOnSurface |
|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 苏公网安备32011402011833)
GMT+8, 2025-1-8 19:33
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.