位置のリストで定義された NURBS カーブに沿って、特定のパラメータのワールド位置を取得したいと考えています。現在、この曲線に沿って位置の配列を取得するためだけに、プラグインで一時的な曲線を作成しています:
# targetXforms = array of MPoints
# knots = knots list
# uValue = array of floats (0->1)
#
curveFn = om.MFnNurbsCurve()
curveFn.create(targetXforms, knots, 3, om.MFnNurbsCurve.kOpen, False, False, nullObj)
for i in range (numRefXforms):
point = curveFn.getPointAtParam (uValue[i])
print point
これを行うためのより良い方法はありますか (つまり、曲線を作成するオーバーヘッドがありません)? おそらくいくつかの数学ライブラリ?そうでない場合は、このカーブを削除して、プラグインが評価されるたびにカーブが作成されないようにする方法を教えてください (MDGModifier は少しクラッシュしているようです)。
また、特定のパラメータ値の曲線に沿って長さを見つける方法はありますか。Maya 2016 Extension 2 には、このための関数があります: MFnNurbsCurve::findLengthFromParam()
ただし、この拡張機能はまだありません。:(
前もって感謝します!