コード例 #1
0
def snapBaseToScalp(curves, scalp, mult=[.7, .4, .1]):
    import cgm.lib.distance as bbDistanceLib

    for obj in curves:
        currentPos = mc.pointPosition(obj + '.cv[0]')
        newPos = bbDistanceLib.returnClosestPointOnMeshInfoFromPos(
            currentPos, scalp)['position']
        relPos = [
            newPos[0] - currentPos[0], newPos[1] - currentPos[1],
            newPos[2] - currentPos[2]
        ]
        mc.move(newPos[0], newPos[1], newPos[2], obj + '.cv[0]', a=True)
        mc.move(relPos[0] * mult[0],
                relPos[1] * mult[0],
                relPos[2] * mult[0],
                obj + '.cv[1]',
                r=True)
        mc.move(relPos[0] * mult[1],
                relPos[1] * mult[1],
                relPos[2] * mult[1],
                obj + '.cv[2]',
                r=True)
        mc.move(relPos[0] * mult[2],
                relPos[1] * mult[2],
                relPos[2] * mult[2],
                obj + '.cv[3]',
                r=True)
コード例 #2
0
def pushCVOutFromScalp(cvs, scalp, pushMult = 1.5):
	import cgm.lib.distance as bbDistanceLib
	sel = mc.ls(sl=True)
	for obj in cvs:
		currentPos = mc.pointPosition(obj)
		newPos = bbDistanceLib.returnClosestPointOnMeshInfoFromPos(currentPos, scalp)['position']
		relPos = [newPos[0]-currentPos[0], newPos[1]-currentPos[1], newPos[2]-currentPos[2]]
		mc.move(relPos[0]*pushMult, relPos[1]*pushMult, relPos[2]*pushMult, obj, r=True)		
	mc.select(sel)
コード例 #3
0
ファイル: hairTools.py プロジェクト: cgfile/hairTools
def snapBaseToScalp(curves, scalp, mult=[.7, .4, .1]):
	import cgm.lib.distance as bbDistanceLib
	
	for obj in curves:
		currentPos = mc.pointPosition(obj+'.cv[0]')
		newPos = bbDistanceLib.returnClosestPointOnMeshInfoFromPos(currentPos, scalp)['position']
		relPos = [newPos[0]-currentPos[0], newPos[1]-currentPos[1], newPos[2]-currentPos[2]]
		mc.move(newPos[0], newPos[1], newPos[2], obj+'.cv[0]', a=True)
		mc.move(relPos[0]*mult[0], relPos[1]*mult[0], relPos[2]*mult[0], obj+'.cv[1]', r=True)
		mc.move(relPos[0]*mult[1], relPos[1]*mult[1], relPos[2]*mult[1], obj+'.cv[2]', r=True)
		mc.move(relPos[0]*mult[2], relPos[1]*mult[2], relPos[2]*mult[2], obj+'.cv[3]', r=True)
コード例 #4
0
def pushCurveOutFromScalp(curves, scalp, pushMult = 1.5):
	import cgm.lib.distance as bbDistanceLib
	sel = mc.ls(sl=True)
	
	for obj in curves:
		for shape in mc.listRelatives(obj,shapes=True,fullPath=True):
			cvList = (mc.ls([shape+'.cv[*]'],flatten=True))
		
		for cv in cvList:
			currentPos = mc.pointPosition(cv)
			newPos = bbDistanceLib.returnClosestPointOnMeshInfoFromPos(currentPos, scalp)['position']
			relPos = [newPos[0]-currentPos[0], newPos[1]-currentPos[1], newPos[2]-currentPos[2]]
			mc.move(relPos[0]*pushMult, relPos[1]*pushMult, relPos[2]*pushMult, cv, r=True)
	
	mc.select(sel)