def test_scene_is_dirty(self): with Stub() as pymel.core.language: from pymel.core.language import mel mel.eval("file -q -mf") >> 0 self.assertFalse(scene_is_dirty()) with Stub() as pymel.core.language: from pymel.core.language import mel mel.eval("file -q -mf") >> 1 self.assertTrue(scene_is_dirty())
def on_createSplineIKSystemButton_clicked(self): self.bottomWidget.show() self.topWidget.setEnabled(False) dj_chains, output_curves = (), () for root in selected(): dj_chain = (root, ) while dj_chain[-1].numChildren(): dj_chain += (dj_chain[-1].getChildren()[0], ) dj_chains += (dj_chain, ) # Assign a hair system to the driver joint chain. output_curves += ( \ curve(p=[dj.getTranslation(space='world').get() \ for dj in dj_chain]),) select(output_curves) mel.eval('assignNewHairSystem') follicle_curves = selected() hs = follicle_curves[0].getParent().getShape().attr('outHair') \ .outputs()[0] [hs.attr(x).set(0) for x in \ ('drag', 'friction', 'mass', 'gravity', 'dynamicsWeight')] hs.attr('startCurveAttract').set(0.25) for i, dj_chain in enumerate(dj_chains): oc = output_curves[i] select(dj_chain + (oc, )) SmoothBindSkin() bjs = [dj.attr('rotate').outputs()[0].attr('constraintRotateZ') \ .outputs()[0] for dj in (dj_chain[0], dj_chain[-1])] ikHandle(startJoint=bjs[0], endEffector=bjs[1], curve=oc, solver='ikSplineSolver', parentCurve=False, createCurve=False) self.topWidget.setEnabled(True) self.bottomWidget.hide()
def on_createSplineIKSystemButton_clicked(self): self.bottomWidget.show() self.topWidget.setEnabled(False) dj_chains, output_curves = (), () for root in selected(): dj_chain = (root,) while dj_chain[-1].numChildren(): dj_chain += (dj_chain[-1].getChildren()[0],) dj_chains += (dj_chain,) # Assign a hair system to the driver joint chain. output_curves += ( \ curve(p=[dj.getTranslation(space='world').get() \ for dj in dj_chain]),) select(output_curves) mel.eval('assignNewHairSystem') follicle_curves = selected() hs = follicle_curves[0].getParent().getShape().attr('outHair') \ .outputs()[0] [hs.attr(x).set(0) for x in \ ('drag', 'friction', 'mass', 'gravity', 'dynamicsWeight')] hs.attr('startCurveAttract').set(0.25) for i, dj_chain in enumerate(dj_chains): oc = output_curves[i] select(dj_chain + (oc,)) SmoothBindSkin() bjs = [dj.attr('rotate').outputs()[0].attr('constraintRotateZ') \ .outputs()[0] for dj in (dj_chain[0], dj_chain[-1])] ikHandle(startJoint=bjs[0], endEffector=bjs[1], curve=oc, solver='ikSplineSolver', parentCurve=False, createCurve=False) self.topWidget.setEnabled(True) self.bottomWidget.hide()
def scene_is_dirty(): """Checks to see if the scene has unsaved changes""" return bool(mel.eval('file -q -mf'))