public void SelectPoint(TransferFunctionControlPointUI _controlPoint) { this.DeselectPoint(); m_SelectedPoint = _controlPoint; m_ColorPicker.gameObject.SetActive(true); m_ColorPicker.CurrentColor = m_SelectedPoint.Color; }
private void DeselectPoint() { if (m_SelectedPoint) { m_SelectedPoint.Deselect(); m_SelectedPoint = null; m_ColorPicker.gameObject.SetActive(false); } }
public void DeletePoint(TransferFunctionControlPointUI _controlPoint) { // If we are deleting the currently selected point, deselect it first if (m_SelectedPoint == _controlPoint) { this.DeselectPoint(); } Log.Info(this, "Delete point"); Destroy(_controlPoint.gameObject); m_ControlPoints.Remove(_controlPoint); this.Redraw(); }
private void CreatePoint(Vector2 _pointInBox, Color _color, bool _select) { TransferFunctionControlPointUI point = Instantiate(m_ControlPointPrefab, transform); point.GetComponent <RectTransform>().anchoredPosition = _pointInBox; point.name = $"Transferfunction_Control_Point"; point.Init(this, _color, _select); m_ControlPoints.Add(point); this.Redraw(); if (_select) { this.SelectPoint(point); } }
private TransferFunction GenerateTransferFunction() { TransferFunction function = new TransferFunction(); if (m_ControlPoints.Count > 0) { Vector2 size = m_RectTransform.sizeDelta; for (int i = 0; i < m_ControlPoints.Count; i++) { TransferFunctionControlPointUI controlPoint = m_ControlPoints[i]; Transform transform = controlPoint.transform; // We need to normalize the x and y position float data = (transform.localPosition.x + size.x / 2) / size.x; float alpha = (transform.localPosition.y + size.y / 2) / size.y; function.AddControlPoint(new TFColourControlPoint(data, controlPoint.Color)); function.AddControlPoint(new TFAlphaControlPoint(data, alpha)); // We create additional edge points for the first and last control point if (i == 0) { function.AddControlPoint(new TFColourControlPoint(0, controlPoint.Color)); function.AddControlPoint(new TFAlphaControlPoint(0, alpha)); } if (i == m_ControlPoints.Count - 1) { function.AddControlPoint(new TFColourControlPoint(1, controlPoint.Color)); function.AddControlPoint(new TFAlphaControlPoint(1, alpha)); } } } else { function.AddControlPoint(new TFColourControlPoint(0, Color.white)); function.AddControlPoint(new TFAlphaControlPoint(0, 1)); function.AddControlPoint(new TFColourControlPoint(1, Color.white)); function.AddControlPoint(new TFAlphaControlPoint(1, 1)); } function.GenerateTexture(); return(function); }