Updated
This commit is contained in:
154
Scripts/Modeling/Edit/LDMT/ldmt_clothTransfer.py
Normal file
154
Scripts/Modeling/Edit/LDMT/ldmt_clothTransfer.py
Normal file
@ -0,0 +1,154 @@
|
||||
import os
|
||||
import math
|
||||
import ldmt_function.ldmt_loadUIFile
|
||||
import importlib
|
||||
#importlib.reload(ldmt_function.ldmt_loadUIFile)
|
||||
from ldmt_function.ldmt_loadUIFile import get_maya_window, load_ui_file
|
||||
import maya.OpenMayaUI as omui
|
||||
from ldmt_core import ldmt_cmds as ld
|
||||
from functools import partial
|
||||
import maya.cmds as cmds
|
||||
import maya.mel as mel
|
||||
|
||||
try:
|
||||
from Qt.QtCore import *
|
||||
from Qt.QtGui import *
|
||||
from Qt.QtWidgets import *
|
||||
# from Qt.QtUiTools import *
|
||||
from Qt import __version__
|
||||
from Qt.QtCompat import wrapInstance
|
||||
except ImportError:
|
||||
from Qt.QtCore import *
|
||||
from Qt.QtGui import *
|
||||
# from Qt.QtUiTools import *
|
||||
from Qt import __version__
|
||||
from Qt.QtCompat import wrapInstance
|
||||
|
||||
import maya.OpenMaya as om
|
||||
import maya.api.OpenMaya as om2
|
||||
import random
|
||||
import ast
|
||||
|
||||
LDMTPATH = ld.getPath('LDMT')
|
||||
ldmt_uifile = LDMTPATH + '/ldmt_ui/ldmt_clothTransfer.ui'
|
||||
# ldmt_list_form, ldmt_list_base = load_ui_type(ldmt_uifile)
|
||||
ldmt_window_name = 'ldmt_clothTransfer'
|
||||
ldmt_button_name = 'btn_'+ldmt_window_name.split('_')[1]
|
||||
|
||||
'''
|
||||
#Functions
|
||||
'''
|
||||
|
||||
'''
|
||||
#UI
|
||||
'''
|
||||
class ldmt_cls(QDialog):
|
||||
def __init__(self, parent = get_maya_window()):
|
||||
super(ldmt_cls, self).__init__(parent)
|
||||
self.window_name = ldmt_window_name
|
||||
self.setWindowTitle(ldmt_window_name)
|
||||
self.setWindowFlags(Qt.Window)
|
||||
# self.setupUi(self)
|
||||
# self.move(QCursor.pos() + QPoint(20,20))
|
||||
self.set_ui()
|
||||
# update status bar so it's not only show in help line window.
|
||||
self.setupBtn()
|
||||
# self.statusbar.showMessage(ld.tag())
|
||||
# self.installStartBar()
|
||||
|
||||
def set_ui(self):
|
||||
main_layout = QVBoxLayout(self)
|
||||
|
||||
self.ui = load_ui_file(ldmt_uifile)
|
||||
|
||||
main_layout.addWidget(self.ui)
|
||||
|
||||
def setupBtn(self):
|
||||
self.ui.btn_setCloth.clicked.connect(self.setCloth)
|
||||
self.ui.btn_setOrigin.clicked.connect(self.setOrigin)
|
||||
self.ui.btn_setTarget.clicked.connect(self.setTarget)
|
||||
self.ui.btn_selectCloth.clicked.connect(self.selectCloth)
|
||||
self.ui.btn_selectOrigin.clicked.connect(self.selectOrigin)
|
||||
self.ui.btn_selectTarget.clicked.connect(self.selectTarget)
|
||||
|
||||
self.ui.btn_transfer.clicked.connect(self.transfer)
|
||||
|
||||
def setCloth(self):
|
||||
sel = cmds.ls(sl=1,o=1)
|
||||
sel = sel[0]
|
||||
if sel != []:
|
||||
self.ui.btn_selectCloth.setText(str(sel))
|
||||
else:
|
||||
self.ui.btn_selectCloth.setText('...')
|
||||
def setOrigin(self):
|
||||
sel = cmds.ls(sl=1,o=1)
|
||||
sel = sel[0]
|
||||
if sel != []:
|
||||
self.ui.btn_selectOrigin.setText(str(sel))
|
||||
else:
|
||||
self.ui.btn_selectOrigin.setText('...')
|
||||
def setTarget(self):
|
||||
sel = cmds.ls(sl=1,o=1)
|
||||
sel = sel[0]
|
||||
if sel != []:
|
||||
self.ui.btn_selectTarget.setText(str(sel))
|
||||
else:
|
||||
self.ui.btn_selectTarget.setText('...')
|
||||
def selectSetObjects(self,sel):
|
||||
if sel != '...':
|
||||
cmds.select(sel,r=1)
|
||||
else:
|
||||
ld.msg('Nothing selected')
|
||||
def selectCloth(self):
|
||||
sel = self.ui.btn_selectCloth.text()
|
||||
self.selectSetObjects(sel)
|
||||
def selectOrigin(self):
|
||||
sel = self.ui.btn_selectOrigin.text()
|
||||
self.selectSetObjects(sel)
|
||||
def selectTarget(self):
|
||||
sel = self.ui.btn_selectTarget.text()
|
||||
self.selectSetObjects(sel)
|
||||
def transfer(self):
|
||||
cloth = self.ui.btn_selectCloth.text()
|
||||
origin = self.ui.btn_selectOrigin.text()
|
||||
target = self.ui.btn_selectTarget.text()
|
||||
cmds.makeIdentity(target,apply=True, t=1, r=1, s=1, n=0)
|
||||
cmds.select(cloth,r=1)
|
||||
cmds.select(origin,add=1)
|
||||
mel.eval('DeleteHistory;')
|
||||
mel.eval('CreateWrap;')
|
||||
blendObjs = [target,origin]
|
||||
blendName = cmds.blendShape(blendObjs,o='world',n='clothTransfer#')
|
||||
cmds.blendShape(blendName,e=1,w=(0,1))
|
||||
|
||||
def installStartBar(self):
|
||||
allQWidgets = self.findChildren(QWidget)
|
||||
for i in allQWidgets:
|
||||
i.installEventFilter(self)
|
||||
|
||||
def eventFilter(self, obj, event ):
|
||||
'''Connect signals on mouse over'''
|
||||
if event.type() == QEvent.Enter:
|
||||
self.oldMessage = ld.tag()
|
||||
self.statusbar.showMessage(' '+obj.statusTip(),0)
|
||||
elif event.type() == QEvent.Leave:
|
||||
self.statusbar.showMessage(' '+self.oldMessage, 0)
|
||||
pass
|
||||
event.accept()
|
||||
return False
|
||||
# def closeEvent(self,event):
|
||||
# ld.turnToolBtnOff(self,ldmt_button_name)
|
||||
# cmds.deleteUI(ldmt_window_name)
|
||||
|
||||
def ldmt_show():
|
||||
|
||||
if cmds.window(ldmt_window_name, exists=True):
|
||||
cmds.deleteUI(ldmt_window_name)
|
||||
|
||||
app = QApplication.instance()
|
||||
dialog = ldmt_cls(parent=app.activeWindow())
|
||||
dialog.show()
|
||||
app.exec_()
|
||||
|
||||
if __name__ == '__main__':
|
||||
ldmt_show()
|
Reference in New Issue
Block a user