---------------------------------------------------------------------- -- written by: Daniel Kur -- email: dkur100@gmail.com -- date: 08.01.12 -- you can edit and modify the code for you own needs ---------------------------------------------------------------------- rollout MirrorPivot "MirrorPivot" ( button x "X" button y "Y" button z "Z" checkbox col "Flip Normals and Collapse" fn flipNormals o = ( nm = Normalmodifier() nm.flip = true case (classOf o) of ( PolyMeshObject :( addmodifier o nm if col.state do convertToPoly o ) Editable_Poly : s( addmodifier o nm if col.state do convertToPoly o ) Editable_mesh : ( addmodifier o nm if col.state do convertToMesh o ) NURBSSurf : ( ns = getNurbsSet o #relational surfs = for s in ns where classof s == NURBSPointSurface collect s for s in surfs do s.flipNormals = true ) ) ) fn setTm o axis = ( if col.state do collapseStack o local xf = xform name:("MirrorPivot " + axis as string) xf.gizmo.transform = matrix3 (axis[1]*xf.gizmo.transform[1]) (axis[2]*xf.gizmo.transform[2]) (axis[3]*xf.gizmo.transform[3]) xf.gizmo.transform[4] addmodifier o xf flipNormals o if col.state do collapseStack o o.transform = Matrix3 (axis[1]*o.transform[1]) (axis[2]*o.transform[2]) (axis[3]*o.transform[3]) o.transform[4] ) fn mirrorA axis = ( local sel = selection as array if sel.count > 0 do ( case axis of( 1:( for o in sel do setTm o [-1,1,1]) 2:( for o in sel do setTm o [1,-1,1]) 3:( for o in sel do setTm o [1,1,-1]) ) ) ) on x pressed do with undo label:"Mirror Pivots X" on mirrorA 1 on y pressed do with undo label:"Mirror Pivots Y" on mirrorA 2 on z pressed do with undo label:"Mirror Pivots Z" on mirrorA 3 ) createDialog MirrorPivot