Ejemplo n.º 1
0
	def pointAtParam( self, param ):
		"""return the point in world coordinates of a specific u parameter"""
		param = self.a.max.v * param
		point = OpenMaya.MPoint( )
		curveFn = OpenMaya.MFnNurbsCurve( apiHelpers.getDagPath(self.name) )
		curveFn.getPointAtParam( param, point, OpenMaya.MSpace.kObject )
		return point[0], point[1], point[2]
Ejemplo n.º 2
0
	def uParam(self, pnt):
		"""return u param of the curve based on a position"""
		point = OpenMaya.MPoint(pnt[0],pnt[1],pnt[2])
		curveFn = OpenMaya.MFnNurbsCurve( apiHelpers.getDagPath(self.name) )
		paramUtill=OpenMaya.MScriptUtil()
		paramPtr=paramUtill.asDoublePtr()
		isOnCurve = curveFn.isPointOnCurve(point)
		if isOnCurve == True:
			curveFn.getParamAtPoint(point , paramPtr,0.001,OpenMaya.MSpace.kObject )
		else :
			point = curveFn.closestPoint(point,paramPtr,0.001,OpenMaya.MSpace.kObject)
			curveFn.getParamAtPoint(point , paramPtr,0.001,OpenMaya.MSpace.kObject )
		param = paramUtill.getDouble(paramPtr)  
		return param