void Start() { var graph = GetComponent <GraphChart>(); var labels = GetComponent <ItemLabels>(); if (labels != null) { fractionDigits = labels.FractionDigits; } else { fractionDigits = 2; } if (graph != null) { mChart = graph; graph.PointHovered.AddListener(GraphHover); graph.NonHovered.AddListener(NonHover); return; } var bar = GetComponent <CanvasBarChart>(); if (bar != null) { mChart = bar; bar.BarHovered.AddListener(BarHover); bar.NonHovered.AddListener(NonHover); return; } HoverStart(); }
#pragma warning restore 0672 public void FixLabels(AnyChart parent) { if (mAxis == null) { return; } if (((ChartMainDivisionInfo)mAxis.MainDivisions).Messure == ChartDivisionInfo.DivisionMessure.DataUnits) { SetAxis(mScrollOffset, mParent, mAxis, mOrientation, mIsSubDivisions); return; } for (int i = 0; i < mTexts.Count; i++) { BillboardText text = mTexts[i]; double min = ((IInternalUse)parent).InternalMinValue(mAxis); double max = ((IInternalUse)parent).InternalMaxValue(mAxis); if (text.UserData is AxisBase.TextData) { AxisBase.TextData data = (AxisBase.TextData)text.UserData; double newVal = min * (1.0 - (double)data.interp) + max * (double)data.interp; string toSet = ""; if (mAxis.Format == AxisFormat.Number) { toSet = ChartAdancedSettings.Instance.FormatFractionDigits(data.fractionDigits, (float)newVal, parent.CustomNumberFormat); } else { DateTime date = ChartDateUtility.ValueToDate(newVal); if (mAxis.Format == AxisFormat.DateTime) { toSet = ChartDateUtility.DateToDateTimeString(date, parent.CustomDateTimeFormat); } else { if (mAxis.Format == AxisFormat.Date) { toSet = ChartDateUtility.DateToDateString(date); } else { toSet = ChartDateUtility.DateToTimeString(date); } } } toSet = data.info.TextPrefix + toSet + data.info.TextSuffix; ChartCommon.UpdateTextParams(text.UIText, toSet); } } }
/// <summary> /// used internally to get the tiling for a chart axis division /// </summary> /// <param name="parent"></param> /// <param name="orientation"></param> /// <param name="inf"></param> /// <returns></returns> float GetTiling(AnyChart parent, ChartOrientation orientation, ChartDivisionInfo inf) { MaterialTiling tiling = inf.MaterialTiling; if (tiling.EnableTiling == false || tiling.TileFactor <= 0f) { return(1f); } float length = Math.Abs(ChartCommon.GetAutoLength(parent, orientation, inf)); float backLength = ChartCommon.GetAutoLength(parent, orientation); float depth = ChartCommon.GetAutoDepth(parent, orientation, inf); if (inf.MarkBackLength.Automatic == false) { backLength = inf.MarkBackLength.Value; } if (backLength != 0 && depth > 0) { length += Math.Abs(backLength) + Math.Abs(depth); } return(length / tiling.TileFactor); }
public void SetAxis(double scrollOffset, AnyChart parent, AxisBase axis, ChartOrientation axisOrientation, bool isSubDivisions) { mScrollOffset = scrollOffset; raycastTarget = false; color = Color.white; mAxis = axis; mParent = parent; mIsSubDivisions = isSubDivisions; mOrientation = axisOrientation; if (mMesh == null) { mMesh = new CanvasChartMesh(true); mMesh.RecycleText = true; } mMesh.Clear(); if (isSubDivisions) { mAxis.AddMainDivisionToChartMesh(mScrollOffset, mParent, transform, mMesh, mOrientation); } else { mAxis.AddSubdivisionToChartMesh(mScrollOffset, mParent, transform, mMesh, mOrientation); } mTexts = mMesh.CurrentTextObjects; if (mMesh.TextObjects != null) { foreach (BillboardText text in mMesh.TextObjects) { ((IInternalUse)parent).InternalTextController.AddText(text); } } canvasRenderer.materialCount = 1; if (mDispose != null) { ChartCommon.SafeDestroy(mDispose); } float tiling = 1f; if (!isSubDivisions) { if (axis.SubDivisions.Material != null) { mMaterial = axis.SubDivisions.Material; mDispose = new Material(mMaterial); mDispose.hideFlags = HideFlags.DontSave; material = mDispose; tiling = GetTiling(axis.SubDivisions.MaterialTiling); } } else { if (axis.MainDivisions.Material != null) { mMaterial = axis.MainDivisions.Material; mDispose = new Material(mMaterial); mDispose.hideFlags = HideFlags.DontSave; material = mDispose; tiling = GetTiling(axis.MainDivisions.MaterialTiling); } } mTiling = tiling; if (mDispose != null) { if (mDispose.HasProperty("_ChartTiling")) { mDispose.SetFloat("_ChartTiling", tiling); } } SetAllDirty(); Rebuild(CanvasUpdate.PreRender); mMesh.DestoryRecycled(); }
/// <summary> /// sets the axis settings. Calling this method will cause the axisgenerator to create the axis mesh /// </summary> /// <param name="parent"></param> /// <param name="axis"></param> /// <param name="axisOrientation"></param> /// <param name="isSubDivisions"></param> public void SetAxis(double scrollOffset, AnyChart parent, AxisBase axis, ChartOrientation axisOrientation, bool isSubDivisions) { mScroll = scrollOffset; mParent = parent; mAxis = axis; mOrientation = axisOrientation; mIsSubDivision = isSubDivisions; if (mMesh == null) { mMesh = new WorldSpaceChartMesh(2); mMesh.RecycleText = true; } mMesh.Clear(); mMesh.Orientation = axisOrientation; mAxis = axis; if (isSubDivisions) { axis.AddSubdivisionToChartMesh(scrollOffset, parent, transform, mMesh, axisOrientation); } else { axis.AddMainDivisionToChartMesh(scrollOffset, parent, transform, mMesh, axisOrientation); } if (mMesh.TextObjects != null) { foreach (BillboardText text in mMesh.TextObjects) { ((IInternalUse)parent).InternalTextController.AddText(text); } } mTexts = mMesh.CurrentTextObjects; Mesh newMesh = mMesh.Generate(mCreated); mCreated = newMesh; newMesh.hideFlags = HideFlags.DontSave; if (mFilter == null) { mFilter = GetComponent <MeshFilter>(); } mFilter.sharedMesh = newMesh; MeshCollider collider = GetComponent <MeshCollider>(); if (collider != null) { collider.sharedMesh = newMesh; } ChartCommon.CleanMesh(newMesh, ref mCleanMesh); MeshRenderer renderer = GetComponent <MeshRenderer>(); if (renderer != null) { Material m = mAxis.MainDivisions.Material; float tiling = GetTiling(parent, axisOrientation, mAxis.MainDivisions); if (isSubDivisions) { m = mAxis.SubDivisions.Material; tiling = GetTiling(parent, axisOrientation, mAxis.SubDivisions); } mMaterial = m; if (m != null) { ChartCommon.SafeDestroy(mDispose); mDispose = new Material(m); mDispose.hideFlags = HideFlags.DontSave; renderer.sharedMaterial = mDispose; mTiling = tiling; if (mDispose.HasProperty("_ChartTiling")) { mDispose.SetFloat("_ChartTiling", mTiling); } } } mMesh.DestoryRecycled(); }
partial void InnerSetAxis(double scrollOffset, AnyChart parent, AxisBase axis, ChartOrientation axisOrientation, bool isSubDivisions);
partial void InnerFixLabels(AnyChart parent);
public void SetAxis(double scrollOffset, AnyChart parent, AxisBase axis, ChartOrientation axisOrientation, bool isSubDivisions) { InnerSetAxis(scrollOffset, parent, axis, axisOrientation, isSubDivisions); }
public void FixLabels(AnyChart parent) { InnerFixLabels(parent); }