当前位置: 首页>>代码示例>>C++>>正文


C++ SplineSurface::makeBernsteinKnotsU方法代码示例

本文整理汇总了C++中SplineSurface::makeBernsteinKnotsU方法的典型用法代码示例。如果您正苦于以下问题:C++ SplineSurface::makeBernsteinKnotsU方法的具体用法?C++ SplineSurface::makeBernsteinKnotsU怎么用?C++ SplineSurface::makeBernsteinKnotsU使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在SplineSurface的用法示例。


在下文中一共展示了SplineSurface::makeBernsteinKnotsU方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: splitSurfaceIntoPatches

//==========================================================================
void GeometryTools::splitSurfaceIntoPatches(const SplineSurface& sf,
			     vector<SplineSurface>& pat)
//==========================================================================
{
    SplineSurface orig = sf;
    orig.makeBernsteinKnotsU();
    orig.makeBernsteinKnotsV();

    int num_u = orig.numCoefs_u();
    int num_v = orig.numCoefs_v();
    int order_u = orig.order_u();
    int order_v = orig.order_v();
    int numpat_u = num_u / order_u;
    int numpat_v = num_v / order_v;

    pat.resize(numpat_u * numpat_v);
    typedef vector<double>::const_iterator const_iter;
    const_iter itu = orig.basis_u().begin();
    const_iter itv;
    for (int i = 0; i < numpat_u; ++i) {
	itv = orig.basis_v().begin();
	for (int j = 0; j < numpat_v; ++j) {
	    shared_ptr<SplineSurface>
		new_sf(orig.subSurface(*itu, *itv,
				       *(itu+order_u), *(itv+order_v)));
	    pat[numpat_u*j + i] = *new_sf;
	    itv += order_v;
	}
	itu += order_u;
    }

    return;
}
开发者ID:99731,项目名称:GoTools,代码行数:34,代码来源:GGUsplit.C


注:本文中的SplineSurface::makeBernsteinKnotsU方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。