Esempio n. 1
0
def aimSnap (obj,target,aimVector = [0,0,1],upVector = [0,1,0],worldUp = [0,1,0]):
    """ 
    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    DESCRIPTION:
    Snaps with a point constraint style
    
    ARGUMENTS:
    obj(string)
    target(string)
    aimVector(list)
    upVector(list)
    worldUp(list) - default is [0,1,0]
    
    RETURNS:
    Nothin
    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    """
    for o in obj,target:
	assert mc.objExists(o), "'%s' doesn't exist. Aborting aimSnapUpObject"%o
	
    aimVector = dictionary.validateDirectionVector(aimVector)
    upVector = dictionary.validateDirectionVector(upVector)
    worldUp = dictionary.validateDirectionVector(worldUp)
    
    assert type(aimVector) is list,"invalid aimVector argument"
    assert type(upVector) is list,"invalid upVector argument"
    assert type(worldUp) is list,"invalid worldUp argument"
    
    aimConstraint = mc.aimConstraint([target],[obj],aimVector=aimVector,upVector = upVector,worldUpVector = worldUp, worldUpType='vector')
    mc.delete(aimConstraint[0])
Esempio n. 2
0
def aimObjects(objList, objAim, objUp, worldUp, **kw):
    """
    Aim snap tool function for a list of objects
    
    Arg:
    objList(list) -- list of objects
    objAim(string) -- string format of aim axis. ex. 'x+'
    objUp(string) -- string format of up axis. 
    worldUp(string) -- string format of world up
    
    Kw:
    any keyword arguments for an aim constraint
    """
    worldUpType = kw.pop('worldUpType', 'vector')

    for o in objList:
        assert mc.ls(o, type='transform'
                     ), "'%s' doesn't have a transform, erroring out." % o
    assert len(
        objList
    ) >= 2, "moveAimObjects should only be used on lists of objects more than two items"

    objAim = dictionary.validateDirectionVector(objAim)
    objUp = dictionary.validateDirectionVector(objUp)
    worldUp = dictionary.validateDirectionVector(worldUp)

    assert type(objAim) is list, "invalid objAim argument"
    assert type(objUp) is list, "invalid objUp argument"
    assert type(worldUp) is list, "invalid worldUp argument"

    pairList = lists.parseListToPairs(objList)

    for pair in pairList:
        #>>> Set up constraints
        constraintBuffer = mc.aimConstraint(pair[1],
                                            pair[0],
                                            maintainOffset=False,
                                            weight=1,
                                            aimVector=objAim,
                                            upVector=objUp,
                                            worldUpVector=worldUp,
                                            worldUpType=worldUpType,
                                            **kw)
        mc.delete(constraintBuffer)

    #>>> For the last object in the chain
    for obj in objList[-1:]:
        constraintBuffer = mc.orientConstraint(objList[-2],
                                               obj,
                                               maintainOffset=False,
                                               weight=1)
        mc.delete(constraintBuffer)
Esempio n. 3
0
def moveAimSnap(obj,target,aimTarget,vector):
    """ 
    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    DESCRIPTION:
    Snaps with a point constraint style
    
    ARGUMENTS:
    obj(string)
    target(string)
    aimTarget(string)
    vector(list) - [float, float, float]
    
    RETURNS:
    Nothin
    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    """
    for o in obj,target,aimTarget:
	assert mc.objExists(o), "'%s' doesn't exist. Aborting aimSnapUpObject"%o
	
    vector = dictionary.validateDirectionVector(vector)

    assert type(vector) is list,"invalid vector argument"

    
    movePointSnap (obj,target)
    aimSnap (obj,aimTarget,vector)
Esempio n. 4
0
def moveAimSnap(obj, target, aimTarget, vector):
    """ 
    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    DESCRIPTION:
    Snaps with a point constraint style
    
    ARGUMENTS:
    obj(string)
    target(string)
    aimTarget(string)
    vector(list) - [float, float, float]
    
    RETURNS:
    Nothin
    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    """
    for o in obj, target, aimTarget:
        assert mc.objExists(
            o), "'%s' doesn't exist. Aborting aimSnapUpObject" % o

    vector = dictionary.validateDirectionVector(vector)

    assert type(vector) is list, "invalid vector argument"

    movePointSnap(obj, target)
    aimSnap(obj, aimTarget, vector)
Esempio n. 5
0
def aimObjects(objList,objAim,objUp,worldUp,**kw):
    """
    Aim snap tool function for a list of objects
    
    Arg:
    objList(list) -- list of objects
    objAim(string) -- string format of aim axis. ex. 'x+'
    objUp(string) -- string format of up axis. 
    worldUp(string) -- string format of world up
    
    Kw:
    any keyword arguments for an aim constraint
    """
    worldUpType = kw.pop('worldUpType','vector')
    
    for o in objList:
	assert mc.ls(o,type = 'transform'),"'%s' doesn't have a transform, erroring out."%o	
    assert len(objList) >= 2,"moveAimObjects should only be used on lists of objects more than two items"
    
    objAim = dictionary.validateDirectionVector(objAim)
    objUp = dictionary.validateDirectionVector(objUp)
    worldUp = dictionary.validateDirectionVector(worldUp) 
    
    assert type(objAim) is list,"invalid objAim argument"
    assert type(objUp) is list,"invalid objUp argument"
    assert type(worldUp) is list,"invalid worldUp argument"
    

    pairList = lists.parseListToPairs(objList)
    
    for pair in pairList:       
        #>>> Set up constraints 
        constraintBuffer = mc.aimConstraint(pair[1],pair[0],maintainOffset = False, weight = 1,
	                                    aimVector = objAim,
	                                    upVector = objUp,
	                                    worldUpVector = worldUp,
	                                    worldUpType=worldUpType,**kw)
	mc.delete(constraintBuffer)

    #>>> For the last object in the chain
    for obj in objList[-1:]:
        constraintBuffer = mc.orientConstraint(objList[-2],obj,maintainOffset = False, weight = 1)
	mc.delete(constraintBuffer)
Esempio n. 6
0
def aimSnap(obj,
            target,
            aimVector=[0, 0, 1],
            upVector=[0, 1, 0],
            worldUp=[0, 1, 0]):
    """ 
    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    DESCRIPTION:
    Snaps with a point constraint style
    
    ARGUMENTS:
    obj(string)
    target(string)
    aimVector(list)
    upVector(list)
    worldUp(list) - default is [0,1,0]
    
    RETURNS:
    Nothin
    >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    """
    for o in obj, target:
        assert mc.objExists(
            o), "'%s' doesn't exist. Aborting aimSnapUpObject" % o

    aimVector = dictionary.validateDirectionVector(aimVector)
    upVector = dictionary.validateDirectionVector(upVector)
    worldUp = dictionary.validateDirectionVector(worldUp)

    assert type(aimVector) is list, "invalid aimVector argument"
    assert type(upVector) is list, "invalid upVector argument"
    assert type(worldUp) is list, "invalid worldUp argument"

    aimConstraint = mc.aimConstraint([target], [obj],
                                     aimVector=aimVector,
                                     upVector=upVector,
                                     worldUpVector=worldUp,
                                     worldUpType='vector')
    mc.delete(aimConstraint[0])