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