public static Matrix4x4 GetSelectedObjectsMeanTransform()
        {
            Matrix4x4 meanTransformMatrix = Matrix4x4.identity;

#if UNITY_EDITOR
            Transform[] selectedTransforms = Selection.GetTransforms(SelectionMode.Unfiltered);
            int         numTransforms      = selectedTransforms.Length;
            if (numTransforms > 0)
            {
                meanTransformMatrix = selectedTransforms[0].localToWorldMatrix;

                for (int i = 1; i < numTransforms; ++i)
                {
                    meanTransformMatrix *= selectedTransforms[i].localToWorldMatrix;
                }

                Vector3 position = HEU_HAPIUtility.GetPosition(ref meanTransformMatrix);
                position /= (float)numTransforms;
                HEU_HAPIUtility.SetMatrixPosition(ref meanTransformMatrix, ref position);
            }
#endif
            return(meanTransformMatrix);
        }