Пример #1
0
def rig_connectAll(self, mode='connect', progressBar=None, progressEnd=True):
    """
    Connect/disconnect the whole puppet
    """
    _str_func = ' rig_connectAll'.format(self)
    log.debug("|{0}| >> ... [{1}]".format(_str_func, self) + '-' * 80)

    ml_modules = modules_get(self)

    ml_modules = modules_get(self)
    if progressBar:
        int_lenModules = len(ml_modules)
        cgmUI.progressBar_start(progressBar, int_lenModules + 2)

    _d_modeToCall = {'connect': 'rig_connect', 'disconnect': 'rig_disconnect'}
    if not _d_modeToCall.get(mode):
        raise ValueError, "Unknown mode: {0}".format(mode)
    for i, mModule in enumerate([self] + ml_modules):
        if progressBar:
            cgmUI.progressBar_set(progressBar,
                                  status=mModule.p_nameShort,
                                  progress=i,
                                  vis=True)

        try:
            mModule.atUtils(_d_modeToCall.get(mode))
        except Exception, err:
            log.error("{0} | {1}".format(mModule, err))
Пример #2
0
def add_connection_row(self, parent, connection, label, connectionInfo):
    # Add Connection
    #
    _row = mUI.MelHSingleStretchLayout(parent,ut='cgmUISubTemplate',padding = 5)

    mUI.MelSpacer(_row,w=_padding)
    mUI.MelLabel(_row,l='Target:')

    conLabel = mUI.MelLabel(_row,ut='cgmUIInstructionsTemplate',l=label,en=False)

    _row.setStretchWidget( conLabel )

    mUI.MelLabel(_row,l='Min:')
    ff_min = mUI.MelFloatField(_row, ut='cgmUISubTemplate', w= 50, precision = 2, v=connectionInfo['min'])

    mUI.MelLabel(_row,l='Max:')
    ff_max = mUI.MelFloatField(_row, ut='cgmUISubTemplate', w= 50, precision = 2, v=connectionInfo['max'])

    mUI.MelLabel(_row,l='Damp:')
    ff_damp = mUI.MelFloatField(_row, ut='cgmUISubTemplate', w= 50, precision = 2, v=connectionInfo['damp'])

    ff_min(edit=True, cc=cgmGEN.Callback(uiFunc_change_connection,self,connection, label, ff_min, ff_max, ff_damp))
    ff_max(edit=True, cc=cgmGEN.Callback(uiFunc_change_connection,self,connection, label, ff_min, ff_max, ff_damp))
    ff_damp(edit=True, cc=cgmGEN.Callback(uiFunc_change_connection,self,connection, label, ff_min, ff_max, ff_damp))

    cgmUI.add_Button(_row,'X',
                     cgmGEN.Callback(uiFunc_remove_connection,self,_row, connection, label),
                     "Remove connection.")  

    mUI.MelSpacer(_row,w=_padding)

    _row.layout()
def updateTemplate(i_customizationNetwork, **kws):
    assert i_customizationNetwork.mClass == 'cgmMorpheusMakerNetwork', "Not a customization Network"
    assert i_customizationNetwork.mPuppet.mClass == 'cgmMorpheusPuppet', "Puppet isn't there"

    d_customizationData = verify_customizationData(i_customizationNetwork)
    i_Morpheus = i_customizationNetwork.mPuppet

    if not d_customizationData:
        return False

    mayaMainProgressBar = gui.doStartMayaProgressBar(len(l_modulesToDoOrder))

    for moduleKey in l_modulesToDoOrder:
        if mc.progressBar(mayaMainProgressBar, query=True, isCancelled=True):
            break
        mc.progressBar(mayaMainProgressBar,
                       edit=True,
                       status="Setting:'%s'..." % (moduleKey),
                       step=1)

        i_module = i_Morpheus.getModuleFromDict(d_moduleCheck[moduleKey])
        if not i_module:
            log.warning("Cannot find Module: '%s'" % moduleKey)
            return False
        log.debug("Building: '%s'" % moduleKey)
        i_module.doSize(sizeMode='manual',
                        posList=d_customizationData.get(moduleKey))
        i_module.doTemplate(tryTemplateUpdate=True, **kws)
    gui.doEndMayaProgressBar(mayaMainProgressBar)  #Close out this progress bar
Пример #4
0
def uiFunc_make_display_line(parent, label="", text="", button=False, buttonLabel = ">>", buttonCommand=None, buttonInfo="", presetOptions=False, presetObj=None):
    _row = mUI.MelHSingleStretchLayout(parent,ut='cgmUISubTemplate',padding = _padding)        

    mUI.MelSpacer(_row,w=_padding)
    mUI.MelLabel(_row, 
                 l=label)

    uiTF = mUI.MelLabel(_row,ut='cgmUIInstructionsTemplate',l=text,
                                en=True)

    if button:
        cgmUI.add_Button(_row,buttonLabel,
                         buttonCommand,
                         buttonInfo)
    
    _row.setStretchWidget(uiTF)

    if presetOptions:
        presetMenu = mUI.MelOptionMenu(_row,useTemplate = 'cgmUITemplate')
        presetMenu.append("Load Preset")
        for a in mc.nodePreset( list=presetObj ):
            presetMenu.append(a)
        presetMenu.append("---")
        presetMenu.append("Save Preset")
        presetMenu(edit=True,
            value = "Load Preset",
            cc = cgmGEN.Callback(uiFunc_process_preset_change, presetObj, presetMenu) )
        
    mUI.MelSpacer(_row,w=_padding)

    _row.layout()

    return uiTF
Пример #5
0
def mirror_verify(self, progressBar=None, progressEnd=True):
    """
    Verify the mirror setup of the puppet modules
    """
    _str_func = ' mirror_verify'.format(self)
    log.debug("|{0}| >> ... [{1}]".format(_str_func, self) + '-' * 80)

    md_data = {}
    ml_modules = modules_get(self)

    d_runningSideIdxes = {'Centre': 0, 'Left': 0, 'Right': 0}
    ml_processed = []

    ml_modules = modules_get(self)
    int_lenModules = len(ml_modules)

    if progressBar:
        cgmUI.progressBar_start(progressBar)

    for i, mModule in enumerate(ml_modules):
        if progressBar:
            cgmUI.progressBar_set(progressBar,
                                  minValue=0,
                                  maxValue=int_lenModules + 1,
                                  progress=i,
                                  vis=True)
        try:
            mModule.UTILS.mirror_verifySetup(mModule,
                                             d_runningSideIdxes,
                                             ml_processed,
                                             progressBar=progressBar,
                                             progressEnd=False)
        except Exception, err:
            log.error("{0} | {1}".format(mModule, err))
def updateTemplate(i_customizationNetwork,**kws):  
    assert i_customizationNetwork.mClass == 'cgmMorpheusMakerNetwork', "Not a customization Network"
    assert i_customizationNetwork.mPuppet.mClass == 'cgmMorpheusPuppet',"Puppet isn't there"
    
    d_customizationData = verify_customizationData(i_customizationNetwork)
    i_Morpheus = i_customizationNetwork.mPuppet
    
    if not d_customizationData:
        return False
    
    mayaMainProgressBar = gui.doStartMayaProgressBar(len(l_modulesToDoOrder))
    
    for moduleKey in l_modulesToDoOrder:
        if mc.progressBar(mayaMainProgressBar, query=True, isCancelled=True ) :
            break
        mc.progressBar(mayaMainProgressBar, edit=True, status = "Setting:'%s'..."%(moduleKey), step=1)
        
        i_module = i_Morpheus.getModuleFromDict(d_moduleCheck[moduleKey])
        if not i_module:
            log.warning("Cannot find Module: '%s'"%moduleKey)
            return False
        log.debug("Building: '%s'"%moduleKey)
        i_module.doSize(sizeMode = 'manual',
                        posList = d_customizationData.get(moduleKey))
        i_module.doTemplate(tryTemplateUpdate = True,
                            **kws)        
    gui.doEndMayaProgressBar(mayaMainProgressBar)#Close out this progress bar    
        
Пример #7
0
def rigNodes_setAttr(self,
                     attr=None,
                     value=None,
                     progressBar=None,
                     progressEnd=True):
    """
    Verify the mirror setup of the puppet modules
    """
    _str_func = ' rigNodes_setAttr'.format(self)
    log.debug("|{0}| >> ... [{1}]".format(_str_func, self) + '-' * 80)

    md_data = {}
    ml_modules = modules_get(self)

    ml_processed = []

    ml_modules = modules_get(self)
    if progressBar:
        int_lenModules = len(ml_modules)
        cgmUI.progressBar_start(progressBar, int_lenModules + 1)

    l_dat = self.getMessage('rigNodes')

    for i, mModule in enumerate(ml_modules):
        if progressBar:
            cgmUI.progressBar_set(progressBar, progress=i, vis=True)
        try:
            l_dat.extend(mModule.rigNull.getMessage('rigNodes'))
        except Exception, err:
            log.error("{0} | {1}".format(mModule, err))
Пример #8
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() 
Пример #9
0
def loadCGMSimpleGUI(*a):
    try:

        from cgm.core.classes import GuiFactory as uiFactory
        reload(uiFactory)
        uiFactory.cgmGUI()
    except Exception, err:
        cgmGEN.cgmException(Exception, err)
Пример #10
0
        def build_layoutWrapper(self, parent):
            uiColumn_main = zooUI.MelColumnLayout(parent)
            cgmUI.add_Header('Setup Hotkey')
            cgmUI.add_TextBlock(self.mi_cgmHotkeyer._d_kws['name'])

            #>>>Modifier row ------------------------------------------------------------------------------------
            self.uiRow_Modifier = zooUI.MelHSingleStretchLayout(
                uiColumn_main, ut='cgmUISubTemplate', padding=2)
            #zooUI.MelSpacer(self.uiRow_Modifier,w=5)
            #zooUI.MelLabel(self.uiRow_Modifier, label = 'Modifier: ',align='right')
            self.uiRow_Modifier.setStretchWidget(
                zooUI.MelSeparator(self.uiRow_Modifier))
            self.uiRow_Modifier.layout()

            self.uiRadioCollection_modifier = zooUI.MelRadioCollection()
            self.uiOptions_modifier = []

            for i, item in enumerate(cgmHotkeyer._l_modifierOptions):
                self.uiOptions_modifier.append(
                    self.uiRadioCollection_modifier.createButton(
                        self.uiRow_Modifier, label=item))
            self.uiRow_Modifier.layout()
            mc.radioCollection(self.uiRadioCollection_modifier,
                               edit=True,
                               sl=self.uiOptions_modifier[0])

            #>>>Text row ------------------------------------------------------------------------------------

            uiRow_key = zooUI.MelHLayout(uiColumn_main,
                                         ut='cgmUISubTemplate',
                                         padding=15)
            self.uiText_key = zooUI.MelTextField(
                uiRow_key,
                backgroundColor=[1, 1, 1],
                h=20,
                text=self.mi_cgmHotkeyer._defaultKey,
                ut='cgmUITemplate',
                #ec = lambda *a:self._UTILS.puppet_doChangeName(self),
                annotation="Hotkey to use")
            uiRow_key.layout()

            #>>> Button row
            mc.setParent(uiColumn_main)
            cgmUI.add_LineSubBreak()
            uiRow_buttons = zooUI.MelHLayout(uiColumn_main,
                                             ut='cgmUISubTemplate',
                                             padding=5)
            cgmUI.add_Button(uiRow_buttons,
                             'Go',
                             commandText=lambda *a: self.buttonPress_go(),
                             annotationText="Set it up")
            cgmUI.add_Button(
                uiRow_buttons,
                'Reset',
                commandText=lambda *a: self.buttonPress_reset(),
                en=False,
                annotationText="Reset given key to the default maya setting")
            uiRow_buttons.layout()
Пример #11
0
    def bakeTempLocator(self, startTime=None, endTime=None):
        _str_func = 'PostBake.bakeTempLocator'

        if startTime is None:
            startTime = self.startTime
        if endTime is None:
            endTime = self.endTime

        ct = mc.currentTime(q=True)

        self._bakedLoc = cgmMeta.asMeta(LOC.create(name='bakeLoc'))
        self._bakedLoc.rotateOrder = self.obj.rotateOrder

        SNAP.matchTarget_set(self._bakedLoc.mNode, self.obj.mNode)

        _len = endTime - startTime
        _progressBar = cgmUI.doStartMayaProgressBar(_len, "Processing...")

        _obj = VALID.objString(self._bakedLoc.mNode, noneValid=False)
        _target = VALID.objString(
            self.obj.mNode, noneValid=False
        )  #ATTR.get_message(_obj, 'cgmMatchTarget','cgmMatchDat',0)

        ak = mc.autoKeyframe(q=True, state=True)
        mc.autoKeyframe(state=False)
        mc.refresh(su=True)

        completed = True

        for i in range(startTime, endTime + 1):
            mc.currentTime(i)
            SNAP.go(_obj, _target, True, True, pivot='rp')
            mc.setKeyframe(_obj, at=['translate', 'rotate'])

            if _progressBar:
                if mc.progressBar(_progressBar, query=True, isCancelled=True):
                    log.warning('Bake cancelled!')
                    completed = False
                    break

                mc.progressBar(_progressBar,
                               edit=True,
                               status=("{0} On frame {1}".format(_str_func,
                                                                 i)),
                               step=1,
                               maxValue=_len)

        mc.refresh(su=False)
        mc.autoKeyframe(state=ak)

        cgmUI.doEndMayaProgressBar(_progressBar)

        mc.currentTime(ct)

        return completed
Пример #12
0
    def buildScrollForm(self, parent, hasHeader = False, buttonArgs = [], headerText = 'Header', allowMultiSelection=True, buttonCommand=None, doubleClickCommand=None, selectCommand=None):
        main_form = mUI.MelFormLayout(parent,ut='cgmUITemplate')

        header = None
        if(hasHeader):
            header = cgmUI.add_Header(headerText, overrideUpper = True)
        
        scroll_list = mUI.MelObjectScrollList( main_form, ut='cgmUITemplate',
                                                  allowMultiSelection=allowMultiSelection, doubleClickCommand=cgmGEN.Callback(doubleClickCommand,self), selectCommand=cgmGEN.Callback(selectCommand,self) )

        buttonLayout = None
        buttons = []
        hasButton = len(buttonArgs) > 0
        if(hasButton):
            #buttonLayout = mUI.MelColumnLayout(main_form,useTemplate = 'cgmUISubTemplate')
            buttonLayout = mUI.MelHLayout(main_form,ut='cgmUISubTemplate',padding = 1,bgc=_subLineBGC)
            for btn in buttonArgs:
                button = cgmUI.add_Button(buttonLayout,btn['label'],
                             cgmGEN.Callback(btn['command'],self),
                             btn['annotation'], bgc=_buttonBGC)
                buttons.append(button)
            buttonLayout.layout()


        af = [(scroll_list,"left",0), (scroll_list,"right",0)]
        ac = []
        attachNone = []

        if(hasHeader):
            af += [ (header,"top",0),
                    (header,"left",0),
                    (header,"right",0) ]
            ac += [(scroll_list,"top",0,header)]
            attachNone += [(header,"bottom")]
        else:
            af += [ (scroll_list,"top",0) ]

        if(hasButton):
            af += [ (buttonLayout,"bottom",0),
                    (buttonLayout,"left",0),
                    (buttonLayout,"right",0)]
            ac += [(scroll_list,"bottom",0,buttonLayout)]
            attachNone += [(buttonLayout,"top")]
        else:
            af += [ (scroll_list,"bottom",0) ]

        main_form(edit=True, af = af,
                                ac = ac,
                                attachNone = attachNone)
        
        return [main_form, scroll_list, header, buttons]
Пример #13
0
def buildRow_commitButtons(self, parent):
    #>>>Match mode -------------------------------------------------------------------------------------
    _row = mUI.MelHLayout(parent, ut='cgmUISubTemplate', padding=5)

    cgmUI.add_Button(_row, 'Check for updates', lambda *a:
                     (self.uiFunc_checkForUpdates()),
                     "Check your last branch pull for updates")
    cgmUI.add_Button(
        _row,
        'Get Selected',
        lambda *a: (self.uiFunc_updateMyStuff()),
    )
    _row.layout()
    return _row
Пример #14
0
    def build_layoutWrapper(self, parent):
        _str_func = 'build_layoutWrapper'
        #self._d_uiCheckBoxes = {}

        #_MainForm = mUI.MelFormLayout(parent,ut='cgmUISubTemplate')
        _MainForm = mUI.MelFormLayout(self, ut='cgmUITemplate')
        _column = buildColumn_main(self, _MainForm, False)

        self.uiScroll_commits = mUI.MelScrollLayout(_MainForm,
                                                    bgc=[.5, .5, .5])
        #for v in range(50):
        #mUI.MelLabel(self.uiFrame_commits, l=v)
        self.uiUpdate_commits()

        _row_buttons = buildRow_commitButtons(self, _MainForm)
        _row_cgm = cgmUI.add_cgmFooter(_MainForm)

        _MainForm(edit=True,
                  af=[
                      (_column, "top", 0),
                      (_column, "left", 0),
                      (_column, "right", 0),
                      (_row_buttons, "left", 0),
                      (_row_buttons, "right", 0),
                      (self.uiScroll_commits, "left", 0),
                      (self.uiScroll_commits, "right", 0),
                      (_row_cgm, "left", 0),
                      (_row_cgm, "right", 0),
                      (_row_cgm, "bottom", 0),
                  ],
                  ac=[(self.uiScroll_commits, "top", 2, _column),
                      (self.uiScroll_commits, "bottom", 5, _row_buttons),
                      (_row_buttons, "bottom", 2, _row_cgm)],
                  attachNone=[(_row_buttons, "top")])
Пример #15
0
def uiFunc_create_selection_list(parent, items):
    itemList = cgmUI.cgmScrollList(parent, numberOfRows=4, height=75)
    itemList.setItems(items)
    itemList(edit=True,
             selectCommand=cgmGEN.Callback(uiFunc_select_list_item, itemList))

    return itemList
Пример #16
0
 def build_layoutWrapper(self,parent):
     MainForm = zooUI.MelColumnLayout(parent)
     SetHeader = cgmUI.add_Header('HI')
     #self.l_helpElements.extend(add_InstructionBlock(MainForm,"Purge all traces of cgmThinga tools from the object and so and so forth forever, amen.",vis = self.var_ShowHelp.value))        
     cgmUI.add_Button(MainForm)
     cgmUI.add_Button(MainForm,'Debug test', lambda *a: self.do_DebugEchoTest())
     cgmUI.add_MelLabel(MainForm,'asdfasdfasdf')
Пример #17
0
 def build_layoutWrapper(self,parent):
     MainForm = zooUI.MelColumnLayout(parent)
     SetHeader = cgmUI.add_Header('HI')
     #self.l_helpElements.extend(add_InstructionBlock(MainForm,"Purge all traces of cgmThinga tools from the object and so and so forth forever, amen.",vis = self.var_ShowHelp.value))        
     cgmUI.add_Button(MainForm)
     cgmUI.add_Button(MainForm,'Debug test', lambda *a: self.do_DebugEchoTest())
     cgmUI.add_MelLabel(MainForm,'asdfasdfasdf')
Пример #18
0
     def __init__( self,mi_cgmHotkeyer,*args,**kws):
         #Check our tool option var for debug mode to set logger level if so
         if mc.optionVar(exists = "cgmVar_guiDebug") and mc.optionVar(q="cgmVar_guiDebug"):
             log.setLevel(logging.DEBUG)	
         self.mi_cgmHotkeyer = mi_cgmHotkeyer
         self.__toolName__ = __toolName__		
         self.l_allowedDockAreas = ['right', 'left']
         self.WINDOW_NAME = cgmSimpleUI.WINDOW_NAME
         self.WINDOW_TITLE = cgmSimpleUI.WINDOW_TITLE
         self.DEFAULT_SIZE = cgmSimpleUI.DEFAULT_SIZE
         
         #>>> Standard cgm variables
         #====================	    
         cgmUI.initializeTemplates() 
      
         self.build_layoutWrapper(self)
 
         self.show()
Пример #19
0
     def __init__( self,mi_cgmHotkeyer,*args,**kws):
         #Check our tool option var for debug mode to set logger level if so
         if mc.optionVar(exists = "cgmVar_guiDebug") and mc.optionVar(q="cgmVar_guiDebug"):
             log.setLevel(logging.DEBUG)	
         self.mi_cgmHotkeyer = mi_cgmHotkeyer
         self.__toolName__ = __toolName__		
         self.l_allowedDockAreas = ['right', 'left']
         self.WINDOW_NAME = cgmSimpleUI.WINDOW_NAME
         self.WINDOW_TITLE = cgmSimpleUI.WINDOW_TITLE
         self.DEFAULT_SIZE = cgmSimpleUI.DEFAULT_SIZE
         
         #>>> Standard cgm variables
         #====================	    
         cgmUI.initializeTemplates() 
      
         self.build_layoutWrapper(self)
 
         self.show()
Пример #20
0
    def uiUpdate_commits(self):
        self.uiScroll_commits.clear()
        #_d_ui_annotations = {}

        _sidePadding = 25
        _parent = self.uiScroll_commits
        _branch = self.var_branchMode.value
        _dat = cgmUpdate.get_dat(_branch, _commit_limit, True)

        uiRC = mUI.MelRadioCollection()
        self.uiRC_commits = uiRC
        self.dat_commits = _dat

        for i, d in enumerate(_dat):
            _hash = d['hash']
            _msg = d['msg']
            _date = d['date']
            _url = d['url']

            _ann = '\n {0} commit {1} | {2} | {3} \n {4} \n {5}'.format(
                _branch, i, _hash, _date, _msg, _url)
            _report = '{0} | {1}'.format(_hash, _msg[:50])
            _label = "{0} - {1} | {3}...".format(i, _date, _hash[:8],
                                                 _msg[:40])
            #log.debug(_report)
            #cgmUI.mUI.MelLabel(_parent, l = _msg,
            #                   annotation = d['msg'])

            #mc.separator(parent = _parent, height = 5,
            #ut='cgmUISubTemplate'
            #             )
            cgmUI.mUI.MelSpacer(_parent, h=5)
            uiRC.createButton(
                _parent,
                label=_label,
                annotation=_ann,
                onCommand=cgmGEN.Callback(log.info, _ann),
                #ut='cgmUIHeader',
                #onCommand = lambda*a:(log.info("{0} | {1} | {2}".format(uiRC.getSelectedIndex(), _branch, self.dat_commits[uiRC.getSelectedIndex()]['hash'])))
                #sl=_rb,
                #onCommand = cgmGEN.Callback(_var.setValue,i)
            )
            mc.setParent(_parent)
            cgmUI.add_LineSubBreak()
def setState(i_customizationNetwork, state=False, **kws):
    """"
    Returns a defined Morpheus asset
    
    What is a morpheus asset
    """
    assert i_customizationNetwork.mClass == 'cgmMorpheusMakerNetwork', "Not a customization Network"
    assert i_customizationNetwork.mPuppet.mClass == 'cgmMorpheusPuppet', "Puppet isn't there"

    #>>>Kw defaults
    rebuildFrom = kws.get('rebuildFrom') or None
    forceNew = kws.get('forceNew') or False
    tryTemplateUpdate = kws.get('tryTemplateUpdate') or True
    loadTemplatePose = kws.get('loadTemplatePose') or True

    i_Morpheus = i_customizationNetwork.mPuppet
    d_customizationData = verify_customizationData(i_customizationNetwork)

    if not d_customizationData:
        return False

    mayaMainProgressBar = gui.doStartMayaProgressBar(len(l_modulesToDoOrder))

    for moduleKey in l_modulesToDoOrder:
        if mc.progressBar(mayaMainProgressBar, query=True, isCancelled=True):
            break
        mc.progressBar(mayaMainProgressBar,
                       edit=True,
                       status="Setting:'%s'..." % (moduleKey),
                       step=1)

        i_module = i_Morpheus.getModuleFromDict(d_moduleCheck[moduleKey])
        if not i_module:
            log.warning("Cannot find Module: '%s'" % moduleKey)
            return False
        log.debug("Building: '%s'" % moduleKey)
        i_module.setState(state,
                          sizeMode='manual',
                          posList=d_customizationData.get(moduleKey),
                          **kws)
        #i_module.doSize('manual', posList = d_customizationData.get(moduleKey))
        #i_module.doTemplate()
    gui.doEndMayaProgressBar(mayaMainProgressBar)  #Close out this progress bar
def setState(i_customizationNetwork,state = False,
             **kws):
    """"
    Returns a defined Morpheus asset
    
    What is a morpheus asset
    """ 
    assert i_customizationNetwork.mClass == 'cgmMorpheusMakerNetwork', "Not a customization Network"
    assert i_customizationNetwork.mPuppet.mClass == 'cgmMorpheusPuppet',"Puppet isn't there"
    
    #>>>Kw defaults
    rebuildFrom = kws.get('rebuildFrom') or None
    forceNew =  kws.get('forceNew') or False
    tryTemplateUpdate = kws.get('tryTemplateUpdate') or True
    loadTemplatePose = kws.get('loadTemplatePose') or True
    
    i_Morpheus = i_customizationNetwork.mPuppet
    d_customizationData = verify_customizationData(i_customizationNetwork)
    
    if not d_customizationData:
        return False
    
    mayaMainProgressBar = gui.doStartMayaProgressBar(len(l_modulesToDoOrder))
    
    for moduleKey in l_modulesToDoOrder:
        if mc.progressBar(mayaMainProgressBar, query=True, isCancelled=True ) :
            break
        mc.progressBar(mayaMainProgressBar, edit=True, status = "Setting:'%s'..."%(moduleKey), step=1)
        
        
        i_module = i_Morpheus.getModuleFromDict(d_moduleCheck[moduleKey])
        if not i_module:
            log.warning("Cannot find Module: '%s'"%moduleKey)
            return False
        log.debug("Building: '%s'"%moduleKey)
        i_module.setState(state,
                          sizeMode = 'manual',
                          posList = d_customizationData.get(moduleKey),
                          **kws)
        #i_module.doSize('manual', posList = d_customizationData.get(moduleKey))
        #i_module.doTemplate()
    gui.doEndMayaProgressBar(mayaMainProgressBar)#Close out this progress bar    
Пример #23
0
def uiFunc_build_post_process_column(self, parentColumn):
    mc.setParent(parentColumn)
    cgmUI.add_LineSubBreak()

    # Post Process Action
    #
    _row = mUI.MelHSingleStretchLayout(parentColumn,
                                       ut='cgmUISubTemplate',
                                       padding=5)
    self._post_row_aimDirection = _row

    mUI.MelSpacer(_row, w=_padding)
    mUI.MelLabel(_row, l='Action:')

    _row.setStretchWidget(mUI.MelSeparator(_row))

    actions = ['Dragger', 'Spring', 'Trajectory Aim', 'Keys to Motion Curve']

    self.post_actionMenu = mUI.MelOptionMenu(_row,
                                             useTemplate='cgmUITemplate',
                                             changeCommand=cgmGEN.Callback(
                                                 uiFunc_setPostAction, self))
    for dir in actions:
        self.post_actionMenu.append(dir)

    self.post_actionMenu.setValue(actions[0])

    mUI.MelSpacer(_row, w=_padding)

    _row.layout()
    #
    # End Post Process Action

    # Post Process Options Frame
    #
    self._postProcessOptionsColumn = mUI.MelColumnLayout(
        parentColumn, useTemplate='cgmUISubTemplate')
    #
    # Post Process Options Frame

    uiFunc_setPostAction(self)
Пример #24
0
def uiFunc_build_controller_connection_column(self, parent, connection):
    mc.setParent(parent)
    cgmUI.add_LineSubBreak()

    # Connection Column
    #
    connectionColumn = mUI.MelColumnLayout(parent,useTemplate = 'cgmUISubTemplate')

    for label in self.connectionDict[connection]:
        add_connection_row(self, connectionColumn, connection, label, self.connectionDict[connection][label])
    #
    # End Connection Column

    _row = mUI.MelHLayout(parent,ut='cgmUISubTemplate',padding = _padding)
    
    btn = cgmUI.add_Button(_row,'Add Connection',
        cgmGEN.Callback(add_connection,self, connectionColumn, connection),                         
        #lambda *a: attrToolsLib.doAddAttributesToSelected(self),
        'Add Connection Button',h=25)

    btn = cgmUI.add_Button(_row,'Clear All',
        cgmGEN.Callback(uiFunc_clear_connections,self, connectionColumn, connection),                         
        #lambda *a: attrToolsLib.doAddAttributesToSelected(self),
        'Clear Connections Button',h=25)
    _row.layout()

    mc.setParent(parent)
    cgmUI.add_LineSubBreak()
Пример #25
0
        def build_layoutWrapper(self,parent):
            uiColumn_main = zooUI.MelColumnLayout(parent)
            cgmUI.add_Header('Setup Hotkey')
            cgmUI.add_TextBlock(self.mi_cgmHotkeyer._d_kws['name'])
            
            #>>>Modifier row ------------------------------------------------------------------------------------
            self.uiRow_Modifier = zooUI.MelHSingleStretchLayout(uiColumn_main,ut='cgmUISubTemplate',padding = 2)
            #zooUI.MelSpacer(self.uiRow_Modifier,w=5)
            #zooUI.MelLabel(self.uiRow_Modifier, label = 'Modifier: ',align='right')
            self.uiRow_Modifier.setStretchWidget( zooUI.MelSeparator(self.uiRow_Modifier) )		
            self.uiRow_Modifier.layout()

            self.uiRadioCollection_modifier = zooUI.MelRadioCollection()
            self.uiOptions_modifier = []		

            for i,item in enumerate(cgmHotkeyer._l_modifierOptions):
                self.uiOptions_modifier.append(self.uiRadioCollection_modifier.createButton(self.uiRow_Modifier,label=item))
            self.uiRow_Modifier.layout()
            mc.radioCollection(self.uiRadioCollection_modifier,edit=True, sl=self.uiOptions_modifier[0])
            
            #>>>Text row ------------------------------------------------------------------------------------
            
            
            uiRow_key = zooUI.MelHLayout(uiColumn_main,ut='cgmUISubTemplate',padding = 15)            
            self.uiText_key = zooUI.MelTextField(uiRow_key,backgroundColor = [1,1,1],h=20,
                                                 text = self.mi_cgmHotkeyer._defaultKey,
                                                 ut = 'cgmUITemplate',
                                                 #ec = lambda *a:self._UTILS.puppet_doChangeName(self),
                                                 annotation = "Hotkey to use")   
            uiRow_key.layout()
            
            #>>> Button row
            mc.setParent(uiColumn_main)
            cgmUI.add_LineSubBreak()                                             
            uiRow_buttons = zooUI.MelHLayout(uiColumn_main,ut='cgmUISubTemplate',padding = 5)  
            cgmUI.add_Button(uiRow_buttons,'Go',commandText = lambda *a:self.buttonPress_go(),
                             annotationText="Set it up")
            cgmUI.add_Button(uiRow_buttons,'Reset',commandText = lambda *a:self.buttonPress_reset(),en = False,
                                         annotationText="Reset given key to the default maya setting")   
            uiRow_buttons.layout()
Пример #26
0
def buildColumn_main(self,parent, asScroll = False):
    """
    Trying to put all this in here so it's insertable in other uis
    
    """   
    if asScroll:
        _inside = mUI.MelScrollLayout(parent,useTemplate = 'cgmUISubTemplate') 
    else:
        _inside = mUI.MelColumnLayout(parent,useTemplate = 'cgmUISubTemplate') 
    
    #>>>Objects Load Row ---------------------------------------------------------------------------------------
    _row_objLoad = mUI.MelHSingleStretchLayout(_inside,ut='cgmUITemplate',padding = 5)        

    mUI.MelSpacer(_row_objLoad,w=10)
    mUI.MelLabel(_row_objLoad, 
                 l='Source:')

    uiTF_objLoad = mUI.MelLabel(_row_objLoad,ut='cgmUITemplate',l='',
                                en=True)

    self.uiTF_objLoad = uiTF_objLoad
    cgmUI.add_Button(_row_objLoad,'<<',
                     cgmGEN.Callback(uiFunc_load_selected,self),
                     "Load first selected object.")  
    _row_objLoad.setStretchWidget(uiTF_objLoad)
    mUI.MelSpacer(_row_objLoad,w=10)
    """
    _row_objLoad.layout()

    #>>>Report ---------------------------------------------------------------------------------------
    _row_report = mUI.MelHLayout(_inside ,ut='cgmUIInstructionsTemplate',h=20)
    self.uiField_report = mUI.MelLabel(_row_report,
                                       bgc = SHARED._d_gui_state_colors.get('help'),
                                       label = '...',
                                       h=20)
    _row_report.layout() """
    _row_objLoad.layout()
    uiFunc_load_selected(self)
    return _inside
Пример #27
0
def patch_templateToForm():
    try:
        _str_func = 'patch_templateToForm'
        log.debug(cgmGEN.logString_start(_str_func))
        _l = mc.ls()
        _progressBar = CGMUI.doStartMayaProgressBar(stepMaxValue=len(_l))

        for i, o in enumerate(_l):
            _str = "{0} | {1} ".format(i, o)
            log.debug(cgmGEN.logString_sub(_str_func, _str))
            CGMUI.progressBar_set(_progressBar, step=1, status=_str)
            mObj = cgmMeta.asMeta(o)
            for a in mc.listAttr(o, ud=True) or []:
                log.debug(cgmGEN.logString_msg(_str_func, str(a)))
                if 'template' in a:
                    log.info(
                        cgmGEN.logString_msg(
                            _str_func,
                            "{0} | {1} | template in".format(_str, a)))
                    ATTR.rename(o, a, a.replace('template', 'form'))
                elif 'Template' in a:
                    log.info(
                        cgmGEN.logString_msg(
                            _str_func,
                            "{0} | {1} | Template in".format(_str, a)))
                    ATTR.rename(o, a, a.replace('Template', 'Form'))
                v = ATTR.get(o, a)
                if 'template' == str(v):
                    log.info(
                        cgmGEN.logString_msg(
                            _str_func,
                            "{0} | {1} | template value".format(_str, str(a))))
                    ATTR.set(o, a, 'form')

    except Exception, err:
        cgmGEN.cgmExceptCB(Exception, err)
Пример #28
0
def collect_worldSpaceObjects(self, progressBar=None):
    _str_func = 'collect_worldSpaceObjects'
    log.debug("|{0}| >> ...".format(_str_func) + cgmGEN._str_hardBreak)
    log.debug(self)
    ml_objs = []
    mMasterNull = self.masterNull
    mWorldSpaceObjectsGroup = mMasterNull.worldSpaceObjectsGroup
    mPuppetSpaceObjectsGroup = mMasterNull.puppetSpaceObjectsGroup

    ml_children = self.masterControl.getChildren(asMeta=1) or []
    if progressBar:
        cgmUI.progressBar_start(progressBar)
        len_children = len(ml_children)
    for i, mObj in enumerate(ml_children):
        if progressBar:
            #mc.progressBar(progressBar,edit = True,
            #               minValue = 0,
            #               maxValue=len_children,step=i, vis=True)
            cgmUI.progressBar_set(progressBar,
                                  minValue=0,
                                  maxValue=len_children + 1,
                                  progress=i,
                                  vis=True)
            time.sleep(.01)
        if mObj.getMayaAttr('cgmType') in ['dynDriver']:
            mObj.parent = mPuppetSpaceObjectsGroup
            ml_objs.append(mObj)

    ml_children = mObj in mMasterNull.getChildren(asMeta=1) or []
    if progressBar:
        len_children = len(ml_children)
    for i, mObj in enumerate(ml_children):
        if progressBar:
            cgmUI.progressBar_set(progressBar,
                                  minValue=0,
                                  maxValue=len_children + 1,
                                  progress=i,
                                  vis=True)
            time.sleep(.01)

        if mObj.getMayaAttr('cgmType') in ['dynDriver']:
            mObj.parent = mWorldSpaceObjectsGroup
            ml_objs.append(mObj)
    if progressBar: cgmUI.progressBar_end(progressBar)
    return ml_objs
Пример #29
0
    def build_layoutWrapper(self, parent):
        _str_func = 'build_layoutWrapper'
        #self._d_uiCheckBoxes = {}

        _MainForm = mUI.MelFormLayout(self, ut='cgmUITemplate')
        _column = buildColumn_main(self, _MainForm, True)

        _row_cgm = cgmUI.add_cgmFooter(_MainForm)
        _MainForm(edit=True,
                  af=[
                      (_column, "top", 0),
                      (_column, "left", 0),
                      (_column, "right", 0),
                      (_row_cgm, "left", 0),
                      (_row_cgm, "right", 0),
                      (_row_cgm, "bottom", 0),
                  ],
                  ac=[
                      (_column, "bottom", 2, _row_cgm),
                  ],
                  attachNone=[(_row_cgm, "top")])
Пример #30
0
def uiFunc_update_details(self):
    if not self._mDynFK:
        return

    self.detailsFrame.clear()

    dat = self._mDynFK.get_dat()

    self.detailsFrame(edit=True, collapse=False)

    _details = mUI.MelColumnLayout(self.detailsFrame,
                                   useTemplate='cgmUIHeaderTemplate')

    cgmUI.add_LineSubBreak()

    # Base Name
    uiFunc_make_display_line(_details,
                             label='Base Name:',
                             text=self._mDynFK.baseName,
                             button=False)

    # Direction Info
    _row = mUI.MelHSingleStretchLayout(_details,
                                       ut='cgmUISubTemplate',
                                       padding=5)

    mUI.MelSpacer(_row, w=_padding)

    mUI.MelLabel(_row, l="Direction:")

    _row.setStretchWidget(mUI.MelSeparator(_row))

    mUI.MelLabel(_row, l="Fwd:")

    uiTF = mUI.MelLabel(_row,
                        ut='cgmUISubTemplate',
                        l=self._mDynFK.fwd,
                        en=True)

    mUI.MelLabel(_row, l="Up:")

    uiTF = mUI.MelLabel(_row,
                        ut='cgmUISubTemplate',
                        l=self._mDynFK.up,
                        en=True)

    mUI.MelSpacer(_row, w=10)
    _row.layout()

    # Nucleus
    uiFunc_make_display_line(_details,
                             label='Nucleus:',
                             text=self._mDynFK.mNucleus[0],
                             button=True,
                             buttonLabel=">>",
                             buttonCommand=cgmGEN.Callback(
                                 uiFunc_select_item, self._mDynFK.mNucleus[0]),
                             buttonInfo="Select nucleus transform.",
                             presetOptions=True,
                             presetObj=self._mDynFK.mNucleus[0])

    uiFunc_make_display_line(_details,
                             label='Hair System:',
                             text=dat['mHairSysShape'].p_nameBase,
                             button=True,
                             buttonLabel=">>",
                             buttonCommand=cgmGEN.Callback(
                                 uiFunc_select_item,
                                 dat['mHairSysShape'].p_nameBase),
                             buttonInfo="Select hair system transform.",
                             presetOptions=True,
                             presetObj=dat['mHairSysShape'].p_nameBase)

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

    mUI.MelSpacer(_row, w=_padding)

    mUI.MelLabel(_row, l='Enabled:')

    _row.setStretchWidget(mUI.MelSeparator(_row))

    self.nucleusEnabledCB = mUI.MelCheckBox(_row,
                                            en=True,
                                            v=True,
                                            label='',
                                            ann='Enable Nucleus')
    self.nucleusEnabledCB(edit=True,
                          changeCommand=cgmGEN.Callback(
                              uiFunc_set_nucleus_enabled, self))

    mUI.MelSpacer(_row, w=_padding)

    _row.layout()

    # Start Times

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

    mUI.MelSpacer(_row, w=_padding)

    mUI.MelLabel(_row, l='Start Time:')

    _row.setStretchWidget(mUI.MelSeparator(_row))

    self.startTimeIF = mUI.MelIntField(_row, v=dat['mNucleus'].startFrame)
    self.startTimeIF(edit=True,
                     changeCommand=cgmGEN.Callback(uiFunc_set_start_time,
                                                   self,
                                                   mode='refresh'))

    cgmUI.add_Button(
        _row, '<<',
        cgmGEN.Callback(uiFunc_set_start_time, self, mode='beginning'),
        "Set Start To Beginning of Slider.")

    mUI.MelSpacer(_row, w=_padding)

    _row.layout()

    # TimeInput Row ----------------------------------------------------------------------------------
    _row = mUI.MelHSingleStretchLayout(_details, ut='cgmUISubTemplate')
    mUI.MelSpacer(_row, w=_padding)

    mUI.MelLabel(_row, l='Bake Time:')

    _row.setStretchWidget(mUI.MelSeparator(_row))

    mUI.MelLabel(_row, l='Start:')

    self.uiFieldInt_start = mUI.MelIntField(_row,
                                            'cgmLocWinStartFrameField',
                                            width=40)

    mUI.MelLabel(_row, l='End:')

    self.uiFieldInt_end = mUI.MelIntField(_row,
                                          'cgmLocWinEndFrameField',
                                          width=40)

    cgmUI.add_Button(_row, '<<',
                     cgmGEN.Callback(uiFunc_updateTimeRange, self, 'min'),
                     "Set Start To Beginning of Slider.")
    cgmUI.add_Button(_row, '[   ]',
                     cgmGEN.Callback(uiFunc_updateTimeRange, self, 'slider'),
                     "Set Time to Slider.")
    cgmUI.add_Button(_row, '>>',
                     cgmGEN.Callback(uiFunc_updateTimeRange, self, 'max'),
                     "Set End To End of Slider.")

    uiFunc_updateTimeRange(self, mode='slider')

    mUI.MelSpacer(_row, w=_padding)

    _row.layout()

    mc.setParent(_details)
    cgmUI.add_LineSubBreak()

    allChains = []
    for idx in dat['chains']:
        allChains += dat['chains'][idx]['mObjJointChain']
    allTargets = []
    for idx in dat['chains']:
        allTargets += dat['chains'][idx]['mTargets']

    _row = mUI.MelHLayout(_details,
                          ut='cgmUISubTemplate',
                          padding=_padding * 2)

    cgmUI.add_Button(
        _row,
        'Bake All Joints',
        cgmGEN.Callback(uiFunc_bake, self, 'chain', allChains),
        #lambda *a: attrToolsLib.doAddAttributesToSelected(self),
        'Bake All Joints')
    cgmUI.add_Button(_row, 'Bake All Targets',
                     cgmGEN.Callback(uiFunc_bake, self, 'target', allTargets),
                     'Bake All Targets')

    _row.layout()

    _row = mUI.MelHLayout(_details,
                          ut='cgmUISubTemplate',
                          padding=_padding * 2)

    cgmUI.add_Button(
        _row,
        'Connect All Targets',
        cgmGEN.Callback(uiFunc_connect_targets, self),
        #lambda *a: attrToolsLib.doAddAttributesToSelected(self),
        'Connect All Targets')
    cgmUI.add_Button(_row, 'Disconnect All Targets',
                     cgmGEN.Callback(uiFunc_disconnect_targets, self),
                     'Disconnect All Targets')

    _row.layout()

    # Chains
    for i, chain in enumerate(self._mDynFK.msgList_get('chain')):
        _row = mUI.MelHSingleStretchLayout(_details,
                                           ut='cgmUISubTemplate',
                                           padding=_padding)

        mUI.MelSpacer(_row, w=_padding)

        _subChainColumn = mUI.MelColumnLayout(
            _row, useTemplate='cgmUIHeaderTemplate')

        chainFrame = mUI.MelFrameLayout(_subChainColumn,
                                        label=chain.p_nameBase,
                                        collapsable=True,
                                        collapse=True,
                                        useTemplate='cgmUIHeaderTemplate')

        _chainColumn = mUI.MelColumnLayout(chainFrame,
                                           useTemplate='cgmUIHeaderTemplate')

        _row.setStretchWidget(_subChainColumn)

        #mUI.MelSpacer(_row,w=_padding)
        _row.layout()

        mc.setParent(_chainColumn)
        cgmUI.add_LineSubBreak()

        uiFunc_make_display_line(
            _chainColumn,
            label='Follicle:',
            text=cgmMeta.asMeta(chain.mFollicle[0]).p_nameBase,
            button=True,
            buttonLabel=">>",
            buttonCommand=cgmGEN.Callback(uiFunc_select_item,
                                          chain.mFollicle[0]),
            buttonInfo="Select follicle transform.",
            presetOptions=True,
            presetObj=chain.mFollicle[0])

        mc.setParent(_chainColumn)
        cgmUI.add_LineSubBreak()

        uiFunc_make_display_line(_chainColumn,
                                 label='Group:',
                                 text=chain.p_nameShort,
                                 button=True,
                                 buttonLabel=">>",
                                 buttonCommand=cgmGEN.Callback(
                                     uiFunc_select_item, chain.p_nameBase),
                                 buttonInfo="Select group transform.")

        mc.setParent(_chainColumn)
        cgmUI.add_LineSubBreak()

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

        mUI.MelSpacer(_row, w=_padding)
        mUI.MelLabel(_row, l='Orient Up:')

        _row.setStretchWidget(mUI.MelSeparator(_row))

        chainDirections = []
        for dir in ['x+', 'x-', 'y+', 'y-', 'z+', 'z-']:
            if chain.fwd[0] != dir[0]:
                chainDirections.append(dir)
        chainDirections.append('None')

        upMenu = mUI.MelOptionMenu(_row, useTemplate='cgmUITemplate')
        for dir in chainDirections:
            upMenu.append(dir)

        upMenu.setValue(chain.up)

        upMenu(edit=True,
               changeCommand=cgmGEN.Callback(uiFunc_set_chain_up, self, i,
                                             upMenu))

        mUI.MelSpacer(_row, w=_padding)

        _row.layout()

        _row = mUI.MelHLayout(_chainColumn,
                              ut='cgmUISubTemplate',
                              padding=_padding * 2)
        cgmUI.add_Button(
            _row,
            'Bake Joints',
            cgmGEN.Callback(uiFunc_bake, self, 'chain',
                            chain.msgList_get('mObjJointChain')),
            #lambda *a: attrToolsLib.doAddAttributesToSelected(self),
            'Bake All Joints')
        cgmUI.add_Button(
            _row, 'Bake Targets',
            cgmGEN.Callback(uiFunc_bake, self, 'target',
                            chain.msgList_get('mTargets')), 'Bake All Targets')

        _row.layout()

        _row = mUI.MelHLayout(_chainColumn,
                              ut='cgmUISubTemplate',
                              padding=_padding * 2)

        cgmUI.add_Button(
            _row,
            'Connect Targets',
            cgmGEN.Callback(uiFunc_connect_targets, self, i),
            #lambda *a: attrToolsLib.doAddAttributesToSelected(self),
            'Connect All Targets')
        cgmUI.add_Button(_row, 'Disconnect Targets',
                         cgmGEN.Callback(uiFunc_disconnect_targets, self, i),
                         'Disconnect All Targets')

        _row.layout()

        _row = mUI.MelHLayout(_chainColumn,
                              ut='cgmUISubTemplate',
                              padding=_padding * 2)
        cgmUI.add_Button(
            _row,
            'Delete Chain',
            cgmGEN.Callback(uiFunc_delete_chain, self, i),
            #lambda *a: attrToolsLib.doAddAttributesToSelected(self),
            'Bake All Joints')
        _row.layout()

        frameDat = [['Targets', 'mTargets'], ['Locators', 'mLocs'],
                    ['Joint Chain', 'mObjJointChain'], ['Aims', 'mAims'],
                    ['Parents', 'mParents']]

        for dat in frameDat:
            frame = mUI.MelFrameLayout(_chainColumn,
                                       label=dat[0],
                                       collapsable=True,
                                       collapse=True,
                                       useTemplate='cgmUIHeaderTemplate')
            column = mUI.MelColumnLayout(frame,
                                         useTemplate='cgmUITemplate',
                                         height=75)
            row = mUI.MelHSingleStretchLayout(column,
                                              ut='cgmUIHeaderTemplate',
                                              padding=_padding)

            mUI.MelSpacer(row, w=_padding)

            itemList = uiFunc_create_selection_list(
                row, [x.p_nameShort for x in chain.msgList_get(dat[1])])

            mUI.MelSpacer(row, w=_padding)

            row.setStretchWidget(itemList)

            row.layout()

    # End Chains

    mc.setParent(_details)
    cgmUI.add_LineSubBreak()
def verifyMorpheusNodeStructure(i_Morpheus):
    """"
    Returns a defined Morpheus asset
    
    What is a morpheus asset
    """
    assert i_Morpheus.mClass == 'cgmMorpheusPuppet',"Not a cgmMorpheusPuppet"
    
    def returnModuleMatch(moduleKey):
        for i_m in i_Morpheus.moduleChildren:
            matchBuffer = 0
            for key in d_moduleCheck[moduleKey].keys():
                log.debug("attr: %s"%key)
                log.debug("value: '%s"%i_m.__dict__[key])
                log.debug("checkTo: '%s'"%d_moduleCheck[moduleKey].get(key))
                if i_m.hasAttr(key) and i_m.__dict__[key] == d_moduleCheck[moduleKey].get(key):
                    matchBuffer +=1
            if matchBuffer == len(d_moduleCheck[moduleKey].keys()):
                log.debug("Found Morpheus Module: '%s'"%moduleKey)
                return i_m
        return False
 
    d_moduleInstances = {}
    
    # Create the modules
    #=====================================================================
    mayaMainProgressBar = gui.doStartMayaProgressBar(len(l_modulesToDoOrder))
    
    for moduleKey in l_modulesToDoOrder:
        if mc.progressBar(mayaMainProgressBar, query=True, isCancelled=True ) :
            break
        mc.progressBar(mayaMainProgressBar, edit=True, status = "On segment '%s'..."%(moduleKey), step=1)
        
        if moduleKey not in d_moduleParents.keys():#Make sure we have a parent
            log.info("Missing parent info for: '%s'"%moduleKey)
            return False
        if moduleKey not in d_moduleCheck.keys():#Make sure we have a parent
            log.info("Missing check info for: '%s'"%moduleKey)
            return False  

        if moduleKey in d_moduleTemplateSettings.keys():#Make sure we have settings
            d_settingsDict = d_moduleTemplateSettings[moduleKey]
        elif d_moduleCheck[moduleKey]['moduleType'] in d_moduleTemplateSettings.keys():
            d_settingsDict = d_moduleTemplateSettings[ d_moduleCheck[moduleKey]['moduleType'] ]            
        else:
            log.info("Missing limb info for: '%s'"%moduleKey)
            return False

        log.debug("Have all setup info. Checking structure...")
        if moduleKey in d_moduleInstances.keys():#if it's already stored, use it
            i_module = d_moduleInstances[moduleKey]
        else:
            i_module = i_Morpheus.getModuleFromDict(d_moduleCheck[moduleKey])#Look for it
            d_moduleInstances[moduleKey] = i_module#Store it if found
        if not i_module:
            log.info("Need to create: '%s'"%moduleKey)
            kw_direction = False
            kw_name = False
            if 'cgmDirection' in d_moduleCheck[moduleKey].keys():
                kw_direction = d_moduleCheck[moduleKey].get('cgmDirection')
            if 'cgmName' in d_moduleCheck[moduleKey].keys():
                kw_name = d_moduleCheck[moduleKey].get('cgmName')            
            i_module = i_Morpheus.addModule(mClass = 'cgmLimb',mType = d_moduleCheck[moduleKey]['moduleType'],name = kw_name, direction = kw_direction)
            d_moduleInstances[moduleKey] = i_module#Store it
            
        if i_module:i_module.__verify__()
            
        #>>> Settings
        for key in d_settingsDict.keys():
            i_templateNull = i_module.templateNull
            if i_templateNull.hasAttr(key):
                log.debug("attr: '%s'"%key)  
                log.debug("setting: '%s'"%d_settingsDict.get(key))                  
                try:i_templateNull.__setattr__(key,d_settingsDict.get(key)) 
                except:log.warning("attr failed: %s"%key)
        #>>>Parent stuff        
        if d_moduleParents.get(moduleKey):#If we should be looking for a module parent
            if d_moduleParents.get(moduleKey) in d_moduleInstances.keys():
                i_moduleParent = False
                if i_module.getMessage('moduleParent') and i_module.getMessage('moduleParent') == [d_moduleInstances[d_moduleParents[moduleKey]].mNode]:
                    i_moduleParent = None
                else:
                    i_moduleParent = d_moduleInstances[d_moduleParents.get(moduleKey)]
            else:
                i_moduleParent = i_Morpheus.getModuleFromDict(d_moduleCheck.get(d_moduleParents.get(moduleKey)))
            
            if i_moduleParent is None:
                log.info("moduleParent already connected: '%s'"%d_moduleParents.get(moduleKey))                
            elif i_moduleParent:
                i_module.doSetParentModule(i_moduleParent.mNode)
            else:
                log.info("moduleParent not found from key: '%s'"%d_moduleParents.get(moduleKey))
        
    # For each module
    #=====================================================================
    gui.doEndMayaProgressBar(mayaMainProgressBar)#Close out this progress bar    
    #i_limb.getGeneratedCoreNames()    
    return i_Morpheus
Пример #32
0
def loadCGMSimpleGUI( *a ):
    from cgm.core.classes import GuiFactory as uiFactory
    reload(uiFactory)
    uiFactory.cgmGUI()
Пример #33
0
    def doMove(self, **kws):
        if kws: log.debug("Snap.doMove>>> kws: %s" % kws)
        if len(self.l_targets) == 1:
            #>>> Check our target
            i_target = cgmMeta.cgmNode(self.l_targets[0])
            log.debug("i_target: %s" % i_target)
            targetType = i_target.getMayaType()

            if self.b_snapComponents:
                components = self.i_obj.getComponents()
                if not components:
                    raise StandardError, "This objects has no components to snap: '%s'" % self.i_obj.getShortName(
                    )
                #>>>Progress bar
                mayaMainProgressBar = gui.doStartMayaProgressBar(
                    len(components))
                for c in components:
                    if mc.progressBar(mayaMainProgressBar,
                                      query=True,
                                      isCancelled=True):
                        break
                    mc.progressBar(mayaMainProgressBar,
                                   edit=True,
                                   status=("Wrapping '%s'" % c),
                                   step=1)

                    if targetType in ['mesh', 'nurbsSurface', 'nurbsCurve']:
                        pos = distance.returnWorldSpacePosition(c)
                        targetLoc = mc.spaceLocator()
                        mc.move(pos[0], pos[1], pos[2], targetLoc[0])

                        closestLoc = locators.locClosest([targetLoc[0]],
                                                         i_target.mNode)
                        if self._posOffset:
                            self.doOrientObjToSurface(i_target.mNode,
                                                      closestLoc)
                            mc.move(self._posOffset[0],
                                    self._posOffset[1],
                                    self._posOffset[2], [closestLoc],
                                    r=True,
                                    rpr=True,
                                    os=True,
                                    wd=True)
                        position.movePointSnap(c, closestLoc)
                        mc.delete([targetLoc[0], closestLoc])

                gui.doEndMayaProgressBar(
                    mayaMainProgressBar)  #Close out this progress bar

            else:
                pos = False
                if self.b_snaptoSurface:  #>>> If our target is surface we can use
                    if targetType in ['mesh', 'nurbsCurve', 'nurbsSurface']:
                        i_locObj = self.i_obj.doLoc()  #Get our position loc
                        i_locTarget = cgmMeta.cgmObject(
                            locators.locClosest([i_locObj.mNode],
                                                i_target.mNode))  #Loc closest
                        #i_locObj.rename('objLoc')
                        #i_locTarget.rename('targetLoc')
                        if self._posOffset:
                            try:
                                self.doOrientObjToSurface(
                                    i_target.mNode, i_locTarget.mNode)
                                mc.move(self._posOffset[0],
                                        self._posOffset[1],
                                        self._posOffset[2],
                                        [i_locTarget.mNode],
                                        r=True,
                                        rpr=True,
                                        os=True,
                                        wd=True)
                            except StandardError, error:
                                log.warn("self._posOffset failure!")
                                log.error(error)

                        pos = i_locTarget.getPosition(True)
                        i_locObj.delete()
                        i_locTarget.delete()
                elif self.b_midSurfacePos:
                    log.debug("Snap.move>>> midSurfacePos mode!")
                    if targetType not in [
                            'mesh', 'nurbsCurve', 'nurbsSurface'
                    ]:
                        log.warning(
                            "Can't do midSurfacPos on targetType: '%s'" %
                            targetType)
                        return False
                    #Get the axis info
                    axisToCheck = kws.pop('axisToCheck', False)
                    if not axisToCheck:
                        axisToCheck = []
                        up = dictionary.returnVectorToString(
                            self._upVector) or False
                        if not up:
                            raise StandardError, "SnapFactory>>> must have up vector for midSurfaceSnap: %s" % self._upVector
                        for a in ['x', 'y', 'z']:
                            if a != up[0]:
                                axisToCheck.append(a)
                        if not axisToCheck:
                            raise StandardError, "SnapFactory>>> couldn't find any axis to do"
                    #i_locObj = self.i_obj.doLoc()#Get our position loc
                    #log.debug(axisToCheck)
                    pos = RayCast.findMeshMidPointFromObject(
                        i_target.mNode,
                        self.i_obj.mNode,
                        axisToCheck=axisToCheck,
                        **kws)
                    #i_locObj.delete()

                else:
                    pos = i_target.getPosition(True)
                if pos:
                    if self.i_obj.isComponent():
                        if self.b_softSelection:  #Only need to do this if soft select is on
                            mc.softSelect(softSelectEnabled=True)
                            mc.select(self.i_obj.getComponent())
                            mc.move(pos[0], pos[1], pos[2], rpr=True)
                            mc.select(cl=True)
                        else:
                            mc.move(pos[0], pos[1], pos[2],
                                    self.i_obj.getComponent())
                    else:
                        mc.move(pos[0],
                                pos[1],
                                pos[2],
                                self.i_obj.mNode,
                                rpr=True)
Пример #34
0
 # Mutli
 if int_lenObjects == 1:
     #MelMenuItem(parent,l="-- Object --",en = False)	    					
     use_parent = parent
     state_multiObject = False
 else:
     #MelMenuItem(parent,l="-- Objects --",en = False)	    			
     iSubM_objects = mUI.MelMenuItem(parent,l="Objects(%s)"%(int_lenObjects),subMenu = True)
     use_parent = iSubM_objects
     state_multiObject = True		
     if l_commonAttrs and [d_commonOptions.get(a) for a in l_commonAttrs]:
         for atr in d_commonOptions.keys():
             tmpMenu = mUI.MelMenuItem( parent, l="multi Change %s"%atr, subMenu=True)
             for i,o in enumerate(d_commonOptions.get(atr)):
                 MelMenuItem(tmpMenu,l = "%s"%o,
                             c = cgmUI.Callback(func_multiChangeDynParent,atr,o))
 # Individual ----------------------------------------------------------------------------
 log.debug("%s"%[k.getShortName() for k in self.d_objectsInfo.keys()])
 for i_o in self.d_objectsInfo.keys():
     d_buffer = self.d_objectsInfo.get(i_o) or False
     if d_buffer:
         if state_multiObject:
             iTmpObjectSub = mUI.MelMenuItem(use_parent,l=" %s  "%i_o.getBaseName(),subMenu = True)
         else:
             mUI.MelMenuItem(parent,l="-- %s --"%i_o.getShortName(),en = False)
             iTmpObjectSub = use_parent
         if d_buffer.get('dynParent'):
             mi_dynParent = d_buffer['dynParent'].get('mi_dynParent')
             d_attrOptions = d_buffer['dynParent'].get('attrOptions') or {}			
             for a in d_attrOptions.keys():
                 if i_o.hasAttr(a):
Пример #35
0
            _str = "{0} | {1} ".format(i, o)
            log.debug(cgmGEN.logString_sub(_str_func, _str))
            CGMUI.progressBar_set(_progressBar, step=1, status=_str)
            mObj = cgmMeta.asMeta(o)
            for a in mc.listAttr(o, ud=True) or []:
                log.debug(cgmGEN.logString_msg(_str_func, str(a)))
                if 'template' in a:
                    log.info(
                        cgmGEN.logString_msg(
                            _str_func,
                            "{0} | {1} | template in".format(_str, a)))
                    ATTR.rename(o, a, a.replace('template', 'form'))
                elif 'Template' in a:
                    log.info(
                        cgmGEN.logString_msg(
                            _str_func,
                            "{0} | {1} | Template in".format(_str, a)))
                    ATTR.rename(o, a, a.replace('Template', 'Form'))
                v = ATTR.get(o, a)
                if 'template' == str(v):
                    log.info(
                        cgmGEN.logString_msg(
                            _str_func,
                            "{0} | {1} | template value".format(_str, str(a))))
                    ATTR.set(o, a, 'form')

    except Exception, err:
        cgmGEN.cgmExceptCB(Exception, err)
    finally:
        CGMUI.doEndMayaProgressBar()
Пример #36
0
def buildColumn_main(self, parent, asScroll=False):
    """
    Trying to put all this in here so it's insertable in other uis
    
    """
    if asScroll:
        _inside = mUI.MelScrollLayout(parent,
                                      useTemplate='cgmUIHeaderTemplate')
    else:
        _inside = mUI.MelColumnLayout(parent,
                                      useTemplate='cgmUIHeaderTemplate')

    #>>>Objects Load Row ---------------------------------------------------------------------------------------

    mUI.MelSeparator(_inside, ut='cgmUISubTemplate', h=3)

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

    mUI.MelSpacer(_row, w=_padding)

    mUI.MelLabel(_row, l='Dynamic Chain System:')

    uiTF_objLoad = mUI.MelLabel(_row,
                                ut='cgmUIInstructionsTemplate',
                                l='',
                                en=True)

    self.uiTF_objLoad = uiTF_objLoad
    cgmUI.add_Button(_row, '<<', cgmGEN.Callback(uiFunc_load_selected, self),
                     "Load first selected object.")
    _row.setStretchWidget(uiTF_objLoad)
    mUI.MelSpacer(_row, w=_padding)

    _row.layout()

    mc.setParent(_inside)
    cgmUI.add_LineSubBreak()

    self.detailsFrame = mUI.MelFrameLayout(_inside,
                                           label="Details",
                                           collapsable=True,
                                           collapse=True,
                                           useTemplate='cgmUIHeaderTemplate')

    uiFunc_update_details(self)

    # Create Frame

    self.createFrame = mUI.MelFrameLayout(_inside,
                                          label="Create",
                                          collapsable=True,
                                          collapse=False,
                                          useTemplate='cgmUIHeaderTemplate')

    _create = mUI.MelColumnLayout(self.createFrame,
                                  useTemplate='cgmUIHeaderTemplate')

    cgmUI.add_LineSubBreak()

    _row = mUI.MelHSingleStretchLayout(_create,
                                       ut='cgmUISubTemplate',
                                       padding=_padding)

    mUI.MelSpacer(_row, w=_padding)

    _subRow = mUI.MelColumnLayout(_row, useTemplate='cgmUIHeaderTemplate')
    self.itemList = cgmUI.cgmScrollList(_subRow, numberOfRows=8, height=100)
    self.itemList(edit=True, allowMultiSelection=True)

    mUI.MelSpacer(_row, w=_padding)

    _row.setStretchWidget(_subRow)

    _row.layout()

    mUI.MelSeparator(_create, ut='cgmUISubTemplate', h=5)

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

    mUI.MelSpacer(_row, w=_padding)

    addBtn = cgmUI.add_Button(
        _row, 'Add Selected',
        cgmGEN.Callback(uiFunc_list_function, self.itemList, 'add selected'),
        "Load selected objects.")

    cgmUI.add_Button(
        _row, 'Remove Selected',
        cgmGEN.Callback(uiFunc_list_function, self.itemList,
                        'remove selected'), "Remove selected objects.")

    cgmUI.add_Button(
        _row, 'Clear',
        cgmGEN.Callback(uiFunc_list_function, self.itemList, 'clear'),
        "Clear all objects.")

    _row.setStretchWidget(addBtn)

    mUI.MelSpacer(_row, w=_padding)

    _row.layout()

    cgmUI.add_LineSubBreak()

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

    mUI.MelSpacer(_row, w=_padding)

    _row.setStretchWidget(
        cgmUI.add_Button(_row, 'Make Dynamic Chain',
                         cgmGEN.Callback(uiFunc_make_dynamic_chain, self),
                         "Make Dynamic Chain."))

    mUI.MelSpacer(_row, w=_padding)

    _row.layout()

    cgmUI.add_LineSubBreak()

    self.optionsFrame = mUI.MelFrameLayout(_create,
                                           label="Options",
                                           collapsable=True,
                                           collapse=True,
                                           useTemplate='cgmUIHeaderTemplate')

    _options = mUI.MelColumnLayout(self.optionsFrame,
                                   useTemplate='cgmUISubTemplate')

    mUI.MelSeparator(_options, ut='cgmUISubTemplate', h=5)

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

    mUI.MelSpacer(_row, w=_padding)
    mUI.MelLabel(_row, l='Base Name: ')

    self.options_baseName = mUI.MelTextField(_row,
                                             ann='Name',
                                             text='DynamicChain')

    _row.setStretchWidget(self.options_baseName)

    mUI.MelSpacer(_row, w=_padding)
    _row.layout()

    _row = mUI.MelHSingleStretchLayout(_options,
                                       ut='cgmUISubTemplate',
                                       padding=5)
    mUI.MelSpacer(_row, w=_padding)
    mUI.MelLabel(_row, l='Name: ')

    self.options_name = mUI.MelTextField(_row, ann='Name', text='')

    _row.setStretchWidget(self.options_name)

    mUI.MelSpacer(_row, w=_padding)
    _row.layout()

    mUI.MelSeparator(_options, ut='cgmUISubTemplate', h=5)

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

    mUI.MelSpacer(_row, w=_padding)
    mUI.MelLabel(_row, l='Direction:')

    _row.setStretchWidget(mUI.MelSeparator(_row))

    directions = ['x+', 'x-', 'y+', 'y-', 'z+', 'z-']

    mUI.MelLabel(_row, l='Fwd:')

    self.fwdMenu = mUI.MelOptionMenu(_row, useTemplate='cgmUITemplate')
    for dir in directions:
        self.fwdMenu.append(dir)

    self.fwdMenu.setValue('z+')

    mUI.MelSpacer(_row, w=_padding)

    mUI.MelLabel(_row, l='Up:')

    self.upMenu = mUI.MelOptionMenu(_row, useTemplate='cgmUITemplate')
    for dir in directions:
        self.upMenu.append(dir)

    self.upMenu.setValue('y+')

    mUI.MelSpacer(_row, w=_padding)

    _row.layout()
    """
    _row.layout()

    #>>>Report ---------------------------------------------------------------------------------------
    _row_report = mUI.MelHLayout(_inside ,ut='cgmUIInstructionsTemplate',h=20)
    self.uiField_report = mUI.MelLabel(_row_report,
                                       bgc = SHARED._d_gui_state_colors.get('help'),
                                       label = '...',
                                       h=20)
    _row_report.layout() """

    return _inside
Пример #37
0
    def doMove(self,**kws):
	if kws:log.debug("Snap.doMove>>> kws: %s"%kws)
	if len(self.l_targets) == 1:
	    #>>> Check our target	    
	    i_target = cgmMeta.cgmNode( self.l_targets[0] )
	    log.debug("i_target: %s"%i_target)
	    targetType = i_target.getMayaType()	    

	    if self.b_snapComponents:
		components = self.i_obj.getComponents()
		if not components:raise StandardError,"This objects has no components to snap: '%s'"%self.i_obj.getShortName()
		#>>>Progress bar
		mayaMainProgressBar = gui.doStartMayaProgressBar(len(components))		
		for c in components:
		    if mc.progressBar(mayaMainProgressBar, query=True, isCancelled=True ) :
			break
		    mc.progressBar(mayaMainProgressBar, edit=True, status = ("Wrapping '%s'"%c), step=1)
		    
		    if targetType in ['mesh','nurbsSurface','nurbsCurve']:
			pos = distance.returnWorldSpacePosition(c)
			targetLoc = mc.spaceLocator()
			mc.move (pos[0],pos[1],pos[2], targetLoc[0])

			closestLoc = locators.locClosest([targetLoc[0]],i_target.mNode)
			if self._posOffset:
			    self.doOrientObjToSurface(i_target.mNode,closestLoc)
			    mc.move (self._posOffset[0],self._posOffset[1],self._posOffset[2], [closestLoc], r=True, rpr = True, os = True, wd = True)								
			position.movePointSnap(c,closestLoc)
			mc.delete([targetLoc[0],closestLoc])
			
		gui.doEndMayaProgressBar(mayaMainProgressBar)#Close out this progress bar    
		
	    else:
		pos = False
		if self.b_snaptoSurface:#>>> If our target is surface we can use
		    if targetType in ['mesh','nurbsCurve','nurbsSurface']:
			i_locObj = self.i_obj.doLoc()#Get our position loc
			i_locTarget = cgmMeta.cgmObject( locators.locClosest([i_locObj.mNode],i_target.mNode) )#Loc closest
			#i_locObj.rename('objLoc')
			#i_locTarget.rename('targetLoc')
			if self._posOffset:
			    try:
				self.doOrientObjToSurface(i_target.mNode,i_locTarget.mNode)
				mc.move (self._posOffset[0],self._posOffset[1],self._posOffset[2], [i_locTarget.mNode], r=True, rpr = True, os = True, wd = True)								
			    except StandardError,error:
				log.warn("self._posOffset failure!")
				log.error(error)
			
			pos = i_locTarget.getPosition(True)
			i_locObj.delete()
			i_locTarget.delete()
		elif self.b_midSurfacePos:
		    log.debug("Snap.move>>> midSurfacePos mode!")
		    if targetType not in ['mesh','nurbsCurve','nurbsSurface']:
			log.warning("Can't do midSurfacPos on targetType: '%s'"%targetType)
			return False
		    #Get the axis info
		    axisToCheck = kws.pop('axisToCheck',False)
		    if not axisToCheck:
			axisToCheck = []		    
			up = dictionary.returnVectorToString(self._upVector) or False
			if not up:
			    raise StandardError,"SnapFactory>>> must have up vector for midSurfaceSnap: %s"%self._upVector
			for a in ['x','y','z']:
			    if a != up[0]:
				axisToCheck.append(a)
			if not axisToCheck:
			    raise StandardError,"SnapFactory>>> couldn't find any axis to do"
		    #i_locObj = self.i_obj.doLoc()#Get our position loc		
		    #log.debug(axisToCheck)
		    pos = RayCast.findMeshMidPointFromObject(i_target.mNode, self.i_obj.mNode, axisToCheck=axisToCheck,**kws)
		    #i_locObj.delete()
		    
		else:
		    pos = i_target.getPosition(True)	    
		if pos:
		    if self.i_obj.isComponent():
			if self.b_softSelection:#Only need to do this if soft select is on
			    mc.softSelect(softSelectEnabled = True)
			    mc.select(self.i_obj.getComponent())
			    mc.move (pos[0],pos[1],pos[2],rpr=True)
			    mc.select(cl=True)
			else:
			    mc.move (pos[0],pos[1],pos[2], self.i_obj.getComponent())	    		    
		    else:
			mc.move (pos[0],pos[1],pos[2], self.i_obj.mNode, rpr=True)	    
Пример #38
0
def buildColumn_main(self,parent,asScroll=False):
    """
    Trying to put all this in here so it's insertable in other uis
    
    """
    self._d_transformAttrFields = {}
    self._d_transformRows = {}
    self._d_transformCBs = {}
    self._mTransformTarget = False
    
    if asScroll:
        _inside = mUI.MelScrollLayout(parent,useTemplate = 'cgmUISubTemplate') 
    else:
        _inside = mUI.MelColumnLayout(parent,useTemplate = 'cgmUISubTemplate') 
        
    
    #>>>Objects Load Row ---------------------------------------------------------------------------------------
    _row_objLoad = mUI.MelHSingleStretchLayout(_inside,ut='cgmUITemplate',padding = 5)        

    mUI.MelSpacer(_row_objLoad,w=10)
    mUI.MelLabel(_row_objLoad, 
                 l='Source:')

    uiTF_objLoad = mUI.MelLabel(_row_objLoad,ut='cgmUITemplate',l='',
                                en=True)

    #self.uiPopUpMenu_dynChild = mUI.MelPopupMenu(_utf_objLoad,button = 1)
    #mc.menuItem(self.uiPopUpMenu_dynChild,l='Select',c=lambda *a:(self._mNode.select()))

    self.uiTF_objLoad = uiTF_objLoad
    cgmUI.add_Button(_row_objLoad,'<<',
                     cgmGEN.Callback(uiFunc_load_selected,self),
                     "Load first selected object.")  
    cgmUI.add_Button(_row_objLoad,'Update',
                     cgmGEN.Callback(uiFunc_updateFields,self),
                     "Update with current values.")     
    cgmUI.add_Button(_row_objLoad,'Ctxt',
                     cgmGEN.Callback(uiFunc_getTargets,self),
                     "Get Targets")    
    _row_objLoad.setStretchWidget(uiTF_objLoad)
    mUI.MelSpacer(_row_objLoad,w=10)
    """
    _row_objLoad.layout()

    #>>>Report ---------------------------------------------------------------------------------------
    _row_report = mUI.MelHLayout(_inside ,ut='cgmUIInstructionsTemplate',h=20)
    self.uiField_report = mUI.MelLabel(_row_report,
                                       bgc = SHARED._d_gui_state_colors.get('help'),
                                       label = '...',
                                       h=20)
    _row_report.layout() """
    
    #buildRow_space(self,_inside,'source',__l_spaceModes)
    #buildRow_space(self,_inside,'targets',__l_spaceModes)
    buildRow_lockSource(self,_inside)
    
    buildRow_tweak(self, _inside)
    mc.setParent(_inside)    
    cgmUI.add_SectionBreak()  

    mc.setParent(_inside)
    mc.text('VALUES',align = 'center',bgc = cgmUI.guiBackgroundColor)
    #cgmUI.add_Header('Values')
    cgmUI.add_SectionBreak()
    
    buildRow_vector(self,_inside,'translate')
    buildRow_vector(self,_inside,'position')
    buildRow_vector(self,_inside,'rotate')
    buildRow_vector(self,_inside,'orient')        
    buildRow_vector(self,_inside,'rotateAxis')
    buildRow_vector(self,_inside,'jointOrient')    
    buildRow_vector(self,_inside,'scale')
    buildRow_vector(self,_inside,'scaleLossy',tweak=False)
    buildRow_vector(self,_inside,'scalePivot',tweak=False)
    
    uiFunc_load_selected(self)
    return _inside