plugin modifier GizmoUnify
name:"GizmoUnify"
classID:#(6845225,45291287)
version:1
silentErrors:true
(
	rollout GizmoUnifyRollout "Unify Gizmo Modifier" width:171 height:73
	(
		label lbl1 "It unifies Gizmos \n in Instanced Modifiers" pos:[24,8] width:123 height:26
		button updateUnify "Update"
		local ModArr, objList, obj
		fn UnifyGizmo =
		(
			obj = selection[1]
			ModArr = obj.modifiers
			pInit = obj.objecttransform
			if ModArr.count > 0 do 
			(
				for i = 1 to ModArr.count do
				(
					objList = refs.dependentNodes obj.modifiers[i]
					currMod = obj.modifiers[i]
					if objList.count > 1 do 
					(
						dest = objList[2]
						mDest = getModContextTM dest currMod
						pDest = dest.objecttransform
						setModContextTM obj currMod ( mDest * (inverse pDest) * pInit)
						obj.modifiers[i].enabled = false
						obj.modifiers[i].enabled = true
					)
				)
			)
		)
		on GizmoUnifyRollout open do (UnifyGizmo())
		on updateUnify pressed do 
		(
			sel = selection as array
			for i in sel do select i
		)
	)
	on clone orig do (UnifyGizmo())
)