#define Graph_And_Chart_PRO
using ChartAndGraph.Axis;
using ChartAndGraph.DataSource;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.UI;
namespace ChartAndGraph
{
///
/// this is a base class for all chart types
///
[Serializable]
public abstract class AnyChart : MonoBehaviour, IInternalUse, ISerializationCallbackReceiver
{
private Vector2 mLastSetSize = Vector2.zero;
private bool mGenerating = false;
private Dictionary mHorizontalValueToStringMap = new Dictionary(ChartCommon.DefaultDoubleComparer);
private Dictionary mVerticalValueToStringMap = new Dictionary(ChartCommon.DefaultDoubleComparer);
private Dictionary> mVectorToValueMap = new Dictionary>(ChartCommon.DefaultDoubleVector3Comparer);
protected GameObject mFixPosition = null;
[SerializeField]
[HideInInspector]
protected GameObject mPreviewObject;
string customNumberFormat;
public string CustomNumberFormat
{
get { return customNumberFormat; }
set
{
customNumberFormat = value;
Invalidate();
}
}
string customDateTimeFormat;
public string CustomDateTimeFormat
{
get { return customDateTimeFormat; }
set
{
customDateTimeFormat = value;
Invalidate();
}
}
public Dictionary> VectorValueToStringMap
{
get { return mVectorToValueMap; }
}
public Dictionary VerticalValueToStringMap
{
get { return mVerticalValueToStringMap; }
}
public Dictionary HorizontalValueToStringMap
{
get { return mHorizontalValueToStringMap; }
}
protected virtual Camera TextCameraLink
{
get { return null; }
}
protected virtual float TextIdleDistanceLink
{
get { return 20f; }
}
public UnityEvent OnRedraw = new UnityEvent();
[SerializeField]
private bool keepOrthoSize = false;
public bool KeepOrthoSize
{
get { return keepOrthoSize; }
set
{
KeepOrthoSize = value;
GenerateChart();
}
}
[SerializeField]
private bool paperEffectText = false;
public bool PaperEffectText
{
get { return paperEffectText; }
set
{
paperEffectText = value;
GenerateChart();
}
}
[SerializeField]
private bool vRSpaceText = false;
public bool VRSpaceText
{
get { return vRSpaceText; }
set
{
vRSpaceText = value;
GenerateChart();
}
}
[SerializeField]
private float vRSpaceScale = 0.1f;
public float VRSpaceScale
{
get { return vRSpaceScale; }
set
{
vRSpaceScale = value;
GenerateChart();
}
}
[SerializeField]
private bool maintainLabelSize = false;
public bool MaintainLabelSize
{
get { return maintainLabelSize; }
set
{
maintainLabelSize = value;
GenerateChart();
}
}
HashSet