要从曲线和曲面赋值器中获得最大效率,在同一曲线或曲面上执行许多求值时,应尽可能重用 、 和对象。例如,假设 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-10-29 17:10
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.