概述
在一个gsAssemblerBase<T>的派生类的成员函数中:
注意:
for (unsigned int i=0; i<m_patches.nPatches(); ++i)
{gsGeometry<> & geo = m_patches.patch(i);
gsDebug << "control points " << geo.coefs() << endl;
}
inline void evaluate(gsBasis<T> const & basis,
gsGeometryEvaluator<T> & geoEval,
gsMatrix<T> const & quNodes)
{
gsDebug << "gauss points " << quNodes << endl;
basis.active_into(quNodes.col(0), m_actives);
numActive = dof_per_node * m_actives.rows();
gsMatrix<T> allCp = geoEval.geometry().coefs();
control_point_coor.setZero(m_actives.rows(), allCp.cols());
for (int i=0; i<m_actives.rows(); ++i)
{
control_point_coor.row(i) = allCp.row(m_actives(i, 0));
}
gsDebug << control_point_coor << endl;
//Calculate the 0,1,2 derivatives!
basis.evalAllDers_into(quNodes, 2, m_basisData);
geoEval.evaluateAt(quNodes);
localMat.setZero(numActive, numActive);
localMat_localCoor = localMat;
}
gsGeometryEvaluator<T> & geoEval,
gsMatrix<T> const & quNodes)
{
gsDebug << "gauss points " << quNodes << endl;
basis.active_into(quNodes.col(0), m_actives);
numActive = dof_per_node * m_actives.rows();
gsMatrix<T> allCp = geoEval.geometry().coefs();
control_point_coor.setZero(m_actives.rows(), allCp.cols());
for (int i=0; i<m_actives.rows(); ++i)
{
control_point_coor.row(i) = allCp.row(m_actives(i, 0));
}
gsDebug << control_point_coor << endl;
//Calculate the 0,1,2 derivatives!
basis.evalAllDers_into(quNodes, 2, m_basisData);
geoEval.evaluateAt(quNodes);
localMat.setZero(numActive, numActive);
localMat_localCoor = localMat;
}
最后
以上就是无情大雁为你收集整理的[G+smo]输出控制点的全部内容,希望文章能够帮你解决[G+smo]输出控制点所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复