コード例 #1
0
    def _interactive_locked_selection_state_changed(self, value):
        value = self._interactive_locked_selection.isChecked()
        cmds.tcMotionPathCmd(lockedModeInteractive=value)

        self._refresh_locked_selection_button.setEnabled(not value)

        cmds.refresh()
コード例 #2
0
    def _initialize_widgets(self):
        ps = _get_default_value(StaticLabels.PATH_SIZE)
        self._path_size.setText(str(ps))
        cmds.tcMotionPathCmd(pathSize=ps)

        fs = _get_default_value(StaticLabels.FRAME_SIZE)
        self._frame_size.setText(str(fs))
        cmds.tcMotionPathCmd(frameSize=fs)

        self._initialize_color_widget(self._path_color,
                                      StaticLabels.PATH_COLOR, 'pathColor')
        self._initialize_color_widget(self._weighted_path_color,
                                      StaticLabels.WPATH_COLOR,
                                      'weightedPathColor')
        self._initialize_color_widget(self._weighted_tangent_color,
                                      StaticLabels.WTANGENT_COLOR,
                                      'weightedPathTangentColor')
        self._initialize_color_widget(self._cframe_color,
                                      StaticLabels.CFRAME_COLOR,
                                      'currentFrameColor')
        self._initialize_color_widget(self._tangent_color,
                                      StaticLabels.TANGENT_COLOR,
                                      'tangentColor')
        self._initialize_color_widget(self._broken_tangent_color,
                                      StaticLabels.BTANGENT_COLOR,
                                      'brokenTangentColor')
        self._initialize_color_widget(self._buffer_path_color,
                                      StaticLabels.BPATH_COLOR,
                                      'bufferPathColor')
        self._initialize_color_widget(self._frame_number_color,
                                      StaticLabels.FNUMBER_COLOR,
                                      'frameNumberColor')

        cmds.refresh()
コード例 #3
0
 def _delete_selected_clicked(self):
     items = self._buffer_paths.selectedItems()
     for item in items:
         index = self._buffer_paths.indexFromItem(item)
         cmds.tcMotionPathCmd(deleteBufferPathAtIndex=index.row())
         self._buffer_paths.takeTopLevelItem(index.row())
     cmds.refresh()
コード例 #4
0
def _playback_range():
    min = cmds.playbackOptions(q=True, minTime=True)
    max = cmds.playbackOptions(q=True, maxTime=True)

    cmds.tcMotionPathCmd(frameRange=[min, max])
    cmds.tcMotionPathCmd(refreshdt=True)
    cmds.refresh()
コード例 #5
0
 def _add_button_clicked(self):
     cmds.tcMotionPathCmd(addBufferPaths=True)
     for sel in cmds.ls(sl=True):
         item = QtWidgets.QTreeWidgetItem()
         item.setFlags(QtCore.Qt.ItemIsEnabled | QtCore.Qt.ItemIsEditable
                       | QtCore.Qt.ItemIsSelectable)
         item.setText(0, sel)
         self._buffer_paths.addTopLevelItem(item)
     cmds.refresh()
コード例 #6
0
    def _use_pivots_state_changed(self):
        value = self._use_pivots.isChecked()

        cmds.tcMotionPathCmd(usePivots=value)
        cmds.tcMotionPathCmd(refreshdt=True)

        _set_default_value(StaticLabels.USEPIVOTS, value)

        cmds.refresh()
コード例 #7
0
    def _initialize_widgets(self):
        value = _get_default_value(StaticLabels.TIME_DELTA)
        self._draw_value.setValue(value)
        cmds.tcMotionPathCmd(drawTimeInterval=value)

        value = _get_default_value(StaticLabels.FRAME_DELTA)
        self._frame_value.setValue(value)
        cmds.tcMotionPathCmd(frameInterval=value)

        self.setEnabled(False)
コード例 #8
0
    def _show_tangents_clicked(self):
        if self._show_tangents.isChecked():
            self._show_tangents.setText("Hide tangents")
        else:
            self._show_tangents.setText("Show tangents")

        cmds.tcMotionPathCmd(showTangents=self._show_tangents.isChecked())
        _set_default_value(StaticLabels.SHOW_TANGENTS,
                           self._show_tangents.isChecked())
        cmds.refresh()
コード例 #9
0
    def _show_key_number_clicked(self):
        is_checked = self._show_key_number.isChecked()
        if is_checked:
            self._show_key_number.setText("Hide key numbers")
        else:
            self._show_key_number.setText("Show key numbers")

        cmds.tcMotionPathCmd(showKeyFrameNumbers=is_checked)
        _set_default_value(StaticLabels.SHOW_KNUMBER, is_checked)
        cmds.refresh()
コード例 #10
0
    def _alternating_color_clicked(self):
        is_checked = self._alternating_color.isChecked()
        if is_checked:
            self._alternating_color.setText("Uniform path color")
        else:
            self._alternating_color.setText("Alternate path color")

        cmds.tcMotionPathCmd(alternatingFrames=is_checked)
        _set_default_value(StaticLabels.ALTERNATE_COLOR, is_checked)
        cmds.refresh()
コード例 #11
0
    def _show_path_clicked(self):
        is_checked = self._show_path.isChecked()
        if is_checked:
            self._show_path.setText("Hide path")
        else:
            self._show_path.setText("Show path")

        self._alternating_color.setEnabled(is_checked)
        cmds.tcMotionPathCmd(showPath=self._show_path.isChecked())
        _set_default_value(StaticLabels.SHOW_PATH, self._show_path.isChecked())
        cmds.refresh()
コード例 #12
0
    def _show_rotation_clicked(self):
        if self._show_rotation.isChecked():
            self._show_rotation.setText("Hide rotation keys")
        else:
            self._show_rotation.setText("Show rotation keys")

        cmds.tcMotionPathCmd(
            showRotationKeyFrames=self._show_rotation.isChecked())
        _set_default_value(StaticLabels.SHOW_ROTATION,
                           self._show_rotation.isChecked())
        cmds.refresh()
コード例 #13
0
 def _convert_selected_clicked(self):
     items = self._buffer_paths.selectedItems()
     cmds.undoInfo(openChunk=True,
                   chunkName="tcMotionPathDeleteBufferPaths")
     try:
         for item in items:
             index = self._buffer_paths.indexFromItem(item)
             cmds.tcMotionPathCmd(convertBufferPath=index.row())
     except:
         traceback.print_exc(file=sys.stdout)
     cmds.undoInfo(closeChunk=True)
コード例 #14
0
    def _show_key_frames_clicked(self):
        is_checked = self._show_key_frames.isChecked()
        if is_checked:
            self._show_key_frames.setText("Hide keyframes")
        else:
            self._show_key_frames.setText("Show keyframes")

        self._show_tangents.setEnabled(is_checked)
        self._show_rotation.setEnabled(is_checked)
        self._show_key_number.setEnabled(is_checked)
        cmds.tcMotionPathCmd(showKeyFrames=is_checked)
        _set_default_value(StaticLabels.SHOW_KEYFRAMES, is_checked)
        cmds.refresh()
コード例 #15
0
 def _widget_color_changed(self, color, g_var_name, cmd_arg_name):
     cmds.tcMotionPathCmd(
         **{
             cmd_arg_name: [
                 float(color.red()) / 255.0,
                 float(color.green()) / 255.0,
                 float(color.blue()) / 255.0
             ]
         })
     _set_default_value(
         g_var_name, [color.red(), color.green(),
                      color.blue()])
     cmds.refresh()
コード例 #16
0
    def _item_selection_changed(self):
        for s in self._last_selection:
            cmds.tcMotionPathCmd(deselectBufferPathAtIndex=s)

        self._last_selection = []
        items = self._buffer_paths.selectedItems()
        for item in items:
            index = self._buffer_paths.indexFromItem(item)
            cmds.tcMotionPathCmd(selectBufferPathAtIndex=index.row())
            self._last_selection.append(index.row())

        self._refresh_button_states(bool(items))

        cmds.refresh()
コード例 #17
0
def _enable_motion_path(status):
    if (status == False):
        _disable()
    else:
        _init_tool()
        _refresh_selection()
        _playback_range()

    cmds.tcMotionPathCmd(enable=status)
    for p in cmds.getPanel(type="modelPanel"):
        cmds.modelEditor(p,
                         edit=True,
                         rnm="vp2Renderer",
                         rom="ToolchefsMotionPathOverride")
コード例 #18
0
    def _lock_selection_clicked(self):
        is_checked = self._lock_selection.isChecked()

        if is_checked:
            self._lock_selection.setText("Unlock selection")
            cmds.tcMotionPathCmd(lockedMode=True)
        else:
            self._lock_selection.setText("Lock selection")
            cmds.tcMotionPathCmd(lockedMode=False)

            _refresh_selection()

        self._interactive_locked_selection.setEnabled(is_checked)
        self._refresh_locked_selection_button.setEnabled(
            is_checked and not self._interactive_locked_selection.isChecked())
コード例 #19
0
    def _initialize_widgets(self):
        fb = _get_default_value(StaticLabels.FRAMES_BEFORE)
        cmds.tcMotionPathCmd(framesBefore=fb)
        self._frame_before.setValue(fb)

        fa = _get_default_value(StaticLabels.FRAMES_AFTER)
        cmds.tcMotionPathCmd(framesAfter=fa)
        self._frame_after.setValue(fa)

        skf = _get_default_value(StaticLabels.SHOW_KEYFRAMES)
        self._show_key_frames.setChecked(skf)

        sp = _get_default_value(StaticLabels.SHOW_PATH)
        self._show_path.setChecked(sp)

        st = _get_default_value(StaticLabels.SHOW_TANGENTS)
        self._show_tangents.setChecked(st)

        srf = _get_default_value(StaticLabels.SHOW_ROTATION)
        self._show_rotation.setChecked(srf)

        sfn = _get_default_value(StaticLabels.SHOW_FNUMBER)
        self._show_frame_number.setChecked(sfn)

        skn = _get_default_value(StaticLabels.SHOW_KNUMBER)
        self._show_key_number.setChecked(skn)

        ap = _get_default_value(StaticLabels.ALTERNATE_COLOR)
        self._alternating_color.setChecked(ap)

        up = _get_default_value(StaticLabels.USEPIVOTS)
        self._use_pivots.setChecked(up)

        self._show_rotation_clicked()
        self._show_tangents_clicked()
        self._show_path_clicked()
        self._show_key_frames_clicked()
        self._show_frame_number_clicked()
        self._show_key_number_clicked()
        self._alternating_color_clicked()
        self._use_pivots_state_changed()
コード例 #20
0
 def _frame_before_changed(self, value):
     cmds.tcMotionPathCmd(framesBefore=value)
     cmds.tcMotionPathCmd(refreshdt=True)
     _set_default_value(StaticLabels.FRAMES_BEFORE, value)
     cmds.refresh()
コード例 #21
0
 def deselect_all(self):
     for s in self._last_selection:
         cmds.tcMotionPathCmd(deselectBufferPathAtIndex=s)
         item = self._buffer_paths.topLevelItem(s)
         self._buffer_paths.setItemSelected(item, False)
コード例 #22
0
 def _frame_after_changed(self, value):
     cmds.tcMotionPathCmd(framesAfter=value)
     cmds.tcMotionPathCmd(refreshdt=True)
     _set_default_value(StaticLabels.FRAMES_AFTER, value)
     cmds.refresh()
コード例 #23
0
 def _draw_value_changed(self, value):
     cmds.tcMotionPathCmd(drawTimeInterval=value)
     _set_default_value(StaticLabels.TIME_DELTA, value)
コード例 #24
0
 def _mode_group_changed(self, value):
     if self._closest_mode.isChecked():
         cmds.tcMotionPathCmd(strokeMode=0)
     else:
         cmds.tcMotionPathCmd(strokeMode=1)
コード例 #25
0
 def _delete_all_clicked(self):
     self._buffer_paths.clear()
     cmds.tcMotionPathCmd(deleteAllBufferPaths=True)
     cmds.refresh()
コード例 #26
0
 def _refresh_locked_selection_button_clicked(self):
     cmds.tcMotionPathCmd(refreshLockedSelection=True)
     cmds.refresh()
コード例 #27
0
 def _frame_value_changed(self, value):
     cmds.tcMotionPathCmd(frameInterval=value)
     _set_default_value(StaticLabels.FRAME_DELTA, value)
コード例 #28
0
    def _frame_size_changed(self):
        value = float(self._frame_size.text())

        cmds.tcMotionPathCmd(frameSize=value)
        _set_default_value(StaticLabels.FRAME_SIZE, value)
        cmds.refresh()
コード例 #29
0
 def _draw_mode_changed(self, value):
     if self._world_mode.isChecked():
         cmds.tcMotionPathCmd(drawMode=0)
     else:
         cmds.tcMotionPathCmd(drawMode=1)
     cmds.refresh()
コード例 #30
0
    def _path_size_changed(self):
        value = float(self._path_size.text())

        cmds.tcMotionPathCmd(pathSize=value)
        _set_default_value(StaticLabels.PATH_SIZE, value)
        cmds.refresh()