public static void MirrorTransformRotation(Plane mirrorPlane, Transform transform) { MirroredRotation mirroredRotation = MirrorMatrixRotation(mirrorPlane, transform.GetWorldMatrix()); transform.rotation = mirroredRotation.Rotation; transform.SetWorldScale(mirroredRotation.AxesScale); }
public static OrientedBox MirrorOrientedBox(Plane mirrorPlane, OrientedBox orientedBox, bool mirrorRotation) { OrientedBox mirroredBox = new OrientedBox(orientedBox); mirroredBox.AllowNegativeScale = true; mirroredBox.Center = MirrorPosition(mirrorPlane, mirroredBox.Center); if (mirrorRotation) { MirroredRotation mirroredRotation = MirrorMatrixRotation(mirrorPlane, mirroredBox.TransformMatrix); mirroredBox.Rotation = mirroredRotation.Rotation; mirroredBox.Scale = mirroredRotation.AxesScale; } return(mirroredBox); }