// =========================================================================
        // Utilities
        // -------------------------------------------------------------------------
        // Don't use this function directly !!!
        // Use ToggleMultiSelection or SelectedObject= value to add an object to the
        // selection list.
        void RemoveFromSelectedObjects(iCS_EditorObject obj)
        {
            int idx = mySelectedObjects.IndexOf(obj);

            if (idx == -1)
            {
                return;
            }
            mySelectedObjects.RemoveAt(idx);
            if (idx == 0)
            {
                SelectedObjectId = mySelectedObjects.Count == 0 ? -1 : mySelectedObjects[0].InstanceId;
            }
            obj.ForEachConnectedProducerTypeCast(n => RemoveFromSelectedObjects(n));
        }
 // -------------------------------------------------------------------------
 // Don't use this function directly !!!
 // Use ToggleMultiSelection or SelectedObject= value to add an object to the
 // selection list.
 void AddToSelectedObjects(iCS_EditorObject obj)
 {
     // Add new object to selection list.
     mySelectedObjects.Add(obj);
     obj.ForEachConnectedProducerTypeCast(n => AddToSelectedObjects(n));
 }