SaveRandomForOutputResolutions

This commit is contained in:
2022-12-29 15:24:23 -07:00
parent 26edd826d5
commit 06a1207285
9 changed files with 209 additions and 109 deletions

View File

@ -173,7 +173,7 @@ public class MapLogicSupport : Shared.Models.Methods.IMapLogicSupport
return results;
}
private static FaceDistanceContainer[] GetFaceDistanceContainers(Face[] distinctFilteredFaces)
private static FaceDistanceContainer[] GetFaceDistanceContainers(List<Face> distinctFilteredFaces)
{
FaceDistanceContainer[] results;
FaceDistance faceDistance;
@ -211,7 +211,7 @@ public class MapLogicSupport : Shared.Models.Methods.IMapLogicSupport
return faceDistanceEncodings;
}
public SortingContainer[] SetFaceMappingSortingCollectionThenGetSortingContainers(int maxDegreeOfParallelism, long ticks, MapLogic mapLogic, Face[] distinctFilteredFaces, List<FaceDistanceContainer> missingFaceDistanceContainers, int? useFiltersCounter)
public SortingContainer[] SetFaceMappingSortingCollectionThenGetSortingContainers(int maxDegreeOfParallelism, long ticks, MapLogic mapLogic, List<Face> distinctFilteredFaces, List<FaceDistanceContainer> missingFaceDistanceContainers, int? useFiltersCounter)
{
SortingContainer[] results;
List<SortingContainer> collection = new();
@ -248,22 +248,22 @@ public class MapLogicSupport : Shared.Models.Methods.IMapLogicSupport
return results;
}
public static Mapping[] GetSelectedMappingCollection(Face[] distinctFilteredFaces)
public static Mapping[] GetSelectedMappingCollection(List<Face> distinctFilteredFaces)
{
Mapping[] results;
IEnumerable<Mapping> collection = from l in distinctFilteredFaces orderby l.Mapping?.MappingFromItem.MinimumDateTime descending select l.Mapping;
IEnumerable<Mapping> collection = from l in distinctFilteredFaces orderby l.Mapping?.MappingFromItem.Id select l.Mapping;
results = (from l in collection where l is not null select l).ToArray();
return results;
}
public static void SetFaceDistances(int maxDegreeOfParallelism, long ticks, Face[] distinctFilteredFaces)
public static void SetFaceDistances(int maxDegreeOfParallelism, long ticks, List<Face> distinctFilteredFaces)
{
int totalSeconds = (int)Math.Floor(new TimeSpan(DateTime.Now.Ticks - ticks).TotalSeconds);
ParallelOptions parallelOptions = new() { MaxDegreeOfParallelism = maxDegreeOfParallelism };
string message = $") {distinctFilteredFaces.Length:000} Load Face Encoding - {totalSeconds} total second(s)";
string message = $") {distinctFilteredFaces.Count:000} Load Face Encoding - {totalSeconds} total second(s)";
ProgressBarOptions options = new() { ProgressCharacter = '─', ProgressBarOnBottom = true, DisableBottomPercentage = true };
using ProgressBar progressBar = new(distinctFilteredFaces.Length, message, options);
_ = Parallel.For(0, distinctFilteredFaces.Length, parallelOptions, (i, state) =>
using ProgressBar progressBar = new(distinctFilteredFaces.Count, message, options);
_ = Parallel.For(0, distinctFilteredFaces.Count, parallelOptions, (i, state) =>
{
Face face = distinctFilteredFaces[i];
if (face.FaceEncoding is null || face.Mapping is null)
@ -331,12 +331,15 @@ public class MapLogicSupport : Shared.Models.Methods.IMapLogicSupport
public static Dictionary<int, Dictionary<int, Mapping>> GetIdToNormalizedRectangleToFace(Mapping[] mappingCollection)
{
Dictionary<int, Dictionary<int, Mapping>> results = new();
Dictionary<int, Mapping> keyValuePairs;
Dictionary<int, Mapping>? keyValuePairs;
foreach (Mapping mapping in mappingCollection)
{
if (!results.ContainsKey(mapping.MappingFromItem.Id))
if (!results.TryGetValue(mapping.MappingFromItem.Id, out keyValuePairs))
{
results.Add(mapping.MappingFromItem.Id, new());
keyValuePairs = results[mapping.MappingFromItem.Id];
if (!results.TryGetValue(mapping.MappingFromItem.Id, out keyValuePairs))
throw new Exception();
}
if (keyValuePairs.ContainsKey(mapping.MappingFromLocation.NormalizedRectangle))
continue;
keyValuePairs.Add(mapping.MappingFromLocation.NormalizedRectangle, mapping);