void OnSceneGUI(SceneView sceneView)
        {
            if (!ShouldDrawBodyPoseUtilityWindow(sceneView))
            {
                return;
            }

            s_LastFoundAnimator = FindHumanAnimatorObj();

            if (s_LastFoundAnimator == null)
            {
                return;
            }

            // We don't want to show the window if the avatar isn't visible.
            // Specifically, we avoid changing the pose of the landmarks rig (Default Body Rig)
            if (!HasDisabledSkinnedMeshRenderer())
            {
                return;
            }

            Handles.BeginGUI();

            var winPos = new Rect(sceneView.position.width - k_WindowWidth - k_WindowOffsetFromEdges,
                                  sceneView.position.height - k_WindowHeight - k_WindowOffsetFromEdges - k_ToolbarHeight,
                                  k_WindowWidth, k_WindowHeight);

            using (new GUILayout.AreaScope(winPos, string.Empty, "Box"))
            {
                GUILayout.Label(k_CreatePoseToolLabel);

                using (new EditorGUI.DisabledScope(!s_LastFoundAnimator.isHuman))
                {
                    using (new GUILayout.HorizontalScope())
                    {
                        m_ExternalBodyData = EditorGUIUtils.ObjectFieldWithControlIdCheck(
                            m_ExternalBodyData, ref m_ObjectSelectorControlId, GUILayout.Width(135),
                            GUILayout.Height(17));

                        using (new EditorGUI.DisabledScope(m_ExternalBodyData == null))
                        {
                            if (GUILayout.Button(k_LoadExternalPose, GUILayout.Width(40), GUILayout.Height(17)))
                            {
                                LoadBodyPose(s_LastFoundAnimator, m_ExternalBodyData);
                            }
                        }
                    }

                    using (new GUILayout.HorizontalScope())
                    {
                        if (GUILayout.Button(k_ResetPoseButton, GUILayout.Width(62)))
                        {
                            LoadBodyPose(s_LastFoundAnimator);
                        }

                        if (GUILayout.Button(k_TPoseButton, GUILayout.Width(62)))
                        {
                            LoadBodyPose(s_LastFoundAnimator, MarsBodySettings.instance.TPoseBodyData, true);
                        }

                        if (GUILayout.Button(k_SaveSelectedPoseButton, GUILayout.Width(65)))
                        {
                            GenerateSerializedDataFromAvatar(s_LastFoundAnimator);
                        }
                    }
                }
            }

            EditorGUIUtils.EatMouseInput(winPos, "BodyPoseUtility");

            Handles.EndGUI();
        }