Example #1
0
	def on_axesToggleButton_clicked(self):
		undoInfo(openChunk=True)
		sel = selected()
		select(self.get_affected_joints())
		toggle(localAxis=True)
		select(sel)
		undoInfo(closeChunk=True)
Example #2
0
 def on_axesToggleButton_clicked(self):
     undoInfo(openChunk=True)
     sel = selected()
     select(self.get_affected_joints())
     toggle(localAxis=True)
     select(sel)
     undoInfo(closeChunk=True)
Example #3
0
	def on_handlesToggleButton_clicked(self):
		undoInfo(openChunk=True)
		sel = selected()
		select(self.get_affected_joints())
		toggle(selectHandle=True)
		select(sel)
		undoInfo(closeChunk=True)
Example #4
0
 def on_handlesToggleButton_clicked(self):
     undoInfo(openChunk=True)
     sel = selected()
     select(self.get_affected_joints())
     toggle(selectHandle=True)
     select(sel)
     undoInfo(closeChunk=True)
Example #5
0
    def on_orientJointsButton_clicked(self):
        undoInfo(openChunk=True)
        sel = selected()

        kwargs = {}
        if self.zeroScaleOrientCB.isChecked():
            kwargs.update({'zeroScaleOrient': True})
        if self.aimAxisNoneRadio.isChecked():
            val = 'none'
        else:
            for i, radio in enumerate(
                (self.aimAxisXRadio, self.aimAxisYRadio, self.aimAxisZRadio)):
                if radio.isChecked():
                    xyz = 'xyz'
                    if self.upAxisNoneRadio.isChecked():
                        val = xyz[i:] + xyz[:i]
                    else:
                        val = str(radio.text()).lower()
                        for up_radio in (self.upAxisXRadio, self.upAxisYRadio,
                                         self.upAxisZRadio):
                            if up_radio.isChecked():
                                val += str(up_radio.text()).lower()
                                break
                        for c in xyz:
                            if c not in val:
                                val += c
                                break
                        sao = self.worldUpYRadio.isChecked() and 'y' \
                         or self.worldUpZRadio.isChecked() and 'z' \
                         or upAxis(query=True, axis=True)
                        sao += self.worldUpReverseCB.isChecked() \
                         and 'down' or 'up'
                        kwargs.update({'secondaryAxisOrient': sao})
                    break

        reverse_aim = self.aimAxisReverseCB.isChecked() \
         and Vector([val[1] == c for c in 'xyz']) * 180 or None
        reverse_up = self.upAxisReverseCB.isChecked() \
         and Vector([val[0] == c for c in 'xyz']) * 180 or None

        for j in self.get_affected_joints():
            if j.numChildren():
                j.orientJoint(val, **kwargs)
            else:
                p = j.getParent()
                if p:
                    delete(orientConstraint(p, j))
                else:
                    self.freeze(j, jointOrient=True)
                if self.zeroScaleOrientCB.isChecked():
                    j.zeroScaleOrient()
            if reverse_aim:
                self.tweak_joint_orientation(1, rotateAxis=reverse_aim)
            if reverse_up:
                self.tweak_joint_orientation(1, rotateAxis=reverse_up)

        select(sel)
        undoInfo(closeChunk=True)
Example #6
0
	def on_orientJointsButton_clicked(self):
		undoInfo(openChunk=True)
		sel = selected()
		
		kwargs = {}
		if self.zeroScaleOrientCB.isChecked():
			kwargs.update({'zeroScaleOrient': True})
		if self.aimAxisNoneRadio.isChecked():
			val = 'none'
		else:
			for i, radio in enumerate((self.aimAxisXRadio,
				self.aimAxisYRadio, self.aimAxisZRadio)):
				if radio.isChecked():
					xyz = 'xyz'
					if self.upAxisNoneRadio.isChecked():
						val = xyz[i:] + xyz[:i]
					else:
						val = str(radio.text()).lower()
						for up_radio in (self.upAxisXRadio,
							self.upAxisYRadio, self.upAxisZRadio):
							if up_radio.isChecked():
								val += str(up_radio.text()).lower()
								break
						for c in xyz:
							if c not in val:
								val += c
								break
						sao = self.worldUpYRadio.isChecked() and 'y' \
							or self.worldUpZRadio.isChecked() and 'z' \
							or upAxis(query=True, axis=True)
						sao += self.worldUpReverseCB.isChecked() \
							and 'down' or 'up'
						kwargs.update({'secondaryAxisOrient': sao})
					break
		
		reverse_aim = self.aimAxisReverseCB.isChecked() \
			and Vector([val[1] == c for c in 'xyz']) * 180 or None
		reverse_up = self.upAxisReverseCB.isChecked() \
			and Vector([val[0] == c for c in 'xyz']) * 180 or None
		
		for j in self.get_affected_joints():
			if j.numChildren():
				j.orientJoint(val, **kwargs)
			else:
				p = j.getParent()
				if p:
					delete(orientConstraint(p, j))
				else:
					self.freeze(j, jointOrient=True)
				if self.zeroScaleOrientCB.isChecked():
					j.zeroScaleOrient()
			if reverse_aim:
				self.tweak_joint_orientation(1, rotateAxis=reverse_aim)
			if reverse_up:
				self.tweak_joint_orientation(1, rotateAxis=reverse_up)
		
		select(sel)
		undoInfo(closeChunk=True)
Example #7
0
	def on_freezeButton_clicked(self):
		undoInfo(openChunk=True)
		kwargs = dict( \
			rotate=self.rotateCB.isChecked(),
			scale=self.scaleCB.isChecked(),
			jointOrient=self.orientCB.isChecked(),
			skip_locked=self.skipRadio.isChecked())
		[self.freeze(j, **kwargs) for j in self.get_affected_joints()]
		undoInfo(closeChunk=False)
Example #8
0
 def on_freezeButton_clicked(self):
     undoInfo(openChunk=True)
     kwargs = dict( \
      rotate=self.rotateCB.isChecked(),
      scale=self.scaleCB.isChecked(),
      jointOrient=self.orientCB.isChecked(),
      skip_locked=self.skipRadio.isChecked())
     [self.freeze(j, **kwargs) for j in self.get_affected_joints()]
     undoInfo(closeChunk=False)
Example #9
0
 def on_bufferButton_clicked(self):
     undoInfo(openChunk=True)
     for j in self.get_affected_joints():
         buf = group(empty=True, world=True, name='BUF_' + j.nodeName())
         p = j.getParent(1)
         if p: parent(buf, p)
         dupe = duplicate(j, renameChildren=True, returnRootsOnly=True)[0]
         snap(dupe, buf, space='object')
         delete(dupe)
         parent(j, buf)
     undoInfo(closeChunk=True)
Example #10
0
	def on_bufferButton_clicked(self):
		undoInfo(openChunk=True)
		for j in self.get_affected_joints():
			buf = group(empty=True, world=True,
				name='BUF_' + j.nodeName())
			p = j.getParent(1)
			if p: parent(buf, p)
			dupe = duplicate(j, renameChildren=True,
				returnRootsOnly=True)[0]
			snap(dupe, buf, space='object')
			delete(dupe)
			parent(j, buf)
		undoInfo(closeChunk=True)
Example #11
0
 def on_resetButton_clicked(self):
     undoInfo(openChunk=True)
     skip_locked = self.skipRadio.isChecked()
     joints = self.get_affected_joints()
     for cb in (self.rotateCB, self.scaleCB):
         if not cb.isChecked(): continue
         rs = str(cb.text()[0]).lower()
         v = rs == 's' and 1 or 0
         for j in joints:
             for axis in 'xyz':
                 a = j.attr(rs + axis)
                 if a.isLocked():
                     if skip_locked: continue
                     a.unlock()
                     a.set(v)
                     a.lock()
                 else:
                     a.set(v)
     undoInfo(closeChunk=True)
Example #12
0
	def on_resetButton_clicked(self):
		undoInfo(openChunk=True)
		skip_locked = self.skipRadio.isChecked()
		joints = self.get_affected_joints()
		for cb in (self.rotateCB, self.scaleCB):
			if not cb.isChecked(): continue
			rs = str(cb.text()[0]).lower()
			v = rs == 's' and 1 or 0
			for j in joints:
				for axis in 'xyz':
					a = j.attr(rs + axis)
					if a.isLocked():
						if skip_locked: continue
						a.unlock()
						a.set(v)
						a.lock()
					else:
						a.set(v)
		undoInfo(closeChunk=True)
Example #13
0
	def on_runButton_clicked(self):
		self._nodes = self.get_affected_nodes()
		if not self._nodes:
			return error('No affected nodes to manipulate.')
		
		# Filter-out shape nodes from the list, but only if their
		# parents are also in the list, because they will get renamed
		# automatically.
		for n in [n for n in ls(self._nodes, geometry=True) \
			if n.getParent(1) in self._nodes]:
			del self._nodes[self._nodes.index(n)]
		
		undoInfo(openChunk=True)
		if self.searchReplaceRadio.isChecked():
			self.search_replace_names()
		else:
			self.assign_new_names()
		undoInfo(closeChunk=True)
		
		self.display_renamed_nodes()
Example #14
0
    def on_runButton_clicked(self):
        self._nodes = self.get_affected_nodes()
        if not self._nodes:
            return error('No affected nodes to manipulate.')

        # Filter-out shape nodes from the list, but only if their
        # parents are also in the list, because they will get renamed
        # automatically.
        for n in [n for n in ls(self._nodes, geometry=True) \
         if n.getParent(1) in self._nodes]:
            del self._nodes[self._nodes.index(n)]

        undoInfo(openChunk=True)
        if self.searchReplaceRadio.isChecked():
            self.search_replace_names()
        else:
            self.assign_new_names()
        undoInfo(closeChunk=True)

        self.display_renamed_nodes()
Example #15
0
 def on_labelsToggleButton_clicked(self):
     undoInfo(openChunk=True)
     for j in self.get_affected_joints():
         j.attr('drawLabel').set(1 - j.attr('drawLabel').get())
     undoInfo(closeChunk=True)
Example #16
0
	def on_tweakMinusButton_clicked(self):
		undoInfo(openChunk=True)
		self.tweak_joint_orientation(-1)
		undoInfo(closeChunk=True)
Example #17
0
 def on_tweakMinusButton_clicked(self):
     undoInfo(openChunk=True)
     self.tweak_joint_orientation(-1)
     undoInfo(closeChunk=True)
Example #18
0
	def on_labelsToggleButton_clicked(self):
		undoInfo(openChunk=True)
		for j in self.get_affected_joints():
			j.attr('drawLabel').set(1 - j.attr('drawLabel').get())
		undoInfo(closeChunk=True)