/// <summary>
        /// Renders a preview of the hollow sphere currently edited
        /// </summary>
        private void RenderSpherePreview(MyAsteroidSphereData data)
        {
            MyPluginDrawSession.Static.RemoveRenderObject(PREVIEW_RENDER_ID);

            if (data != null)
            {
                MyPluginDrawSession.Static.AddRenderObject(PREVIEW_RENDER_ID, new RenderHollowSphere(data.Center, (float)data.OuterRadius, (float)data.OuterRadius, Color.LightGreen.ToVector4(), (float)data.OuterRadius / 500f));
            }
        }
        public static MyAsteroidObjectShapeSphere CreateFromAsteroidSphereData(MyAsteroidSphereData data)
        {
            MyAsteroidObjectShapeSphere shape = new MyAsteroidObjectShapeSphere();

            shape.Center      = data.Center;
            shape.InnerRadius = data.InnerRadius;
            shape.OuterRadius = data.OuterRadius;

            return(shape);
        }
        /// <summary>
        /// Generates a MyAsteroidSphereData object from the gui elements of the spawn menu
        /// </summary>
        /// <returns>The generated data</returns>
        private MyAsteroidSphereData GetDataFromGui()
        {
            if (m_parentObjectListBox.SelectedItems.Count <= 0)
            {
                return(null);
            }
            var                  selected = m_parentObjectListBox.SelectedItems[m_parentObjectListBox.SelectedItems.Count - 1];
            MySystemObject       parent   = selected.UserData as MySystemObject;
            MyAsteroidSphereData data     = new MyAsteroidSphereData();

            data.Center      = parent.CenterPosition;
            data.InnerRadius = m_radiusSlider.Value * 1000;
            data.OuterRadius = m_radiusSlider.Value * 1000 + m_widthSlider.Value * 1000;

            return(data);
        }
        private void GenerateData(out MySystemAsteroids instance, out MyAsteroidSphereData data)
        {
            if (m_parentObjectListBox.SelectedItems.Count <= 0)
            {
                instance = null;
                data     = null;
                return;
            }
            var           selectedParent = m_parentObjectListBox.SelectedItems[m_parentObjectListBox.SelectedItems.Count - 1];
            var           parentItem     = selectedParent.UserData as MySystemObject;
            StringBuilder name           = new StringBuilder();

            m_nameBox.GetText(name);

            instance = new MySystemAsteroids();
            instance.AsteroidTypeName = MyAsteroidSphereProvider.TYPE_NAME;
            instance.CenterPosition   = parentItem.CenterPosition;
            instance.AsteroidSize     = new MySerializableMinMax((int)m_asteroidSizesSlider.CurrentMin, (int)m_asteroidSizesSlider.CurrentMax);
            instance.ParentId         = parentItem.Id;
            instance.DisplayName      = name.ToString();

            data = GetDataFromGui();
        }