45 lines
1.4 KiB
C#
45 lines
1.4 KiB
C#
using UnityEngine.UIElements;
|
|
using EasyChart.Layers;
|
|
|
|
namespace EasyChart
|
|
{
|
|
internal sealed class ChartGeometryModule : IChartModule, IChartGeometryModule
|
|
{
|
|
private ChartElement _owner;
|
|
private ChartKernel _kernel;
|
|
|
|
public void Bind(ChartElement owner, ChartKernel kernel)
|
|
{
|
|
_owner = owner;
|
|
_kernel = kernel;
|
|
}
|
|
|
|
public void Unbind()
|
|
{
|
|
_owner = null;
|
|
_kernel = null;
|
|
}
|
|
|
|
public void OnGeometryChanged(GeometryChangedEvent evt)
|
|
{
|
|
if (_owner == null) return;
|
|
|
|
if (_owner.EditorHandleGeometryChangedInternal(evt)) return;
|
|
|
|
bool showCartesian = _owner.Data != null && _owner.Data.CoordinateSystem == CoordinateSystemType.Cartesian2D;
|
|
|
|
GridLayer grid = _owner.GridLayerInternal;
|
|
if (grid != null) grid.visible = showCartesian;
|
|
|
|
AxisLayer axis = _owner.AxisLayerInternal;
|
|
if (axis != null) axis.visible = showCartesian;
|
|
|
|
float tx = _owner.IsCategorySmoothTranslatingInternal ? _owner.CategoryScrollOffsetXInternal : 0f;
|
|
float ty = _owner.IsCategorySmoothTranslatingInternal ? _owner.CategoryScrollOffsetYInternal : 0f;
|
|
_owner.ApplyCategoryScrollTranslateInternal(tx, ty);
|
|
|
|
_kernel?.InvalidateGeometryChanged(showCartesian, immediate: true);
|
|
}
|
|
}
|
|
}
|