public void RotateSelected(Vector3 Force, Vector3 Origin)
        {
            Vector3 Result  = Vector3.Zero;
            bool    Success = false;

            Basic3DObject.GetAveragePosition(SelectedGameObjects, ref Result, ref Success);

            foreach (GameObject g in SelectedGameObjects)
            {
                if (g.GetType().IsSubclassOf(typeof(Basic3DObject)))
                {
                    Basic3DObject b = (Basic3DObject)g;
                    b.ApplyRotate(Force, Result, false);
                }
            }
        }
        public void ApplyRotate(Vector3 Force, Vector3 Origin, bool ApplyToChildren)
        {
            Rotation.add(Force);

            if (ApplyToChildren)
            {
                foreach (GameObject g in HierarchyChildren)
#if EDITOR && WINDOWS
                    if (!ParentLevel.LevelForEditing || !g.EditorSelected)
#endif
                    if (g.GetType().IsSubclassOf(typeof(Basic3DObject)))
                    {
                        Basic3DObject b = (Basic3DObject)g;
                        b.ApplyRotate(Force, Origin, true);
                    }
}
            }