//-----------------------------------------------------------------------------------
 public override void FreeResources()
 {
     DestroyEntities();
     FieldControllerA.DestroyField();
     FieldControllerB.DestroyField();
     FieldControllerC.DestroyField();
 }
        //-----------------------------------------------------------------------------------
        public void CheckUpdate()
        {
            bool creationModeWithLocators = (Data.CreationMode == CNJointGroups.CreationModeEnum.AtLocatorsBBoxCenters ||
                                             Data.CreationMode == CNJointGroups.CreationModeEnum.AtLocatorsPositions ||
                                             Data.CreationMode == CNJointGroups.CreationModeEnum.AtLocatorsVertexes);

            bool updateNeeded = Data.NeedsUpdate || (FieldControllerA.IsUpdateNeeded() ||
                                                     FieldControllerB.IsUpdateNeeded() ||
                                                     (FieldControllerC.IsUpdateNeeded() && creationModeWithLocators));

            if (updateNeeded)
            {
                DestroyEntities();
            }
        }
 //-----------------------------------------------------------------------------------
 public override void SetScopeId(uint scopeId)
 {
     FieldControllerA.SetScopeId(scopeId);
     FieldControllerB.SetScopeId(scopeId);
     FieldControllerC.SetScopeId(scopeId);
 }
 //-----------------------------------------------------------------------------------
 public override void BuildListItems()
 {
     FieldControllerA.BuildListItems();
     FieldControllerB.BuildListItems();
     FieldControllerC.BuildListItems();
 }
 //-----------------------------------------------------------------------------------
 public override void StoreInfo()
 {
     FieldControllerA.StoreFieldInfo();
     FieldControllerB.StoreFieldInfo();
     FieldControllerC.StoreFieldInfo();
 }
 //-----------------------------------------------------------------------------------
 public override void LoadInfo()
 {
     FieldControllerA.RestoreFieldInfo();
     FieldControllerB.RestoreFieldInfo();
     FieldControllerC.RestoreFieldInfo();
 }
 //-----------------------------------------------------------------------------------
 public void AddGameObjectsToC(UnityEngine.Object[] draggedObjects, bool recalculateFields)
 {
     FieldControllerC.AddGameObjects(draggedObjects, recalculateFields);
 }