using OpenTK.Mathematics; namespace Yw.WinFrmUI.Hydro { /// /// 三维点缓存辅助类 /// internal class Vector32dCacheHelper { /// /// /// public Vector32dCacheHelper(NetworkL3d nw) { _nw = nw; Initial(); } private NetworkL3d _nw = null; private Dictionary> _dict = new(); //初始化 private void Initial() { if (_nw == null) { return; } foreach (var visual in _nw.Visuals) { var pts = visual.GetPositions(); var vpts = pts.Select(x => new Vector3(x.X, x.Y, x.Z)).ToList(); _dict.Add(visual.Id, vpts); } } /// /// 获取位置 /// public List GetPositions() { if (_dict.Count < 1) { return default; } return _dict.SelectMany(x => x.Value).ToList(); } /// /// 获取位置 /// public List GetPositions(string id) { if (_dict.ContainsKey(id)) { return _dict[id]; } return default; } } }