高效使用曲线和曲面评估器的技巧
要从曲线和曲面赋值器中获得最大效率,在同一曲线或曲面上执行多个赋值时,应尽可能多地重用 、 和对象。例如,假设 和 都在同一表面上执行求值并调用 。然后,用于计算的对象应传递给: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-31 02:41
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.