//*** Routines ****// public void OnRangeSliderDrag(BaseItem targetNode, int rangeIndex, float dragDelta) { var selectedLeafNodes = new List <BaseItem>(); if (targetNode.IsLeafNode()) { selectedLeafNodes.Add(targetNode); } else { selectedLeafNodes.AddRange(targetNode.GetAllLeafChildren()); } // Init current drag value if (targetNode.RangeFieldItem.CustomRangeSliderUi.StartedDragging) { var averageCutParams = GetAverageCutParamsFromLeafNodes(selectedLeafNodes); _currentDragValue = rangeIndex == 0 ? averageCutParams.value2 : averageCutParams.value1; } _currentDragValue += dragDelta / 200; _currentDragValue = Mathf.Min(1.0f, Mathf.Max(0.0f, _currentDragValue)); // Set new cut params values foreach (var child in selectedLeafNodes) { var index = CPUBuffers.Get.NodeToIngredientLookup[child.Id]; if (index < 0) { throw new Exception("Node to protein lookup error"); } foreach (var cutObject in CutObjectManager.Get.GetSelectedCutObjects()) { if (rangeIndex == 0) { cutObject.SetValue2For(index, _currentDragValue); //GlobalProperties.Get.AdjustVisible = _currentDragValue; } if (rangeIndex == 1) { cutObject.SetValue1For(index, _currentDragValue); } } } UpdateThreeStateToogleStates(); UpdateVisibilityToogleStates(); }
//*** Utils ****// private List <BaseItem> GetAllLeaveNodesFrom(BaseItem baseItem) { var selectedLeafNodes = new List <BaseItem>(); if (baseItem.IsLeafNode()) { selectedLeafNodes.Add(baseItem); } else { selectedLeafNodes.AddRange(baseItem.GetAllLeafChildren()); } return(selectedLeafNodes); }
//*** Routines ****// public void OnRangeSliderDrag(BaseItem targetNode, int rangeIndex, float dragDelta) { var selectedLeafNodes = new List<BaseItem>(); if (targetNode.IsLeafNode()) selectedLeafNodes.Add(targetNode); else selectedLeafNodes.AddRange(targetNode.GetAllLeafChildren()); // Init current drag value if (targetNode.RangeFieldItem.CustomRangeSliderUi.StartedDragging) { var averageCutParams = GetAverageCutParamsFromLeafNodes(selectedLeafNodes); _currentDragValue = rangeIndex == 0 ? averageCutParams.value2 : averageCutParams.value1; } _currentDragValue += dragDelta / 200; _currentDragValue = Mathf.Min(1.0f, Mathf.Max(0.0f, _currentDragValue)); // Set new cut params values foreach (var child in selectedLeafNodes) { var index = SceneManager.Get.NodeToIngredientLookup[child.Id]; if (index < 0) throw new Exception("Node to protein lookup error"); foreach (var cutObject in SceneManager.Get.GetSelectedCutObjects()) { if (rangeIndex == 0) { cutObject.SetValue2For(index, _currentDragValue); PersistantSettings.Instance.AdjustVisible = _currentDragValue; } if (rangeIndex == 1) { cutObject.SetValue1For(index, _currentDragValue); } } } UpdateThreeStateToogleStates(); UpdateVisibilityToogleStates(); }
//*** Utils ****// private List<BaseItem> GetAllLeaveNodesFrom(BaseItem baseItem) { var selectedLeafNodes = new List<BaseItem>(); if (baseItem.IsLeafNode()) selectedLeafNodes.Add(baseItem); else selectedLeafNodes.AddRange(baseItem.GetAllLeafChildren()); return selectedLeafNodes; }