public void SetCandle(int part, IList <CandleChartData.CandleValue> candles, CandleChartData.CandleSettings settings) { mPart = part; mCandles.Clear(); mCandles.AddRange(candles); mCandleSettings = settings; double minX = double.PositiveInfinity; double minY = double.PositiveInfinity; double maxX = double.NegativeInfinity; double maxY = double.NegativeInfinity; for (int i = 0; i < mCandles.Count; i++) { var candle = mCandles[i]; minY = Math.Min(candle.LowBound, minY); maxY = Math.Max(candle.HighBound, maxY); minX = Math.Min(minX, candle.Start); maxX = Math.Max(maxX, candle.Start + candle.Duration); } mMin = new Vector2((float)minX, (float)minY); mMax = new Vector2((float)maxX, (float)maxY); SetAllDirty(); Rebuild(CanvasUpdate.PreRender); SetUpAllHoverObjects(); }
public void Generate(CandleChart parent, Rect viewRect, IList <CandleChartData.CandleValue> value, CandleChartData.CandleSettings settings) { if (parent.IsCanvas == false) { Debug.LogWarning("prefab is meant to be used with canvas candle chart only"); return; } if (mCandle == null) { mCandle = CreateCandleGraphic(); } if (settings.Fill == null || settings.CandleThicknessMultiplier < 0.0001f) { mCandle.SetCandle(0, mEmptyCandle, settings); } else { mCandle.SetCandle(0, value, settings); } mCandle.HoverTransform(transform); mCandle.SetViewRect(viewRect, new Rect()); mCandle.SetHoverPrefab(settings.CandleHoverPrefab); mCandle.material = settings.Fill; if (mLine == null) { mLine = CreateCandleGraphic(); } if (settings.Line == null || settings.LineThickness < 0.0001f) { mLine.SetCandle(1, mEmptyCandle, settings); } else { mLine.SetCandle(1, value, settings); } mLine.HoverTransform(transform); mLine.SetHoverPrefab(settings.CandleHoverPrefab); mLine.material = settings.Line; mLine.SetViewRect(viewRect, new Rect()); if (mOutline == null) { mOutline = CreateCandleGraphic(); } mOutline.material = settings.Outline; mOutline.SetViewRect(viewRect, new Rect()); if (settings.Outline == null || settings.OutlineThickness < 0.0001f) { mOutline.SetCandle(2, mEmptyCandle, settings); } else { mOutline.SetCandle(2, value, settings); } }