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();
        }
Beispiel #2
0
        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);
            }
        }