// This returns all selected objects
        internal List <IVisualEventReceiver> GetSelectedObjects(bool includesectors, bool includesidedefs, bool includethings)
        {
            List <IVisualEventReceiver> objs = new List <IVisualEventReceiver>();

            foreach (IVisualEventReceiver i in selectedobjects)
            {
                if ((i is BaseVisualGeometrySector) && includesectors)
                {
                    objs.Add(i);
                }
                else if ((i is BaseVisualGeometrySidedef) && includesidedefs)
                {
                    objs.Add(i);
                }
                else if ((i is BaseVisualThing) && includethings)
                {
                    objs.Add(i);
                }
            }

            // Add highlight?
            if (selectedobjects.Count == 0)
            {
                IVisualEventReceiver i = (target.picked as IVisualEventReceiver);
                if ((i is BaseVisualGeometrySector) && includesectors)
                {
                    objs.Add(i);
                }
                else if ((i is BaseVisualGeometrySidedef) && includesidedefs)
                {
                    objs.Add(i);
                }
                else if ((i is BaseVisualThing) && includethings)
                {
                    objs.Add(i);
                }
            }

            return(objs);
        }
 // This removes a selected object
 internal void RemoveSelectedObject(IVisualEventReceiver obj)
 {
     selectedobjects.Remove(obj);
     selectionchanged = true;
 }
 // This adds a selected object
 internal void AddSelectedObject(IVisualEventReceiver obj)
 {
     selectedobjects.Add(obj);
     selectionchanged = true;
 }