Exemplo n.º 1
0
def buildRow_matchMode(self,parent):
    try:self.var_matchModeMove
    except:self.var_matchModeMove = cgmMeta.cgmOptionVar('cgmVar_matchModeMove', defaultValue = 1)
    try:self.var_matchModeRotate
    except:self.var_matchModeRotate = cgmMeta.cgmOptionVar('cgmVar_matchModeRotate', defaultValue = 1)
    try:self.var_matchMode
    except:self.var_matchMode = cgmMeta.cgmOptionVar('cgmVar_matchMode', defaultValue = 2)
    
    #>>>Match mode -------------------------------------------------------------------------------------
    _row = mUI.MelHSingleStretchLayout(parent,ut='cgmUISubTemplate',padding = 5)

    mUI.MelSpacer(_row,w=5)                      
    mUI.MelLabel(_row,l='Match Mode:')
    _row.setStretchWidget( mUI.MelSeparator(_row) )

    uiRC = mUI.MelRadioCollection()

    _on = self.var_matchMode.value

    for i,item in enumerate(['point','orient','point/orient']):
        if i == _on:
            _rb = True
        else:_rb = False

        uiRC.createButton(_row,label=item,sl=_rb,
                          onCommand = cgmGEN.Callback(LOCINATOR.uiFunc_change_matchMode,self,i))

        mUI.MelSpacer(_row,w=2)       

    _row.layout()
Exemplo n.º 2
0
def deleteKey():
    KeyTypeOptionVar = cgmMeta.cgmOptionVar('cgmVar_KeyType', defaultValue = 0)
    KeyModeOptionVar = cgmMeta.cgmOptionVar('cgmVar_KeyMode', defaultValue = 0)	

    if not KeyModeOptionVar.value:#This is default maya keying mode
        selection = mc.ls(sl=True) or []
        if not selection:
            return log.warning('cgmPuppetKey.deleteKey>>> Nothing l_selected!')
        
        mel.eval('timeSliderClearKey;')
        """
        if not KeyTypeOptionVar.value:
            mc.cutKey(selection)
        else:
            mc.cutKey(selection)"""
    else:#Let's check the channel box for objects
        selection = search.returnSelectedAttributesFromChannelBox(False) or []
        if not selection:
            selection = mc.ls(sl=True) or []
            if not selection:
                return log.warning('cgmPuppetKey.deleteKey>>> Nothing l_selected!')
        """
        if not KeyTypeOptionVar.value:
            mc.cutKey(selection)	    
        else:
            mc.cutKey(selection,breakdown = True)"""
        mel.eval('timeSliderClearKey;')
Exemplo n.º 3
0
 def _call():
     try:
         log.debug("killUI...")
         _var_mode = cgmMeta.cgmOptionVar('cgmVar_cgmMarkingMenu_menuMode', defaultValue = 0)
         log.debug('mode: {0}'.format(_var_mode))    
         if _var_mode.value in [0,1,2,3]:
             log.debug('animMode killUI')
             
             #IsClickedOptionVar = cgmMeta.cgmOptionVar('cgmVar_IsClicked')
             #mmActionOptionVar = cgmMeta.cgmOptionVar('cgmVar_mmAction')
         
             sel = mc.ls(sl=1)
         
             #>>> Timer stuff
             #=============================================================================
             var_clockStart = cgmMeta.cgmOptionVar('cgmVar_cgmMarkingMenu_clockStart', defaultValue = 0.0)    
             f_seconds = time.clock()-var_clockStart.value
             log.debug(">"*10  + '   cgmMarkingMenu =  %0.3f seconds  ' % (f_seconds) + '<'*10)    
         
             if sel and f_seconds <= .5:#and not mmActionOptionVar.value:
                 log.info("|{0}| >> Set key | low time tripped".format('cgmMM'))
                 setKey()
                 
             #mmTemplate.killChildren(_str_popWindow)
             if mc.popupMenu(ui,ex = True):
                 try:mc.menu(ui,e = True, deleteAllItems = True)
                 except Exception,err:
                     log.error("Failed to delete menu items")   
                     
                 mc.deleteUI(ui) 
                 
             #pprint.pprint(vars())      
             
     except Exception,err:
         log.error(err)   
Exemplo n.º 4
0
def buildSection_objDefaults(self,parent,frame=True):
    try:self.var_objDefaultAimAxis
    except:self.var_objDefaultAimAxis = cgmMeta.cgmOptionVar('cgmVar_objDefaultAimAxis', defaultValue = 2)
    try:self.var_objDefaultUpAxis
    except:self.var_objDefaultUpAxis = cgmMeta.cgmOptionVar('cgmVar_objDefaultUpAxis', defaultValue = 1)
    try:self.var_objDefaultOutAxis
    except:self.var_objDefaultOutAxis = cgmMeta.cgmOptionVar('cgmVar_objDefaultOutAxis', defaultValue = 3)    
    if frame:
        _frame = mUI.MelFrameLayout(parent,label = 'Obj Defaults',vis=True,
                                    collapse=self.var_objectDefaultsFrameCollapse.value,
                                    collapsable=True,
                                    enable=True,
                                    useTemplate = 'cgmUIHeaderTemplate',
                                    expandCommand = lambda:self.var_objectDefaultsFrameCollapse.setValue(0),
                                    collapseCommand = lambda:self.var_objectDefaultsFrameCollapse.setValue(1)
                                    )	
        _inside = mUI.MelColumnLayout(_frame,useTemplate = 'cgmUISubTemplate') 
    else:
        _inside = parent


    #>>>Aim defaults mode -------------------------------------------------------------------------------------
    _d = {'aim':self.var_objDefaultAimAxis,
          'up':self.var_objDefaultUpAxis,
          'out':self.var_objDefaultOutAxis}

    for k in _d.keys():
        _var = _d[k]

        _row = mUI.MelHSingleStretchLayout(_inside,ut='cgmUISubTemplate',padding = 5)

        mUI.MelSpacer(_row,w=5)                      
        mUI.MelLabel(_row,l='Obj {0}:'.format(k))
        _row.setStretchWidget( mUI.MelSeparator(_row) )

        uiRC = mUI.MelRadioCollection()

        _on = _var.value

        for i,item in enumerate(SHARED._l_axis_by_string):
            if i == _on:
                _rb = True
            else:_rb = False

            uiRC.createButton(_row,label=item,sl=_rb,
                              onCommand = cgmGEN.Callback(_var.setValue,i))

            mUI.MelSpacer(_row,w=2)       


        _row.layout() 


    #>>>Buttons -------------------------------------------------------------------------------------
    _row_defaults = mUI.MelHLayout(_inside,ut='cgmUISubTemplate',padding = 5, )

    cgmUI.add_Button(_row_defaults,'Tag selected for aim',
                     lambda *a:MMCONTEXT.func_process(SNAP.verify_aimAttrs, mc.ls(sl=True),'each','Verify aim attributes',True,**{}),)                                       
    _row_defaults.layout() 
Exemplo n.º 5
0
def killUI():
    IsClickedOptionVar = cgmMeta.cgmOptionVar('cgmVar_IsClicked', 'int')
    mmActionOptionVar = cgmMeta.cgmOptionVar('cgmVar_mmAction', 'int')

    if mc.popupMenu('cgmMM', ex=True):
        mc.deleteUI('cgmMM')

    IsClickedOptionVar.setValue(0)
    mmActionOptionVar.setValue(0)
Exemplo n.º 6
0
def killUI():
	IsClickedOptionVar = cgmMeta.cgmOptionVar('cgmVar_IsClicked', 'int')
	mmActionOptionVar = cgmMeta.cgmOptionVar('cgmVar_mmAction', 'int')
	
	if mc.popupMenu('cgmMM',ex = True):
		mc.deleteUI('cgmMM')
		
	IsClickedOptionVar.setValue(0)
	mmActionOptionVar.setValue(0)	
Exemplo n.º 7
0
    def insert_init(self,*args,**kws):
        _str_func = '__init__[{0}]'.format(self.__class__.TOOLNAME)            
        log.info("|{0}| >>...".format(_str_func))        

        if kws:log.debug("kws: %s"%str(kws))
        if args:log.debug("args: %s"%str(args))
        log.info(self.__call__(q=True, title=True))

        self.__version__ = __version__
        self.__toolName__ = self.__class__.WINDOW_NAME	

        #self.l_allowedDockAreas = []
        self.WINDOW_TITLE = self.__class__.WINDOW_TITLE
        self.DEFAULT_SIZE = self.__class__.DEFAULT_SIZE

        self.controllerPuppet = None
        self._parentCamera = None

        self.recentOptionStore = cgmMeta.cgmOptionVar("cgmVar_controllerPuppet_recent", varType = "string", defaultValue=json.dumps([]) )
        self.recentMappings = json.loads( self.recentOptionStore.getValue() )

        self.connectionDict = { 'name':'Default',
                                'RStickHorizontal':{},
                                'RStickVertical':{},
                                'LStickHorizontal':{},
                                'LStickVertical':{},
                                'RTrigger':{},
                                'LTrigger':{} }

        self.mappingList = []
Exemplo n.º 8
0
def LocalizeTextures():
    optionVarProjectStore = cgmMeta.cgmOptionVar("cgmVar_projectCurrent",
                                                 varType="string")

    project = Project.data(filepath=optionVarProjectStore.getValue())

    content = os.path.normpath(project.userPaths_get()['content'])
    export = os.path.normpath(project.userPaths_get()['export'])

    for f in mc.ls(type='file'):
        textureName = mc.getAttr('%s.fileTextureName' % f)

        if content not in textureName and os.path.exists(
                textureName) and os.path.isfile(textureName):
            newPath = os.path.dirname(mc.file(q=True, loc=True))
            if mc.referenceQuery(f, inr=True):
                newPath = of.path.basedir(mc.referenceQuery(f, filename=True))

            newFilename = os.path.join(newPath, 'textures',
                                       os.path.split(textureName)[1])

            if not os.path.exists(os.path.dirname(newFilename)):
                os.makedirs(os.path.dirname(newFilename))

            if os.path.normpath(textureName) != os.path.normpath(newFilename):
                copyfile(textureName, newFilename)

                print 'remapped %s to %s' % (textureName, newFilename)
                mc.setAttr('%s.fileTextureName' % f,
                           newFilename,
                           type='string')
Exemplo n.º 9
0
def FindAndRemapTextures():
    optionVarProjectStore = cgmMeta.cgmOptionVar("cgmVar_projectCurrent",
                                                 varType="string")

    project = Project.data(filepath=optionVarProjectStore.getValue())

    content = os.path.normpath(project.userPaths_get()['content'])
    export = os.path.normpath(project.userPaths_get()['export'])

    for f in mc.ls(type='file'):
        texturePath = os.path.normpath(mc.getAttr('%s.fileTextureName' % f))
        if not os.path.exists(texturePath):
            match = SequenceMatcher(None, texturePath,
                                    content).find_longest_match(
                                        0, len(texturePath), 0, len(content))
            newPath = content + texturePath[match.size + match.a:]
            if os.path.exists(newPath):
                print "changing %s.fileTexturePath to %s" % (f, newPath)
                mc.setAttr('%s.fileTextureName' % f, newPath, type='string')
            else:
                match = SequenceMatcher(None, texturePath,
                                        export).find_longest_match(
                                            0, len(texturePath), 0,
                                            len(export))
                newPath = export + texturePath[match.size + match.a:]

                if os.path.exists(newPath):
                    print "changing %s.fileTexturePath to %s" % (f, newPath)
                    mc.setAttr('%s.fileTextureName' % f,
                               newPath,
                               type='string')
                else:
                    print "Can't find %s" % texturePath
Exemplo n.º 10
0
def color_override(value=None, context='selection', mType=None):
    """
    Get data for updating a transform
    
    :parameters
        self(instance): cgmMarkingMenu

    :returns
        info(dict)
    """
    _str_func = "color_override"
    if context is None:
        _context = cgmMeta.cgmOptionVar('cgmVar_contextTD',
                                        defaultValue='selection').value
    else:
        _context = context.lower()
    _l_context = get_list(_context, mType)
    _l_context.extend(get_list(_context, 'joint'))

    log.debug("|{0}| >> value: {1} | mType: {2} | context: {3}".format(
        _str_func, value, mType, _context))
    if not _l_context:
        raise ValueError, "|{0}| >> Nothing found in context. {1}".format(
            _str_func, context)

    for o in _l_context:
        try:
            RIGGING.override_color(o, value)
        except Exception, err:
            log.error(
                "|{0}| >> set fail. obj:{1} | value:{2} | error: {3} | {4}".
                format(_str_func, NAMES.get_short(o), value, err, Exception))
Exemplo n.º 11
0
def buildRow_lockSource(self,parent):
    
    _plug = 'var_transformLockSource'
    
    self.__dict__[_plug] = cgmMeta.cgmOptionVar('cgmVar_transformLockSource', defaultValue = 1)        
    
    mPlug = self.__dict__[_plug]
    
    #>>>Row ====================================================================================
    uiRC = mUI.MelRadioCollection()

    _row1 = mUI.MelHSingleStretchLayout(parent,ut='cgmUISubTemplate',padding = 5)
    mUI.MelSpacer(_row1,w=5)
    mUI.MelLabel(_row1,l='Lock Source: ')
    
    _row1.setStretchWidget( mUI.MelSeparator(_row1) )

    uiRC = mUI.MelRadioCollection()
    _on = mPlug.value

    for i,item in enumerate(['off','on']):
        if i == _on:
            _rb = True
        else:_rb = False

        uiRC.createButton(_row1,label=item,sl=_rb,
                          ann = "When locked, the source object will not be affected by value changes via the ui",
                          onCommand = cgmGEN.Callback(mPlug.setValue,i))

        mUI.MelSpacer(_row1,w=2)    

    _row1.layout()
Exemplo n.º 12
0
def buildRow_space(self,parent,optionVarPrefix = 'source', options = __l_spaceModes):
    
    _plug = 'var_{0}TransSpaceMode'.format(optionVarPrefix)
    
    self.__dict__[_plug] = cgmMeta.cgmOptionVar('cgmVar_{0}TransSpaceMode'.format(optionVarPrefix), defaultValue = options[0])        
    
    mPlug = self.__dict__[_plug]
    
    #>>>Row ====================================================================================
    uiRC = mUI.MelRadioCollection()

    _row1 = mUI.MelHSingleStretchLayout(parent,ut='cgmUISubTemplate',padding = 5)
    mUI.MelSpacer(_row1,w=5)
    mUI.MelLabel(_row1,l='{0} Space Mode'.format(optionVarPrefix.capitalize()))
    
    _row1.setStretchWidget( mUI.MelSeparator(_row1) )

    uiRC = mUI.MelRadioCollection()
    _on = mPlug.value

    for i,item in enumerate(options):
        if item == _on:
            _rb = True
        else:_rb = False

        uiRC.createButton(_row1,label=item,sl=_rb,
                          onCommand = cgmGEN.Callback(mPlug.setValue,item))

        mUI.MelSpacer(_row1,w=2)    

    _row1.layout()
Exemplo n.º 13
0
def uiFunc_getTargets(self):
    _str_func = 'uiFunc_getTargets'
    _b_lockSource = cgmMeta.cgmOptionVar('cgmVar_transformLockSource', defaultValue = 1).getValue()
    
    _targets = mc.ls(sl=True)
    _ml_targets = []
    if _targets:
        _ml_targets = cgmMeta.validateObjListArg(_targets,'cgmObject')
        
    if _b_lockSource and self._mTransformTarget:
        log.info("|{0}| >> lock Source on. Checking list".format(_str_func))
        if self._mTransformTarget in _ml_targets:
            _ml_targets.remove(self._mTransformTarget)
            log.info("|{0}| >> Removed source...".format(_str_func))            
    elif not _b_lockSource and self._mTransformTarget:
        if self._mTransformTarget not in _ml_targets:
            _ml_targets.insert(0,self._mTransformTarget)
    
    if not _ml_targets:
        log.info("|{0}| >> No targets selected".format(_str_func))                
        
    log.info("|{0}| >> targets...".format(_str_func))                
    for mObj in _ml_targets:
        print(mObj.mNode)
    
    return _ml_targets
Exemplo n.º 14
0
def buildRow_aimMode(self,parent):
    try:self.var_aimMode
    except:self.var_aimMode = cgmMeta.cgmOptionVar('cgmVar_aimMode', defaultValue = 'world')   

    #>>>Match mode -------------------------------------------------------------------------------------
    _row = mUI.MelHSingleStretchLayout(parent,ut='cgmUISubTemplate',padding = 5)

    mUI.MelSpacer(_row,w=5)                      
    mUI.MelLabel(_row,l='Aim Mode:')
    _row.setStretchWidget( mUI.MelSeparator(_row) )

    uiRC = mUI.MelRadioCollection()

    _on = self.var_aimMode.value

    for i,item in enumerate(['local','world','matrix']):
        if item == _on:
            _rb = True
        else:_rb = False

        uiRC.createButton(_row,label=item,sl=_rb,
                          onCommand = cgmGEN.Callback(self.var_aimMode.setValue,item))

        mUI.MelSpacer(_row,w=2)       


    _row.layout()      
Exemplo n.º 15
0
def reset_channels_fromMode(nodes=None, mode = 0,selectedChannels=None):
    """
    :mode
        0 - all
        1 - transformsOnly
        2 - keyableOnly
    """
    if not nodes:
        nodes = mc.ls(sl=True)
        if not nodes:
            return    
         
    if mode == 0:
        _d = {'transformsOnly':False,
              'keyableOnly':False}
    elif mode == 1:
        _d = {'transformsOnly':True,
              'keyableOnly':False}
    elif mode == 2:
        _d = {'transformsOnly':True,
              'keyableOnly':True}
    
    if selectedChannels == None:
        try:selectedChannels = cgmMeta.cgmOptionVar('cgmVar_KeyMode').value
        except:
            log.debug("nope...")
            selectedChannels = False
    _d['selectedChannels'] = selectedChannels
    _d['nodes'] = nodes
    reset_channels(**_d)
Exemplo n.º 16
0
def killUI():
    IsClickedOptionVar = cgmMeta.cgmOptionVar('cgmVar_IsClicked')
    mmActionOptionVar = cgmMeta.cgmOptionVar('cgmVar_mmAction')

    sel = search.selectCheck()
    
    #>>> Timer stuff
    #=============================================================================
    var_clockStart = cgmMeta.cgmOptionVar('cgmVar_PuppetKeyClockStart', defaultValue = 0.0)    
    f_seconds = time.clock()-var_clockStart.value
    log.debug(">"*10  + '   cgmPuppetKey =  %0.3f seconds  ' % (f_seconds) + '<'*10)    
    
    #>>>Delete our gui and default behavior
    if mc.popupMenu('cgmMM',ex = True):
	mc.deleteUI('cgmMM')
    if sel and f_seconds <= .5 and not mmActionOptionVar.value:
	setKey()
Exemplo n.º 17
0
 def create_guiOptionVar(self,varName,*args,**kws):
     fullName = "cgmVar_%s%s"%(self.__toolName__,varName)
     if args:args[0] = fullName
     if kws and 'varName' in kws.keys():kws.pop('varName')
     self.__dict__['var_%s'%varName] = cgmMeta.cgmOptionVar(varName = fullName, *args,**kws)
     log.debug('var_%s'%varName)
     if fullName not in self.l_optionVars:
         self.l_optionVars.append(fullName)
     return fullName
Exemplo n.º 18
0
def killUI():
    log.info("killUI()...")        
    IsClickedOptionVar = cgmMeta.cgmOptionVar('cgmVar_IsClicked')
    mmActionOptionVar = cgmMeta.cgmOptionVar('cgmVar_mmAction')

    sel = search.selectCheck()

    #>>> Timer stuff
    #=============================================================================
    var_clockStart = cgmMeta.cgmOptionVar('cgmVar_PuppetKeyClockStart', defaultValue = 0.0)    
    f_seconds = time.clock()-var_clockStart.value
    log.debug(">"*10  + '   cgmPuppetKey =  %0.3f seconds  ' % (f_seconds) + '<'*10)    

    #>>>Delete our gui and default behavior
    if mc.popupMenu('cgmMM',ex = True):
        mc.deleteUI('cgmMM')
    if sel and f_seconds <= .5 and not mmActionOptionVar.value:
        setKey()
Exemplo n.º 19
0
    def __init__(self):	
        """
        Initializes the pop up menu class call
        """
        self._str_MM = 'snapMarkingMenu'        
        self.optionVars = []
        IsClickedOptionVar = cgmMeta.cgmOptionVar('cgmVar_IsClicked', value = 0)
        mmActionOptionVar = cgmMeta.cgmOptionVar('cgmVar_mmAction',value = 0)			


        #>>>> Clock set
        #====================================================================
        self.clockStartVar = cgmMeta.cgmOptionVar('cgmVar_PuppetKeyClockStart', defaultValue = 0.0)	
        self.clockStartVar.value = time.clock()
        log.debug("cgmPuppetKey.clockStart: %s"%self.clockStartVar.value)

        IsClickedOptionVar.value = 0
        mmActionOptionVar.value = 0
        
        

        try:#>> Panel check and build...
            _sub = "Panel check and build"
            _p = mc.getPanel(up = True)
            if _p is None:
                log.error("No panel detected...")
                return 
            if _p:
                log.info("{0} panel under pointer {1}...".format(self._str_MM, _p))                    
                _parentPanel = mc.panel(_p,q = True,ctl = True)
                log.info("{0} panel under pointer {1} | parent: {2}...".format(self._str_MM, _p,_parentPanel))
                if 'MayaWindow' in _parentPanel:
                    _p = 'viewPanes'     
            if not mc.control(_p, ex = True):
                return "{0} doesn't exist!".format(_p)
            else:
                if not mc.popupMenu('cgmMM',ex = True):
                    mc.popupMenu('cgmMM', ctl = 0, alt = 0, sh = 0, mm = 1, b =1, aob = 1, p = _p,
                                 pmc = mUI.Callback(self.createUI,'cgmMM'))
                else:
                    mc.popupMenu('cgmMM', edit = True, ctl = 0, alt = 0, sh = 0, mm = 1, b =1, aob = 1, p = _p,
                                 pmc = mUI.Callback(self.createUI,'cgmMM'))
        except Exception,err:
            raise Exception,"{0} {1} exception | {2}".format(self._str_MM,_sub,err)
Exemplo n.º 20
0
    def create_guiOptionVar(self, varName, *args, **kws):
        fullName = "cgmVar_{0}_{1}".format(self._str_MM, varName)
        if args: args[0] = fullName
        if kws and 'varName' in kws.keys(): kws.pop('varName')
        self.__dict__['var_{0}'.format(varName)] = cgmMeta.cgmOptionVar(
            varName=fullName, *args, **kws)
        log.debug('var_{0}'.format(varName))
        if fullName not in self.l_optionVars:
            self.l_optionVars.append(fullName)

        return fullName
Exemplo n.º 21
0
def setKey(keyModeOverride = None):
    _str_func = "setKey"        
    KeyTypeOptionVar = cgmMeta.cgmOptionVar('cgmVar_KeyType', defaultValue = 0)
    KeyModeOptionVar = cgmMeta.cgmOptionVar('cgmVar_KeyMode', defaultValue = 0)	
    selection = False
    
    log.debug("|{0}| >> keyType: {1} | keyMode: {2} |  keyModeOverride: {3}".format(_str_func,KeyTypeOptionVar.value,KeyModeOptionVar.value,keyModeOverride))  
    
    if not KeyModeOptionVar.value:#This is default maya keying mode
        selection = mc.ls(sl=True) or []
        if not selection:
            return log.warning('cgmPuppetKey.setKey>>> Nothing l_selected!')
           
            
        """if not KeyTypeOptionVar.value:
            mc.setKeyframe(selection)
        else:
            mc.setKeyframe(breakdown = True)"""
    else:#Let's check the channel box for objects
        selection = SEARCH.get_selectedFromChannelBox(False) or []
        if not selection:
            log.debug("|{0}| >> No channel box selection. ".format(_str_func))
            selection = mc.ls(sl=True) or []
            
            
    if not selection:
        return log.warning('cgmPuppetKey.setKey>>> Nothing selected!')
    
            
    if keyModeOverride:
        log.debug("|{0}| >> Key override mode. ".format(_str_func))
        if keyModeOverride== 'breakdown':
            mc.setKeyframe(selection,breakdown = True)     
        else:
            mc.setKeyframe(selection)
            
    else:
        if not KeyTypeOptionVar.value:
            mc.setKeyframe(selection)
        else:
            mc.setKeyframe(selection,breakdown = True)     
Exemplo n.º 22
0
def uiFunc_setLastUpdateDebug(branch='MRS', clear=False):
    var_lastUpdate = cgmMeta.cgmOptionVar('cgmVar_branchLastUpdate',
                                          defaultValue=['None'])
    if clear:
        var_lastUpdate.setValue(['None'])
        var_lastUpdate.report()
        return
    d_branch = cgmUpdate.get_dat(branch, 1, True)
    var_lastUpdate.setValue([
        branch, d_branch[0]['hash'], d_branch[0]['msg'],
        datetime.datetime.now().__str__()[:-7]
    ])
Exemplo n.º 23
0
    def __init__(self):	
        """
        Initializes the pop up menu class call
        """
        self._str_funcName = "puppetKeyMarkingMenu"
        self.optionVars = []
        IsClickedOptionVar = cgmMeta.cgmOptionVar('cgmVar_IsClicked', value = 0)
        mmActionOptionVar = cgmMeta.cgmOptionVar('cgmVar_mmAction',value = 0)			

        panel = mc.getPanel(up = True)
        if panel:
            # Attempt at fixing a bug of some tools not working when the pop up parent isn't 'viewPanes'
            if 'MayaWindow' in mc.panel(panel,q = True,ctl = True):
                panel = 'viewPanes'

        sel = search.selectCheck()

        #>>>> Clock set
        #====================================================================
        self.clockStartVar = cgmMeta.cgmOptionVar('cgmVar_PuppetKeyClockStart', defaultValue = 0.0)	
        self.clockStartVar.value = time.clock()
        log.debug("cgmPuppetKey.clockStart: %s"%self.clockStartVar.value)

        IsClickedOptionVar.value = 0
        mmActionOptionVar.value = 0

        if mc.popupMenu('cgmMM',ex = True):
            mc.deleteUI('cgmMM')

        if panel:
            if mc.control(panel, ex = True):
                try:
                    mc.popupMenu('cgmMM', ctl = 0, alt = 0, sh = 0, mm = 1, b =1, aob = 1, p = panel,
                                 pmc = lambda *a: self.createUI('cgmMM'))
                except:
                    log.warning('Exception on set key marking menu')
                    mel.eval('performSetKeyframeArgList 1 {"0", "animationList"};')		
Exemplo n.º 24
0
def setKey():
    KeyTypeOptionVar = cgmMeta.cgmOptionVar('cgmVar_KeyType', defaultValue = 0)
    KeyModeOptionVar = cgmMeta.cgmOptionVar('cgmVar_KeyMode', defaultValue = 0)	

    if not KeyModeOptionVar.value:#This is default maya keying mode
        selection = mc.ls(sl=True) or []
        if not selection:
            return log.warning('cgmPuppetKey.setKey>>> Nothing l_selected!')

        if not KeyTypeOptionVar.value:
            mc.setKeyframe(selection)
        else:
            mc.setKeyframe(breakdown = True)
    else:#Let's check the channel box for objects
        selection = search.returnSelectedAttributesFromChannelBox(False) or []
        if not selection:
            selection = mc.ls(sl=True) or []
            if not selection:
                return log.warning('cgmPuppetKey.setKey>>> Nothing l_selected!')

        if not KeyTypeOptionVar.value:
            mc.setKeyframe(selection)
        else:
            mc.setKeyframe(selection,breakdown = True)	
Exemplo n.º 25
0
    def __init__(self):	
	"""
	Initializes the pop up menu class call
	"""
	self.optionVars = []
	IsClickedOptionVar = cgmMeta.cgmOptionVar('cgmVar_IsClicked', value = 0)
	mmActionOptionVar = cgmMeta.cgmOptionVar('cgmVar_mmAction',value = 0)			

	panel = mc.getPanel(up = True)
	if panel:
	    # Attempt at fixing a bug of some tools not working when the pop up parent isn't 'viewPanes'
	    if 'MayaWindow' in mc.panel(panel,q = True,ctl = True):
		panel = 'viewPanes'

	sel = search.selectCheck()
	
	#>>>> Clock set
	#====================================================================
	self.clockStartVar = cgmMeta.cgmOptionVar('cgmVar_PuppetKeyClockStart', defaultValue = 0.0)	
	self.clockStartVar.value = time.clock()
	log.debug("cgmPuppetKey.clockStart: %s"%self.clockStartVar.value)
	
	IsClickedOptionVar.value = 0
	mmActionOptionVar.value = 0

	if mc.popupMenu('cgmMM',ex = True):
	    mc.deleteUI('cgmMM')

	if panel:
	    if mc.control(panel, ex = True):
		try:
		    mc.popupMenu('cgmMM', ctl = 0, alt = 0, sh = 0, mm = 1, b =1, aob = 1, p = panel,
		                 pmc = lambda *a: self.createUI('cgmMM'))
		except:
		    log.warning('Exception on set key marking menu')
		    mel.eval('performSetKeyframeArgList 1 {"0", "animationList"};')		
Exemplo n.º 26
0
def deleteKey():
    KeyTypeOptionVar = cgmMeta.cgmOptionVar('cgmVar_KeyType', defaultValue = 0)
    KeyModeOptionVar = cgmMeta.cgmOptionVar('cgmVar_KeyMode', defaultValue = 0)	

    if not KeyModeOptionVar.value:#This is default maya keying mode
	selection = mc.ls(sl=True) or []
	if not selection:
	    return log.warning('cgmPuppetKey.deleteKey>>> Nothing l_selected!')

	if not KeyTypeOptionVar.value:
	    mc.cutKey(selection)	    
	else:
	    mc.cutKey(selection)	    
    else:#Let's check the channel box for objects
	selection = search.returnSelectedAttributesFromChannelBox(False) or []
	if not selection:
	    selection = mc.ls(sl=True) or []
	    if not selection:
		return log.warning('cgmPuppetKey.deleteKey>>> Nothing l_selected!')

	if not KeyTypeOptionVar.value:
	    mc.cutKey(selection)	    
	else:
	    mc.cutKey(selection,breakdown = True)	
Exemplo n.º 27
0
def uiQuery_advancedSnap(self):
    _res = {}
    
    _res['sl'] = mc.ls(sl=True)
    _res['objPivot'] = self.uiSelector_objPivot.getValue()
    _res['objMode'] = self.uiSelector_objMode.getValue()
    _res['targetPivot'] = self.uiSelector_targetPivot.getValue()
    _res['targetMode'] = self.uiSelector_targetMode.getValue()
    
    _l_order = ['position','rotation','rotateAxis','rotateOrder','scalePivot','rotatePivot']
    for k in _l_order:
        _plug = 'cgmVar_snapAdvanced_' + k
        _res[k] = cgmMeta.cgmOptionVar(_plug).getValue()
    
    pprint.pprint(_res)
    return _res
Exemplo n.º 28
0
def buildRow_branches(self, parent):
    """
    try:self.var_matchModeMove
    except:self.var_matchModeMove = cgmMeta.cgmOptionVar('cgmVar_matchModeMove', defaultValue = 1)
    try:self.var_matchModeRotate
    except:self.var_matchModeRotate = cgmMeta.cgmOptionVar('cgmVar_matchModeRotate', defaultValue = 1)
    try:self.var_matchMode
    except:self.var_matchMode = cgmMeta.cgmOptionVar('cgmVar_matchMode', defaultValue = 2)
    """
    try:
        self.var_branchMode
    except:
        self.var_branchMode = cgmMeta.cgmOptionVar('cgmVar_branchUpdateMode',
                                                   defaultValue='master')

    #>>>Branch -------------------------------------------------------------------------------------
    _row = mUI.MelHSingleStretchLayout(parent,
                                       ut='cgmUISubTemplate',
                                       padding=5)

    mUI.MelSpacer(_row, w=5)
    mUI.MelLabel(_row, l='Choose which branch you want to use:')

    #>>>Settings -------------------------------------------------------------------------------------

    #cc = Callback(puppetBoxLib.uiModuleOptionMenuSet,self,self.moduleDirectionMenus,self.moduleDirections,'cgmDirection',i)
    self.uiSelector_branch = mUI.MelOptionMenu(_row,
                                               useTemplate='cgmUITemplate')

    for a in _l_branches:
        self.uiSelector_branch.append(a)

    self.uiSelector_branch(
        edit=True,
        value=self.var_branchMode.getValue(),
        cc=lambda *a: uiFunc_branchChange(self, self.var_branchMode, self.
                                          uiSelector_branch)
        #cc = cgmGEN.Callback(self.set_optionVar, self.var_branchMode, None,
        #                     self.uiSelector_branch)
    )

    _row.setStretchWidget(self.uiSelector_branch)
    mUI.MelSpacer(_row, w=5)

    _row.layout()
Exemplo n.º 29
0
def raySnap_start(targets = []):
	_toSnap = targets
	log.info("raySnap_start | targets: {0}".format(_toSnap))
	if not _toSnap:
		raise ValueError,"raySnap_start >> Must have targets!"

	var_RayCastMode = cgmMeta.cgmOptionVar('cgmVar_SnapMenuRayCastMode', defaultValue=0)
	log.info("mode: {0}".format(var_RayCastMode.value))
	
	cgmDrag.clickMesh( mode = var_RayCastMode.value,
	                   mesh = None,
	                   closestOnly = True,
	                   create = 'locator',
	                   dragStore = False,
	                   toSnap = _toSnap,
	                   timeDelay = .25,
	                   )

	log.warning("raySnap_start >>> ClickMesh initialized")
Exemplo n.º 30
0
def raySnap_start(targets = []):
    _toSnap = targets
    log.info("raySnap_start | targets: {0}".format(_toSnap))
    if not _toSnap:
        raise ValueError,"raySnap_start >> Must have targets!"

    var_RayCastMode = cgmMeta.cgmOptionVar('cgmVar_SnapMenuRayCastMode', defaultValue=0)
    log.info("mode: {0}".format(var_RayCastMode.value))

    cgmDrag.clickMesh( mode = var_RayCastMode.value,
                       mesh = None,
                       closestOnly = True,
                       create = 'locator',
                       dragStore = False,
                       toSnap = _toSnap,
                       timeDelay = .25,
                       )

    log.warning("raySnap_start >>> ClickMesh initialized")
Exemplo n.º 31
0
	def __init__(self):	
		"""
		Initializes the pop up menu class call
		"""
		self._str_MM = 'snapMarkingMenu'
		self.optionVars = []
		self.toolName = 'cgm.snapMM'
		IsClickedOptionVar = cgmMeta.cgmOptionVar('cgmVar_IsClicked', 'int')
		mmActionOptionVar = cgmMeta.cgmOptionVar('cgmVar_mmAction', 'int')	
		surfaceSnapAimModeVar = cgmMeta.cgmOptionVar('cgmVar_SurfaceSnapAimMode', 'int')	
		UpdateRotateOrderOnTagVar = cgmMeta.cgmOptionVar('cgmVar_TaggingUpdateRO', 'int')	
		self.LocinatorUpdateObjectsBufferOptionVar = cgmMeta.cgmOptionVar('cgmVar_LocinatorUpdateObjectsBuffer',defaultValue = [''])
		
		self.LocinatorUpdateObjectsOptionVar = cgmMeta.cgmOptionVar('cgmVar_SnapMMUpdateMode',defaultValue = 0)
		guiFactory.appendOptionVarList(self,self.LocinatorUpdateObjectsOptionVar.name)
		
		self.SnapModeOptionVar = cgmMeta.cgmOptionVar('cgmVar_SnapMatchMode',defaultValue = 0)
		guiFactory.appendOptionVarList(self,self.SnapModeOptionVar.name)
						
		IsClickedOptionVar.setValue(0)
		mmActionOptionVar.setValue(0)
		
		#if mc.popupMenu('cgmMM',ex = True):
			#mc.deleteUI('cgmMM')#...deleting ui elements seems to be hard crashing maya 2017
			
		
		_p = mc.getPanel(up = True)
		if _p is None:
			log.error("No panel detected...")
			return 
		if _p:
			log.info("{0} panel under pointer {1}...".format(self._str_MM, _p))                    
			_parentPanel = mc.panel(_p,q = True,ctl = True)
			log.info("{0} panel under pointer {1} | parent: {2}...".format(self._str_MM, _p,_parentPanel))
			if 'MayaWindow' in _parentPanel:
				_p = 'viewPanes' 
		if not mc.control(_p, ex = True):
			raise ValueError,"{0} doesn't exist!".format(_p)
			#_p = panel
		if not mc.popupMenu('cgmMM',ex = True):
			mc.popupMenu('cgmMM', ctl = 0, alt = 0, sh = 0, mm = 1, b =1, aob = 1, p = _p,
			             pmc = lambda *a: self.createUI('cgmMM'), postMenuCommandOnce = True)
		else:
			mc.popupMenu('cgmMM', edit = True, ctl = 0, alt = 0, sh = 0, mm = 1, b =1, aob = 1, p = _p,
			              pmc = lambda *a: self.createUI('cgmMM'), postMenuCommandOnce = True)
Exemplo n.º 32
0
    def setupVariables(self):
	self.KeyTypeOptionVar = cgmMeta.cgmOptionVar('cgmVar_KeyType', defaultValue = 0)
	guiFactory.appendOptionVarList(self,self.KeyTypeOptionVar.name)

	self.KeyModeOptionVar = cgmMeta.cgmOptionVar('cgmVar_KeyMode', defaultValue = 0)
	guiFactory.appendOptionVarList(self,self.KeyModeOptionVar.name)	

	self.mmActionOptionVar = cgmMeta.cgmOptionVar('cgmVar_mmAction')
	
	self.BuildModuleOptionVar = cgmMeta.cgmOptionVar('cgmVar_PuppetKeyBuildModule', defaultValue = 1)
	guiFactory.appendOptionVarList(self,self.BuildModuleOptionVar.name)	
	
	self.BuildPuppetOptionVar = cgmMeta.cgmOptionVar('cgmVar_PuppetKeyBuildPuppet', defaultValue = 1)
	guiFactory.appendOptionVarList(self,self.BuildPuppetOptionVar.name)	
	
	self.ResetModeOptionVar = cgmMeta.cgmOptionVar('cgmVar_ChannelResetMode', defaultValue = 0)		
	guiFactory.appendOptionVarList(self,self.ResetModeOptionVar.name)
Exemplo n.º 33
0
    def setupVariables(self):
        self.KeyTypeOptionVar = cgmMeta.cgmOptionVar('cgmVar_KeyType', defaultValue = 0)
        guiFactory.appendOptionVarList(self,self.KeyTypeOptionVar.name)

        self.KeyModeOptionVar = cgmMeta.cgmOptionVar('cgmVar_KeyMode', defaultValue = 0)
        guiFactory.appendOptionVarList(self,self.KeyModeOptionVar.name)	

        self.mmActionOptionVar = cgmMeta.cgmOptionVar('cgmVar_mmAction')

        self.BuildModuleOptionVar = cgmMeta.cgmOptionVar('cgmVar_PuppetKeyBuildModule', defaultValue = 1)
        guiFactory.appendOptionVarList(self,self.BuildModuleOptionVar.name)	

        self.BuildPuppetOptionVar = cgmMeta.cgmOptionVar('cgmVar_PuppetKeyBuildPuppet', defaultValue = 1)
        guiFactory.appendOptionVarList(self,self.BuildPuppetOptionVar.name)	

        self.ResetModeOptionVar = cgmMeta.cgmOptionVar('cgmVar_ChannelResetMode', defaultValue = 0)		
        guiFactory.appendOptionVarList(self,self.ResetModeOptionVar.name)
Exemplo n.º 34
0
    def uiUpdate_topReport(self):
        try:
            self.var_lastUpdate
        except:
            self.var_lastUpdate = cgmMeta.cgmOptionVar(
                'cgmVar_branchLastUpdate', defaultValue=[''])

        _lastUpdate = self.var_lastUpdate.getValue()
        self.var_lastUpdate.report()
        if _lastUpdate == 'None':
            self.uiField_report(edit=True,
                                label='No last update data found...')
            return log.error("No last update found.")
        else:
            try:
                _lastBranch = _lastUpdate[0]
            except:
                _lastBranch = None
            try:
                _lastHash = _lastUpdate[1]
            except:
                _lastHash = None
            try:
                _lastMsg = _lastUpdate[2]
            except:
                _lastMsg = None
            try:
                _lastDate = _lastUpdate[3]
            except:
                _lastDate = None

            self.uiField_report(
                edit=True,
                label="Last update: [{0}] - {1}".format(
                    _lastBranch, _lastDate, _lastHash),
                ann=_lastMsg,
            )
Exemplo n.º 35
0
def func_process(func,
                 objects=None,
                 processMode='all',
                 calledFrom=None,
                 noSelect=True,
                 context='selection',
                 mType=None,
                 getTransform=False,
                 **kws):
    """
    Process objects passed with fuction provided in different modes...
    
    :parameters
        func(function)
        objects(list)
        processMode(str)
            all -- objects
            each -- func to each object
            eachToNext -- o,objects[i+1]
            fromPreviousEach -- objects[-1],o
            eachToLast -- o,objects[-1]
            firstToEach -- objects[0],o
            eachToFirst -- o,objects[0]
            eachToPrevious -- objects[i],objects[i-1]
            previousToEach -- objects[i-1],objects[i]
            lastFromRest - objects[-1],objects[:-1]
            restFromLast - objects[:-1],objects[-1]
            firstToRest - objects[0],objects[1:]
            restFromFirst - objects[1:],objects[0]
            eachToNextReverse
        calledFrom - String for debugging/
        kws(dict) -- pass through

    :returns
        info(dict)
        
        iterTo
    """
    try:
        if calledFrom is not None: _str_func = "{0}".format(calledFrom)
        else: _str_func = "func_process"

        if objects == None:
            if context == None:
                context = cgmMeta.cgmOptionVar('cgmVar_contextTD',
                                               defaultValue='selection').value
                objects = get_list(context, mType, getTransform)
            else:
                objects = get_list(context, mType, getTransform)

        log.debug("|{0}| >> func: {1}".format(_str_func, func.__name__))
        log.debug("|{0}| >> mode: {1}".format(_str_func, processMode))
        log.debug("|{0}| >> kws: {1}".format(_str_func, kws))
        log.debug("|{0}| >> objects: {1}".format(_str_func, objects))

        if not objects:
            log.warning("|{0}| >> No targets specified. func: {1}".format(
                _str_func, func.__name__))
            return False

        if processMode in ['each']:
            for i, o in enumerate(objects):
                log.debug("|{0}| >> {1} : {2}".format(_str_func, i, o))

                if processMode == 'each':
                    _res = func(o, **kws)

                if _res:
                    log.info("|{0}.{1}| >> {2}".format(_str_func, processMode,
                                                       _res))
        elif processMode in ['all']:
            _res = func(objects, **kws)
            if _res:
                log.info("|{0}.{1}| >> {2}".format(_str_func, processMode,
                                                   _res))

        elif processMode in ['eachToNext', 'fromPreviousEach', 'eachToLast']:
            for i, o in enumerate(objects[:-1]):
                log.debug("|{0}| >> {1} : {2}".format(_str_func, i, o))
                try:
                    if processMode == 'eachToNext':
                        _res = func(o, objects[i + 1], **kws)
                    elif processMode == 'fromPreviousEach':
                        _res = func(objects[-1], o, **kws)
                    elif processMode == 'eachToLast':
                        _res = func(o, objects[-1], **kws)

                    if _res: print("|{0}| >> {1}".format(_str_func, _res))

                except Exception, err:
                    log.error(
                        "|{0}| >> {1} : {2} failed! | processMode:{4} | err: {3}"
                        .format(_str_func, i, o, err, processMode))
        elif processMode in [
                'firstToEach', 'eachToFirst', 'eachToPrevious',
                'previousToEach'
        ]:
            for i, o in enumerate(objects[1:]):
                log.debug("|{0}| >> {1} : {2}".format(_str_func, i, o))
                try:
                    if processMode == 'firstToEach':
                        _res = func(objects[0], o, **kws)
                    elif processMode == 'eachToFirst':
                        _res = func(o, objects[0], **kws)

                    elif processMode == 'eachToPrevious':
                        log.debug("|{0}| >> {1} < {2}".format(
                            _str_func, o, objects[i - 1]))
                        _res = func(o, objects[i], **kws)
                    elif processMode == 'previousToEach':
                        _res = func(objects[i], o, **kws)
                    if _res: print("|{0}| >> {1}".format(_str_func, _res))

                except Exception, err:
                    log.error(
                        "|{0}| >> {1} : {2} failed! | processMode:{4} | err: {3}"
                        .format(_str_func, i, o, err, processMode))
Exemplo n.º 36
0
def raySnap_start(targets=[], create=None, drag=False, snap=True, aim=False):

    _str_func = 'raySnap_start'
    _toSnap = False
    _toAim = False
    if not targets:
        targets = mc.ls(sl=True)

    if snap:
        if not create or create == 'duplicate':
            #targets = mc.ls(sl=True)#...to use g to do again?...
            _toSnap = targets

            log.debug("|{0}| | targets: {1}".format(_str_func, _toSnap))
            if not _toSnap:
                if create == 'duplicate':
                    log.error(
                        "|{0}| >> Must have targets to duplicate!".format(
                            _str_func))
                return

    if aim:
        _toAim = targets

    var_rayCastMode = cgmMeta.cgmOptionVar('cgmVar_rayCastMode',
                                           defaultValue=0)
    var_rayCastOffsetMode = cgmMeta.cgmOptionVar('cgmVar_rayCastOffsetMode',
                                                 defaultValue=0)
    var_rayCastOffsetDist = cgmMeta.cgmOptionVar('cgmVar_rayCastOffsetDist',
                                                 defaultValue=1.0)
    var_rayCastTargetsBuffer = cgmMeta.cgmOptionVar(
        'cgmVar_rayCastTargetsBuffer', defaultValue=[''])
    var_rayCastOrientMode = cgmMeta.cgmOptionVar('cgmVar_rayCastOrientMode',
                                                 defaultValue=0)
    var_objDefaultAimAxis = cgmMeta.cgmOptionVar('cgmVar_objDefaultAimAxis',
                                                 defaultValue=2)
    var_objDefaultUpAxis = cgmMeta.cgmOptionVar('cgmVar_objDefaultUpAxis',
                                                defaultValue=1)
    var_objDefaultOutAxis = cgmMeta.cgmOptionVar('cgmVar_objDefaultOutAxis',
                                                 defaultValue=0)
    var_rayCastDragInterval = cgmMeta.cgmOptionVar(
        'cgmVar_rayCastDragInterval', defaultValue=.2)
    var_aimMode = cgmMeta.cgmOptionVar('cgmVar_aimMode', defaultValue='world')

    _rayCastMode = var_rayCastMode.value
    _rayCastOffsetMode = var_rayCastOffsetMode.value
    _rayCastTargetsBuffer = var_rayCastTargetsBuffer.value
    _rayCastOrientMode = var_rayCastOrientMode.value
    _objDefaultAimAxis = var_objDefaultAimAxis.value
    _objDefaultUpAxis = var_objDefaultUpAxis.value
    _objDefaultOutAxis = var_objDefaultOutAxis.value
    _rayCastDragInterval = var_rayCastDragInterval.value

    log.debug("|{0}| >> Mode: {1}".format(_str_func, _rayCastMode))
    log.debug("|{0}| >> offsetMode: {1}".format(_str_func, _rayCastOffsetMode))

    kws = {
        'mode': 'surface',
        'mesh': None,
        'closestOnly': True,
        'create': 'locator',
        'dragStore': False,
        'orientMode': None,
        'objAimAxis': SHARED._l_axis_by_string[_objDefaultAimAxis],
        'objUpAxis': SHARED._l_axis_by_string[_objDefaultUpAxis],
        'objOutAxis': SHARED._l_axis_by_string[_objDefaultOutAxis],
        'aimMode': var_aimMode.value,
        'timeDelay': .1,
        'offsetMode': None,
        'dragInterval': _rayCastDragInterval,
        'offsetDistance': var_rayCastOffsetDist.value
    }  #var_rayCastOffsetDist.value

    if _rayCastTargetsBuffer:
        log.debug("|{0}| >> Casting at buffer {1}".format(
            _str_func, _rayCastMode))
        kws['mesh'] = _rayCastTargetsBuffer

    if _toSnap:
        kws['toSnap'] = _toSnap
    elif create:
        kws['create'] = create

    if _toAim:
        kws['toAim'] = _toAim

    if _rayCastOrientMode == 1:
        kws['orientMode'] = 'normal'

    if create == 'duplicate':
        kws['toDuplicate'] = _toSnap
        if _toSnap:
            kws['toSnap'] = False
        else:
            log.error("|{0}| >> Must have target with duplicate mode!".format(
                _str_func))
            cgmGEN.log_info_dict(kws, "RayCast args")
            return

    if drag:
        kws['dragStore'] = drag

    if _rayCastMode == 1:
        kws['mode'] = 'midPoint'
    elif _rayCastMode == 2:
        kws['mode'] = 'far'
    elif _rayCastMode == 3:
        kws['mode'] = 'surface'
        kws['closestOnly'] = False
    elif _rayCastMode == 4:
        kws['mode'] = 'planeX'
    elif _rayCastMode == 5:
        kws['mode'] = 'planeY'
    elif _rayCastMode == 6:
        kws['mode'] = 'planeZ'
    elif _rayCastMode != 0:
        log.warning("|{0}| >> Unknown rayCast mode: {1}!".format(
            _str_func, _rayCastMode))

    if _rayCastOffsetMode == 1:
        kws['offsetMode'] = 'distance'
    elif _rayCastOffsetMode == 2:
        kws['offsetMode'] = 'snapCast'
    elif _rayCastOffsetMode != 0:
        log.warning("|{0}| >> Unknown rayCast offset mode: {1}!".format(
            _str_func, _rayCastOffsetMode))
    cgmGEN.log_info_dict(kws, "RayCast args")

    cgmDrag.clickMesh(**kws)
    return
Exemplo n.º 37
0
import cgm.core.classes.GuiFactory as cgmUI
from cgm.core.lib import name_utils as NAMES
from cgm.core.lib import distance_utils as DIST
import cgm.core.lib.transform_utils as TRANS
import cgm.core.lib.rigging_utils as CORERIG
import cgm.core.lib.math_utils as COREMATH
reload(RAYS)
reload(cgmUI)
reload(MMCONTEXT)
mUI = cgmUI.mUI

_2016 = False
if cgmGEN.__mayaVersion__ >= 2016:
    _2016 = True

var_aimMode = cgmMeta.cgmOptionVar('cgmVar_aimMode', defaultValue='world')
var_snapPivotMode = cgmMeta.cgmOptionVar('cgmVar_snapPivotMode',
                                         defaultValue=0)
var_objDefaultAimAxis = cgmMeta.cgmOptionVar('cgmVar_objDefaultAimAxis',
                                             defaultValue=2)
var_objDefaultUpAxis = cgmMeta.cgmOptionVar('cgmVar_objDefaultUpAxis',
                                            defaultValue=1)

#var_resetMode = cgmMeta.cgmOptionVar('cgmVar_ChannelResetMode', defaultValue = 0)
#var_rayCastOrientMode = cgmMeta.cgmOptionVar('cgmVar_rayCastOrientMode', defaultValue = 0)
#var_rayCastDragInterval = cgmMeta.cgmOptionVar('cgmVar_rayCastDragInterval', defaultValue = .2)

#var_objDefaultOutAxis = cgmMeta.cgmOptionVar('cgmVar_objDefaultOutAxis', defaultValue = 3)
#var_rayCastTargetsBuffer = cgmMeta.cgmOptionVar('cgmVar_rayCastTargetsBuffer',defaultValue = [''])
#var_contextTD = cgmMeta.cgmOptionVar('cgmVar_contextTD', defaultValue = 'selection')
"""self.create_guiOptionVar('snapPivotMode', defaultValue = 0)
Exemplo n.º 38
0
def create_Scene_batchFile(dat=[],
                           batchFile=None,
                           process=True,
                           postProcesses=True,
                           deleteAfterProcess=False):

    _str_func = 'create_Scene_batchFile'
    cgmGEN.log_start(_str_func)

    if batchFile is None:
        var_project = cgmMeta.cgmOptionVar('cgmVar_projectCurrent',
                                           defaultValue='')

        mProject = PROJECT.data(filepath=var_project.value)

        d_paths = mProject.userPaths_get()

        mPath_root = PATHS.Path(d_paths['root'])
        if mPath_root.exists():
            log.debug('Root | : {0}'.format(mPath_root.asFriendly()))

        else:
            log.debug('Root | Invalid Path: {0}'.format(mPath_root))

        mPath_content = PATHS.Path(d_paths['content'])
        if os.path.exists(mPath_content):
            log.debug('Root | : {0}'.format(mPath_content))
        else:
            log.debug('Root | Invalid Path: {0}'.format(mPath_content))

        _batchPath = os.path.join(mPath_root.asFriendly(), 'mrsScene_batch.py')

    log.debug("batchFile : {0}".format(_batchPath))

    l_pre = [
        'import maya', 'from maya import standalone',
        'standalone.initialize()', 'from cgm.core.mrs import Scene',
        'import maya.mel as mel', 'from maya.api import OpenMaya as om2',
        'om2.MGlobal.displayInfo("Begin")', 'import maya.cmds as mc',
        'mc.loadPlugin("fbxmaya")',
        'mc.workspace("{0}",openWorkspace=1)'.format(mPath_content),
        'import cgm.core.mrs.lib.batch_utils as MRSBATCH', ''
    ]

    l_post = [
        'except Exception,err:', '    print err',
        '    import msvcrt#...waits for key',
        '    om2.MGlobal.displayInfo("Hit a key to continue")',
        '    msvcrt.getch()', '', 'om2.MGlobal.displayInfo("End")',
        'standalone.uninitialize()'
    ]

    log.debug(cgmGEN.logString_sub(_str_func, "Checks ..."))

    l_paths = []
    l_dirs = []
    #l_check = VALID.listArg(f)
    l_mFiles = []
    l_batch = []

    #if not l_check:
    #log.debug(cgmGEN.logString_msg(_str_func,"No file passed. Using current"))
    #l_check = [mc.file(q=True, sn=True)]

    _dat = ['dat = [']

    for d2 in dat:
        _dat.append('{')
        for k, d in d2.iteritems():
            if k == 'objs':
                if d:
                    _l_tmp = ','.join("'{0}'".format(o) for o in d)
                    _dat.append('"{0}" : [{1}],'.format(k, _l_tmp))
                else:
                    _dat.append("'objs' : [ ],")
            elif 'Path' in k:
                _l_tmp = ','.join("'{0}'".format(o) for o in d)
                _dat.append('"{0}" : [{1}],'.format(k, _l_tmp))
            else:
                _dat.append('"{0}" : "{1}",'.format(k, d))
        _dat.append('},')
    _dat.append(']')

    mTar = PATHS.Path(_batchPath)
    _l = "try:Scene.BatchExport(dat)"

    #_l = "try:MRSBATCH.process_blocks_rig('{0}',postProcesses = {1})".format(mFile.asString(),postProcesses)

    if mTar.getWritable():
        if mTar.exists():
            os.remove(mTar)

        log.warning("Writing file: {0}".format(_batchPath))

        with open(_batchPath, 'a') as TMP:
            for l in l_pre + _dat + [_l] + l_post:
                TMP.write('{0}\n'.format(l))

        l_batch.append(mTar)

    else:
        log.warning("Not writable: {0}".format(_batchPath))

    if process:
        log.debug(cgmGEN.logString_sub(_str_func, "Processing ..."))
        log.warning("Processing file: {0}".format(mTar.asFriendly()))
        #subprocess.call([sys.argv[0].replace("maya.exe","mayapy.exe"),f.asFriendly()])
        subprocess.Popen(
            [
                sys.argv[0].replace("maya.exe", "mayapy.exe"), '-i',
                mTar.asFriendly()
            ],
            creationflags=subprocess.CREATE_NEW_CONSOLE)  # env=my_env

        if deleteAfterProcess:
            os.remove(f)

    return
    for f in l_check:
        mFile = PATHS.Path(f)
        if not mFile.exists():
            log.error("Invalid file: {0}".format(f))
            continue

        log.debug(cgmGEN.logString_sub(_str_func))

        _path = mFile.asFriendly()
        l_paths.append(_path)
        _name = mFile.name()

        _d = mFile.up().asFriendly()
        log.debug(cgmGEN.logString_msg(_str_func, _name))
        _batchPath = os.path.join(_d, _name + '_batch.py')
        log.debug(cgmGEN.logString_msg(_str_func, "batchPath: " + _batchPath))
        log.debug(cgmGEN.logString_msg(_str_func, "template: " + _path))

        mTar = PATHS.Path(_batchPath)
        _l = "try:MRSBATCH.process_blocks_rig('{0}',postProcesses = {1})".format(
            mFile.asString(), postProcesses)

        if mTar.getWritable():
            if mTar.exists():
                os.remove(mTar)

            log.warning("Writing file: {0}".format(_batchPath))

            with open(_batchPath, 'a') as TMP:
                for l in l_pre + [_l] + l_post:
                    TMP.write('{0}\n'.format(l))

            l_batch.append(mTar)

        else:
            log.warning("Not writable: {0}".format(_batchPath))

    if process:
        log.debug(cgmGEN.logString_sub(_str_func, "Processing ..."))
        for f in l_batch:
            log.warning("Processing file: {0}".format(f.asFriendly()))
            #subprocess.call([sys.argv[0].replace("maya.exe","mayapy.exe"),f.asFriendly()])
            subprocess.Popen(
                [
                    sys.argv[0].replace("maya.exe", "mayapy.exe"), '-i',
                    f.asFriendly()
                ],
                creationflags=subprocess.CREATE_NEW_CONSOLE)  # env=my_env

            if deleteAfterProcess:
                os.remove(f)
Exemplo n.º 39
0
	def children_mirrorPull(self,module):
	    _str_funcName = "%s.children_mirror"%puppetKeyMarkingMenu._str_funcName
	    log.debug(">>> %s "%(_str_funcName) + "="*75)  
	    
	    l_slBuffer = mc.ls(sl=True) or []		    	    	    	    	    	    	    	    	    
	    try:module.mirrorPull()
	    except Exception,error:
		log.error("%s >> obj: '%s' | error: %s"%(_str_funcName,module.p_nameShort,error))
		
	    for mMod in module.get_allModuleChildren():
		try:mMod.mirrorPull()
		except Exception,error:
		    log.error("%s >> obj: '%s' | error: %s"%(_str_funcName,mMod.p_nameShort,error))
	    if l_slBuffer:mc.select(l_slBuffer)		    	    
	
	IsClickedOptionVar = cgmMeta.cgmOptionVar('cgmVar_IsClicked',value = 0)
	IsClickedOptionVar.value = 1
	

	#>>>> Sel check
	#====================================================================
	int_maxObjects = 5	
	
	l_selected = mc.ls(sl=True) or []
	if len(l_selected) <= int_maxObjects:self._l_selected = l_selected
	else:self._l_selected = l_selected[:5]
	
	self.ml_objList = cgmMeta.validateObjListArg(self._l_selected,cgmMeta.cgmObject,True)
	log.debug("ml_objList: %s"%self.ml_objList)	    	

	self.ml_modules = []
Exemplo n.º 40
0
 def create_cgmDebugOptionVar(self,*args,**kws):
     fullName = "cgmVar_guiDebug"
     self.__dict__['var_DebugMode'] = cgmMeta.cgmOptionVar(varName = fullName, *args,**kws)
     if fullName not in self.l_optionVars:
         self.l_optionVars.append(fullName)
Exemplo n.º 41
0
	def createUI(self,parent):
		"""
		Create the UI
		"""		
		def buttonAction(command):
			"""
			execute a command and let the menu know not do do the default button action but just kill the ui
			"""			
			killUI()
			mmActionOptionVar.value = 1			
			command
			
		
		self.LocinatorUpdateObjectsBufferOptionVar = cgmMeta.cgmOptionVar('cgmVar_LocinatorUpdateObjectsBuffer',defaultValue = [''])
		IsClickedOptionVar = cgmMeta.cgmOptionVar('cgmVar_IsClicked', 'int')
		mmActionOptionVar = cgmMeta.cgmOptionVar('cgmVar_mmAction', 'int')
		
		self.SnapModeOptionVar.update()#Check if another tool has changed this setting
		
		_sel = mc.ls(sl=True)
		selPair = search.checkSelectionLength(2)
		_selecCheck = len(_sel)
		IsClickedOptionVar.value = 1
		
		mc.menu(parent,e = True, deleteAllItems = True)
		mUI.MelMenuItem(parent,
		            en = selPair,
		            l = 'Point Snap',
		            c = lambda *a:buttonAction(tdToolsLib.doPointSnap()),
		            rp = 'NW')		            
		mUI.MelMenuItem(parent,
		            en = selPair,
		            l = 'Parent Snap',
		            c = lambda *a:buttonAction(tdToolsLib.doParentSnap()),
		            rp = 'N')	
		mUI.MelMenuItem(parent,
		            en = selPair,
		            l = 'Orient Snap',
		            c = lambda *a:buttonAction(tdToolsLib.doOrientSnap()),
		            rp = 'NE')	
		
		mUI.MelMenuItem(parent,
		            en = selPair,
		            l = 'Surface Snap',
		            c = lambda *a:buttonAction(tdToolsLib.doSnapClosestPointToSurface(False)),
		            rp = 'W')
		
		if self.LocinatorUpdateObjectsOptionVar.value:
			ShowMatch = False
			if self.LocinatorUpdateObjectsBufferOptionVar.value:
				ShowMatch = True
			mUI.MelMenuItem(parent,
				        en = ShowMatch,
				        l = 'Buffer Snap',
				        c = lambda *a:buttonAction(locinatorLib.doUpdateLoc(self,True)),
				        rp = 'S')					
		else:
			ShowMatch = search.matchObjectCheck()			
			mUI.MelMenuItem(parent,
				        en = ShowMatch,
				        l = 'Match Snap',
				        c = lambda *a:buttonAction(locinatorLib.doUpdateSelectedObjects(self)),
				        rp = 'S')	
			
		mUI.MelMenuItem(parent,
	                en = _selecCheck,
	                l = 'RayCast',
	                #c = mUI.Callback(buttonAction,raySnap_start(_sel)),		            
	                c = lambda *a:buttonAction(raySnap_start(_sel)),
	                rp = 'SW')				
		mUI.MelMenuItem(parent,
		            en = 0,
		            l = 'Mirror',
		            c = lambda *a:buttonAction(locinatorLib.doUpdateObj(self,True)),
		            rp = 'SE')			
		
		mUI.MelMenuItemDiv(parent)
		mUI.MelMenuItem(parent,l = 'Loc Me',
	                c = lambda *a: buttonAction(locinatorLib.doLocMe(self)))
		mUI.MelMenuItem(parent, l = 'Tag Loc to Object',en = selPair,
	                c = lambda *a: buttonAction(locinatorLib.doTagObjects(self)))
		# Update Mode
		UpdateMenu = mUI.MelMenuItem(parent, l='Update Mode', subMenu=True)
		UpdateMenuCollection = mUI.MelRadioMenuCollection()

		if self.LocinatorUpdateObjectsOptionVar.value == 0:
			slMode = True
			bufferMode = False
		else:
			slMode = False
			bufferMode = True

		UpdateMenuCollection.createButton(UpdateMenu,l='Selected',
				                             c=lambda *a: self.LocinatorUpdateObjectsOptionVar.setValue(0),
				                             rb=slMode )
		UpdateMenuCollection.createButton(UpdateMenu,l='Buffer',
				                             c=lambda *a:self.LocinatorUpdateObjectsOptionVar.setValue(1),
				                             rb=bufferMode )
		#>>>Match Mode
		self.MatchModeOptions = ['parent','point','orient']
		
		self.MatchModeCollection = mUI.MelRadioMenuCollection()
		self.MatchModeCollectionChoices = []
					
		MatchModeMenu = mUI.MelMenuItem( parent, l='Match Mode', subMenu=True)
		self.matchMode = self.SnapModeOptionVar.value
		for c,item in enumerate(self.MatchModeOptions):
			if self.matchMode == c:
				rbValue = True
			else:
				rbValue = False
			self.MatchModeCollectionChoices.append(self.MatchModeCollection.createButton(MatchModeMenu,label=item,
			                                                                             rb = rbValue,
			                                                                             command = mUI.Callback(self.SnapModeOptionVar.setValue,c)))
		#>>> Define
		DefineMenu = mUI.MelMenuItem( parent, l='Buffer', subMenu=True)
		mUI.MelMenuItem( DefineMenu, l="Define",
		             c= lambda *a: locinatorLib.defineObjBuffer(self.LocinatorUpdateObjectsBufferOptionVar))
		
		mUI.MelMenuItem( DefineMenu, l="Add Selected",
		             c= lambda *a: locinatorLib.addSelectedToObjBuffer(self.LocinatorUpdateObjectsBufferOptionVar))
		
		mUI.MelMenuItem( DefineMenu, l="Remove Selected",
		             c= lambda *a: locinatorLib.removeSelectedFromObjBuffer(self.LocinatorUpdateObjectsBufferOptionVar))
		
		mUI.MelMenuItemDiv( DefineMenu )
		mUI.MelMenuItem( DefineMenu, l="Select Members",
				     c= lambda *a: locinatorLib.selectObjBufferMembers(self.LocinatorUpdateObjectsBufferOptionVar))
		mUI.MelMenuItem( DefineMenu, l="Clear",
		             c= lambda *a: locinatorLib.clearObjBuffer(self.LocinatorUpdateObjectsBufferOptionVar))
				
		try:#>>> Sym Axis....
			_str_section = 'Ray Cast menu'
		
			uiMenu_rayCast = mUI.MelMenuItem( parent, l='Ray Cast Mode', subMenu=True)
			var_RayCastMode = cgmMeta.cgmOptionVar('cgmVar_SnapMenuRayCastMode', defaultValue=0)
			
			self.uiRC_RayCast = mUI.MelRadioMenuCollection()
			self.uiOptions_RayCast = []		
			_v = var_RayCastMode.value
			_modes = cgmDrag._clickMesh_modes
			for i,item in enumerate(_modes):
				if i == _v:
					_rb = True
				else:_rb = False
				self.uiOptions_RayCast.append(self.uiRC_RayCast.createButton(uiMenu_rayCast,label=item,
				                                                             c = mUI.Callback(var_RayCastMode.setValue,i),
				                                                             rb = _rb))   
		except Exception,err:
			log.error("{0} failed to load. err: {1}".format(_str_section,err))		
Exemplo n.º 42
0
        def children_mirrorPull(self,module):
            _str_funcName = "%s.children_mirror"%puppetKeyMarkingMenu._str_funcName
            log.debug(">>> %s "%(_str_funcName) + "="*75)  

            l_slBuffer = mc.ls(sl=True) or []		    	    	    	    	    	    	    	    	    
            try:module.mirrorPull()
            except Exception,error:
                log.error("%s >> obj: '%s' | error: %s"%(_str_funcName,module.p_nameShort,error))

            for mMod in module.get_allModuleChildren():
                try:mMod.mirrorPull()
                except Exception,error:
                    log.error("%s >> obj: '%s' | error: %s"%(_str_funcName,mMod.p_nameShort,error))
            if l_slBuffer:mc.select(l_slBuffer)		    	    

        IsClickedOptionVar = cgmMeta.cgmOptionVar('cgmVar_IsClicked',value = 0)
        IsClickedOptionVar.value = 1


        #>>>> Sel check
        #====================================================================
        int_maxObjects = 5	

        l_selected = mc.ls(sl=True) or []
        if len(l_selected) <= int_maxObjects:self._l_selected = l_selected
        else:self._l_selected = l_selected[:5]

        self.ml_objList = cgmMeta.validateObjListArg(self._l_selected,cgmMeta.cgmObject,True)
        log.debug("ml_objList: %s"%self.ml_objList)	    	

        self.ml_modules = []