def symmetrize(self): """Inverse the transform of each element of the guide.""" if self.values["comp_side"] not in ["R", "L"]: mgear.log("Can't symmetrize central component", mgear.sev_error) return False for name, paramDef in self.paramDefs.items(): if paramDef.valueType == "string": self.setParamDefValue( name, mgear.string.convertRLName(self.values[name])) for name, t in self.tra.items(): self.tra[name] = transform.getSymmetricalTransform(t) for name, blade in self.blades.items(): self.blades[name] = vector.Blade( transform.getSymmetricalTransform(blade.transform)) return True
def duplicateSym(*args): """Duplicate one dag hierarchy to/from X/-X renaming "L" to "R" """ oSelection = pm.selected() if oSelection: oSel = oSelection[0] oTarget = pm.duplicate()[0] t = oSel.getTransformation() t = transform.getSymmetricalTransform(t) oTarget.setTransformation(t) # Quick rename pm.select(oTarget, hi=True) for x in pm.selected(): x.rename(mgear.string.convertRLName(x.name().split("|")[-1])) oTarget.rename(mgear.string.convertRLName(oSel.name())) else: pm.displayWarning("Select something before duplicate symmetry.")