Beispiel #1
0
    def build_radial_copy(self,parent,direction = None):
        _r = mUI.MelMenuItem(parent,subMenu = True,
                             en = self._b_sel_pair,
                             l = 'Copy',
                             #c = lambda *a:buttonAction(tdToolsLib.doPointSnap()),
                             rp = direction)  
        if not self._b_sel_pair:
            return        
        #---------------------------------------------------------------------------

        mUI.MelMenuItem(_r,
                        en = self._b_sel_pair,
                        l = 'Rotate Pivot',
                        #c = lambda *a:buttonAction(tdToolsLib.doPointSnap()),
                        c = mUI.Callback(self.bc_copy_pivot,True, False,'Rotate Pivot'),
                        rp = "W")   
        mUI.MelMenuItem(_r,
                        en = self._b_sel_pair,
                        l = 'Scale Pivot',
                        #c = lambda *a:buttonAction(tdToolsLib.doPointSnap()),
                        c = mUI.Callback(self.bc_copy_pivot,False, True,'Scale Pivot'),
                        rp = "SW") 
        mUI.MelMenuItem(_r,
                        en = False,
                        l = 'Orientation',
                        #c = lambda *a:buttonAction(tdToolsLib.doPointSnap()),
                        #c = mUI.Callback(self.button_action_per_sel,locators.locMeObject,'Locator'),
                        rp = "NW")         
Beispiel #2
0
  def build_menu(self, parent):
      self._d_radial_menu = {}
      self._l_res = []
      self._l_sel = mc.ls(sl=True)
      self._b_sel = False
      if self._l_sel:self._b_sel = True
      self._b_sel_pair = False
      if len(self._l_sel) >= 2:
          self._b_sel_pair = True
          
      log.info("{0} >> build_menu".format(self._str_MM))                
      #mc.setParent(self)
      mUI.MelMenuItem(parent,l = 'ButtonAction...',
                      c = mUI.Callback(self.button_action,None))        
 
      
      #mc.menu(parent,e = True, deleteAllItems = True)
      self.uiRadial_snap_build(parent,'S')
      self.build_radial_dynParent(parent,'NW')
      self.build_radial_create(parent,'N')
      self.build_radial_copy(parent,'W')
      self.build_radial_aim(parent,'NE')
      self.build_radial_control(parent,'SW')
      self.build_radial_arrange(parent,'SE')
      
      mUI.MelMenuItem(parent,l = "-"*20,en = False)
      mUI.MelMenuItem(parent,l = 'Reset...',
                      c=mUI.Callback(self.button_action,self.reset))             
      mUI.MelMenuItem(parent,l='Report',
                      c = lambda *a: self.report())
Beispiel #3
0
 def build_menu(self, parent):
     log.info("{0} >> build_menu".format(self._str_MM))
     #mc.setParent(self)
     mUI.MelMenuItem(parent,
                     l='ButtonAction...',
                     c=mUI.Callback(self.button_action, None))
     mUI.MelMenuItem(parent,
                     l='Reset...',
                     c=mUI.Callback(self.button_action, self.reset))
     """
     mUI.MelMenuItem(parent,l = 'ButtonAction...',
                             c = lambda *a: self.button_action(None))        
     mUI.MelMenuItem(parent,l = 'Reset...',
                     c=lambda *a: self.button_action(self.reset))  """
     mUI.MelMenuItem(parent, l="-" * 20, en=False)
     mUI.MelMenuItem(parent, l='Report', c=lambda *a: self.report())
    def build_radial_create(self, parent, direction=None):
        """
        Menu to create items from selected objects
        """
        _r = mUI.MelMenuItem(
            parent,
            subMenu=True,
            en=self._b_sel,
            l='Create',
            #c = lambda *a:buttonAction(tdToolsLib.doPointSnap()),
            rp=direction)
        if not self._b_sel:
            return
        #---------------------------------------------------------------------------

        mUI.MelMenuItem(
            _r,
            en=self._b_sel,
            l='Transform here',
            #c = lambda *a:buttonAction(tdToolsLib.doPointSnap()),
            c=mUI.Callback(self.button_action_per_sel, RIGGING.create_at,
                           'Create Transform'),
            rp="N")
        mUI.MelMenuItem(
            _r,
            en=self._b_sel,
            l='Group',
            #c = lambda *a:buttonAction(tdToolsLib.doPointSnap()),
            c=mUI.Callback(self.button_action_per_sel, RIGGING.group_me,
                           'Group Me'),
            rp="E")
        mUI.MelMenuItem(
            _r,
            en=self._b_sel,
            l='Group Me',
            #c = lambda *a:buttonAction(tdToolsLib.doPointSnap()),
            c=mUI.Callback(self.bc_create_groupMe, 'Group Me'),
            rp="NE")
        mUI.MelMenuItem(
            _r,
            en=self._b_sel,
            l='Locator',
            #c = lambda *a:buttonAction(tdToolsLib.doPointSnap()),
            c=mUI.Callback(self.button_action_per_sel, locators.locMeObject,
                           'Locator'),
            rp="S")
Beispiel #5
0
 def BUILD(self, parent):
     """
     This is the method designed to be overloaded to do build the subclass menus...
     """
     log.info("{0} >> build_menu".format(self._str_MM))
     #mc.setParent(self)
     mc.menuItem(parent=parent, l="-" * 25, en=False)
     mc.menuItem(parent=parent,
                 l='ButtonAction...',
                 c=mUI.Callback(self.button_action, None))
     mc.menuItem(parent=parent,
                 l='Reset...',
                 c=mUI.Callback(self.button_action, self.reset))
     """
     mUI.MelMenuItem(parent,l = 'ButtonAction...',
                             c = lambda *a: self.button_action(None))        
     mUI.MelMenuItem(parent,l = 'Reset...',
                     c=lambda *a: self.button_action(self.reset))  """
     mc.menuItem(parent=parent, l="-" * 25, en=False)
     mc.menuItem(parent=parent, l='Report', c=lambda *a: self.report())
Beispiel #6
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))
Beispiel #7
0
 def reset(self):
     log.info("{0} >> reset".format(self._str_MM))
     mUI.Callback(
         cgmUI.do_resetGuiInstanceOptionVars(self.l_optionVars, False))