Elin Decompiled Documentation EA 23.102 Nightly
Loading...
Searching...
No Matches
LogicalPointManager.cs
Go to the documentation of this file.
1using System.Collections.Generic;
2
4{
5 public List<LogicalPoint> list = new List<LogicalPoint>();
6
7 public Dictionary<int, LogicalPoint> dict = new Dictionary<int, LogicalPoint>();
8
9 public HashSet<Point> refreshList = new HashSet<Point>();
10
11 public virtual bool AllowBlock => false;
12
13 public virtual LogicalPoint Create()
14 {
15 return null;
16 }
17
19 {
20 if (!point.IsValid)
21 {
22 return null;
23 }
24 int index = point.index;
25 LogicalPoint logicalPoint = dict.TryGetValue(index);
26 if (logicalPoint == null)
27 {
28 if (!AllowBlock && point.cell.HasBlock)
29 {
30 return null;
31 }
32 logicalPoint = Create();
33 logicalPoint.Set(point);
34 list.Add(logicalPoint);
35 dict.Add(index, logicalPoint);
36 }
37 return logicalPoint;
38 }
39
41 {
42 return GetOrCreate(point);
43 }
44
45 public void Remove(int key)
46 {
47 LogicalPoint item = dict[key];
48 list.Remove(item);
49 dict.Remove(key);
50 }
51}
bool HasBlock
Definition: Cell.cs:643
Definition: EClass.cs:5
LogicalPoint Refresh(Point point)
Dictionary< int, LogicalPoint > dict
HashSet< Point > refreshList
virtual LogicalPoint Create()
List< LogicalPoint > list
LogicalPoint GetOrCreate(Point point)
new void Set(Point p)
Definition: LogicalPoint.cs:11
Definition: Point.cs:9
int index
Definition: Point.cs:49
bool IsValid
Definition: Point.cs:88
Cell cell
Definition: Point.cs:51