hawkeye camera support(not tested)

This commit is contained in:
meelstorm
2025-08-19 12:45:50 +02:00
parent f80b275ad8
commit 6ef6aced8d
170 changed files with 20190 additions and 72 deletions

View File

@@ -181,4 +181,54 @@ public class ArrayModelMatchingOperation:BaseOperation
SearchArea.Load(br);
ReloadModelInfo();
}
public override void Save(Dictionary<string, object> dict)
{
base.Save(dict);
dict[nameof(ReferenceId)] = ReferenceId.ToString();
dict[nameof(Margin)] = Margin;
dict[nameof(Amount)] = Amount;
dict[nameof(ModelName)] = ModelName;
// Save ArrayHorizontalElement SearchArea properties manually
dict["SearchArea_Editable"] = SearchArea.Editable;
dict["SearchArea_LocationX"] = SearchArea.Location.X;
dict["SearchArea_LocationY"] = SearchArea.Location.Y;
dict["SearchArea_OffsetX"] = SearchArea.Offset.X;
dict["SearchArea_OffsetY"] = SearchArea.Offset.Y;
dict["SearchArea_BlockSizeX"] = SearchArea.BlockSize.X;
dict["SearchArea_BlockSizeY"] = SearchArea.BlockSize.Y;
dict["SearchArea_BlockCount"] = SearchArea.BlockCount;
}
public override void Load(Dictionary<string, object> dict)
{
base.Load(dict);
if (dict.ContainsKey(nameof(ReferenceId)))
ReferenceId = new Guid(dict[nameof(ReferenceId)].ToString());
if (dict.ContainsKey(nameof(Margin)))
Margin = Convert.ToInt32(dict[nameof(Margin)]);
if (dict.ContainsKey(nameof(Amount)))
Amount = Convert.ToInt32(dict[nameof(Amount)]);
if (dict.ContainsKey(nameof(ModelName)))
ModelName = dict[nameof(ModelName)].ToString();
// Load ArrayHorizontalElement SearchArea properties manually
if (dict.ContainsKey("SearchArea_Editable") || dict.ContainsKey("SearchArea_LocationX") || dict.ContainsKey("SearchArea_BlockSizeX"))
{
SearchArea = new ArrayHorizontalElement();
if (dict.ContainsKey("SearchArea_Editable"))
SearchArea.Editable = Convert.ToBoolean(dict["SearchArea_Editable"]);
if (dict.ContainsKey("SearchArea_LocationX") && dict.ContainsKey("SearchArea_LocationY"))
SearchArea.Location = new Vector2(Convert.ToSingle(dict["SearchArea_LocationX"]), Convert.ToSingle(dict["SearchArea_LocationY"]));
if (dict.ContainsKey("SearchArea_OffsetX") && dict.ContainsKey("SearchArea_OffsetY"))
SearchArea.Offset = new Vector2(Convert.ToSingle(dict["SearchArea_OffsetX"]), Convert.ToSingle(dict["SearchArea_OffsetY"]));
if (dict.ContainsKey("SearchArea_BlockSizeX") && dict.ContainsKey("SearchArea_BlockSizeY"))
SearchArea.BlockSize = new Vector2(Convert.ToSingle(dict["SearchArea_BlockSizeX"]), Convert.ToSingle(dict["SearchArea_BlockSizeY"]));
if (dict.ContainsKey("SearchArea_BlockCount"))
SearchArea.BlockCount = Convert.ToInt32(dict["SearchArea_BlockCount"]);
}
ReloadModelInfo();
}
}