226 lines
12 KiB
C#
226 lines
12 KiB
C#
using System.Text.Json;
|
|
using System.Text.Json.Serialization;
|
|
|
|
namespace View_by_Distance.Instance.Models;
|
|
|
|
public class Configuration
|
|
{
|
|
|
|
protected Property.Models.Configuration _PropertyConfiguration;
|
|
public Property.Models.Configuration PropertyConfiguration => _PropertyConfiguration;
|
|
|
|
public bool CheckDFaceAndUpWriteDates { init; get; }
|
|
public bool CheckJsonForDistanceResults { init; get; }
|
|
public int CrossDirectoryMaxItemsInDistanceCollection { init; get; }
|
|
public int DistanceFactor { init; get; }
|
|
public bool DistanceMoveUnableToMatch { init; get; }
|
|
public int DistancePixelDistanceTolerance { init; get; }
|
|
public bool DistanceRenameToMatch { init; get; }
|
|
public int FaceDistanceAreaPermilleTolerance { init; get; }
|
|
public int FaceDistanceHiddenImageFactor { init; get; }
|
|
public double FaceDistanceMinimumConfidence { init; get; }
|
|
public int FaceDistancePermyriad { init; get; }
|
|
public double FaceDistanceTolerance { init; get; }
|
|
public bool ForceFaceLastWriteTimeToCreationTime { init; get; }
|
|
public bool ForceMetadataLastWriteTimeToCreationTime { init; get; }
|
|
public bool ForceResizeLastWriteTimeToCreationTime { init; get; }
|
|
public string[] IgnoreExtensions { init; get; }
|
|
public string[] IgnoreRelativePaths { init; get; }
|
|
public string[] JLinks { init; get; }
|
|
public string[] LoadOrCreateThenSaveDistanceResultsForOutputResolutions { init; get; }
|
|
public string[] LoadOrCreateThenSaveImageFacesResultsForOutputResolutions { init; get; }
|
|
public bool LoadOrCreateThenSaveIndex { init; get; }
|
|
public int LocationConfidenceFactor { init; get; }
|
|
public int LocationDigits { init; get; }
|
|
public int LocationFactor { init; get; }
|
|
public int? MappedMaxIndex { init; get; }
|
|
public string MappingDefaultName { init; get; }
|
|
public bool MappingSaveNotMapped { init; get; }
|
|
public bool MappingSaveMapped { init; get; }
|
|
public bool MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping { init; get; }
|
|
public bool MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping { init; get; }
|
|
public int MaxItemsInDistanceCollection { init; get; }
|
|
public string[] MixedYearRelativePaths { init; get; }
|
|
public string ModelDirectory { init; get; }
|
|
public string ModelName { init; get; }
|
|
public int NumberOfJitters { init; get; }
|
|
public int NumberOfTimesToUpsample { init; get; }
|
|
public string OutputExtension { init; get; }
|
|
public int OutputQuality { init; get; }
|
|
public string[] OutputResolutions { init; get; }
|
|
public bool OverrideForFaceImages { init; get; }
|
|
public bool OverrideForFaceLandmarkImages { init; get; }
|
|
public bool OverrideForResizeImages { init; get; }
|
|
public int PaddingLoops { init; get; }
|
|
public int PersonBirthdayFirstYear { init; get; }
|
|
public string PersonBirthdayFormat { init; get; }
|
|
public string PersonKeyFormat { init; get; }
|
|
public string PredictorModelName { init; get; }
|
|
public bool PropertiesChangedForDistance { init; get; }
|
|
public bool PropertiesChangedForFaces { init; get; }
|
|
public bool PropertiesChangedForIndex { init; get; }
|
|
public bool PropertiesChangedForMetadata { init; get; }
|
|
public bool PropertiesChangedForResize { init; get; }
|
|
public bool RetryImagesWithoutAFace { init; get; }
|
|
public bool Reverse { init; get; }
|
|
public string[] SaveFaceLandmarkForOutputResolutions { init; get; }
|
|
public bool SaveFullYearOfRandomFiles { init; get; }
|
|
public string[] SaveResizedImagesByPersonKeyFormattedForOutputResolutions { init; get; }
|
|
public bool SaveResizedSubfiles { init; get; }
|
|
public bool SkipSearch { init; get; }
|
|
public int SortingDaysDeltaTolerance { init; get; }
|
|
public int SortingMaximumPerFaceShouldBeHigh { init; get; }
|
|
public int SortingMaximumPerKey { init; get; }
|
|
public int SortingMinimumToUseSigma { init; get; }
|
|
public bool TestDistanceResults { init; get; }
|
|
public string[] ValidResolutions { init; get; }
|
|
|
|
[JsonConstructor]
|
|
public Configuration(Property.Models.Configuration propertyConfiguration,
|
|
bool checkDFaceAndUpWriteDates,
|
|
bool checkJsonForDistanceResults,
|
|
int crossDirectoryMaxItemsInDistanceCollection,
|
|
int distanceFactor,
|
|
bool distanceMoveUnableToMatch,
|
|
int distancePixelDistanceTolerance,
|
|
bool distanceRenameToMatch,
|
|
int faceDistanceAreaPermilleTolerance,
|
|
int faceDistanceHiddenImageFactor,
|
|
double faceDistanceMinimumConfidence,
|
|
int faceDistancePermyriad,
|
|
double faceDistanceTolerance,
|
|
bool forceFaceLastWriteTimeToCreationTime,
|
|
bool forceMetadataLastWriteTimeToCreationTime,
|
|
bool forceResizeLastWriteTimeToCreationTime,
|
|
string[] ignoreExtensions,
|
|
string[] ignoreRelativePaths,
|
|
string[] jLinks,
|
|
string[] loadOrCreateThenSaveDistanceResultsForOutputResolutions,
|
|
string[] loadOrCreateThenSaveImageFacesResultsForOutputResolutions,
|
|
bool loadOrCreateThenSaveIndex,
|
|
int locationConfidenceFactor,
|
|
int locationDigits,
|
|
int locationFactor,
|
|
int? mappedMaxIndex,
|
|
string mappingDefaultName,
|
|
bool mappingSaveNotMapped,
|
|
bool mappingSaveMapped,
|
|
bool mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping,
|
|
bool mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping,
|
|
int maxItemsInDistanceCollection,
|
|
string[] mixedYearRelativePaths,
|
|
string modelDirectory,
|
|
string modelName,
|
|
int numberOfJitters,
|
|
int numberOfTimesToUpsample,
|
|
string outputExtension,
|
|
int outputQuality,
|
|
string[] outputResolutions,
|
|
bool overrideForFaceImages,
|
|
bool overrideForFaceLandmarkImages,
|
|
bool overrideForResizeImages,
|
|
int paddingLoops,
|
|
int personBirthdayFirstYear,
|
|
string personBirthdayFormat,
|
|
string personKeyFormat,
|
|
string predictorModelName,
|
|
bool propertiesChangedForDistance,
|
|
bool propertiesChangedForFaces,
|
|
bool propertiesChangedForIndex,
|
|
bool propertiesChangedForMetadata,
|
|
bool propertiesChangedForResize,
|
|
bool retryImagesWithoutAFace,
|
|
bool reverse,
|
|
string[] saveFaceLandmarkForOutputResolutions,
|
|
bool saveFullYearOfRandomFiles,
|
|
string[] saveResizedImagesByPersonKeyFormattedForOutputResolutions,
|
|
bool saveResizedSubfiles,
|
|
bool skipSearch,
|
|
int sortingDaysDeltaTolerance,
|
|
int sortingMaximumPerFaceShouldBeHigh,
|
|
int sortingMaximumPerKey,
|
|
int sortingSigma,
|
|
bool testDistanceResults,
|
|
string[] validResolutions)
|
|
{
|
|
_PropertyConfiguration = propertyConfiguration;
|
|
CheckDFaceAndUpWriteDates = checkDFaceAndUpWriteDates;
|
|
CheckJsonForDistanceResults = checkJsonForDistanceResults;
|
|
CrossDirectoryMaxItemsInDistanceCollection = crossDirectoryMaxItemsInDistanceCollection;
|
|
DistanceFactor = distanceFactor;
|
|
DistanceMoveUnableToMatch = distanceMoveUnableToMatch;
|
|
DistancePixelDistanceTolerance = distancePixelDistanceTolerance;
|
|
DistanceRenameToMatch = distanceRenameToMatch;
|
|
FaceDistanceAreaPermilleTolerance = faceDistanceAreaPermilleTolerance;
|
|
FaceDistanceHiddenImageFactor = faceDistanceHiddenImageFactor;
|
|
FaceDistanceMinimumConfidence = faceDistanceMinimumConfidence;
|
|
FaceDistancePermyriad = faceDistancePermyriad;
|
|
FaceDistanceTolerance = faceDistanceTolerance;
|
|
ForceFaceLastWriteTimeToCreationTime = forceFaceLastWriteTimeToCreationTime;
|
|
ForceMetadataLastWriteTimeToCreationTime = forceMetadataLastWriteTimeToCreationTime;
|
|
ForceResizeLastWriteTimeToCreationTime = forceResizeLastWriteTimeToCreationTime;
|
|
IgnoreExtensions = ignoreExtensions;
|
|
IgnoreRelativePaths = ignoreRelativePaths;
|
|
JLinks = jLinks;
|
|
LoadOrCreateThenSaveDistanceResultsForOutputResolutions = loadOrCreateThenSaveDistanceResultsForOutputResolutions;
|
|
LoadOrCreateThenSaveImageFacesResultsForOutputResolutions = loadOrCreateThenSaveImageFacesResultsForOutputResolutions;
|
|
LoadOrCreateThenSaveIndex = loadOrCreateThenSaveIndex;
|
|
LocationConfidenceFactor = locationConfidenceFactor;
|
|
LocationDigits = locationDigits;
|
|
LocationFactor = locationFactor;
|
|
MappedMaxIndex = mappedMaxIndex;
|
|
MappingDefaultName = mappingDefaultName;
|
|
MappingSaveNotMapped = mappingSaveNotMapped;
|
|
MappingSaveMapped = mappingSaveMapped;
|
|
MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping = mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForAddToMapping;
|
|
MappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping = mappingUseDeterministicHashCodeUnknownFaceKeyValuePairsForSaveMapping;
|
|
MaxItemsInDistanceCollection = maxItemsInDistanceCollection;
|
|
MixedYearRelativePaths = mixedYearRelativePaths;
|
|
ModelDirectory = modelDirectory;
|
|
ModelName = modelName;
|
|
NumberOfJitters = numberOfJitters;
|
|
NumberOfTimesToUpsample = numberOfTimesToUpsample;
|
|
OutputExtension = outputExtension;
|
|
OutputQuality = outputQuality;
|
|
OutputResolutions = outputResolutions;
|
|
OverrideForFaceImages = overrideForFaceImages;
|
|
OverrideForFaceLandmarkImages = overrideForFaceLandmarkImages;
|
|
OverrideForResizeImages = overrideForResizeImages;
|
|
PaddingLoops = paddingLoops;
|
|
PersonBirthdayFirstYear = personBirthdayFirstYear;
|
|
PersonBirthdayFormat = personBirthdayFormat;
|
|
PersonKeyFormat = personKeyFormat;
|
|
PredictorModelName = predictorModelName;
|
|
PropertiesChangedForDistance = propertiesChangedForDistance;
|
|
PropertiesChangedForFaces = propertiesChangedForFaces;
|
|
PropertiesChangedForIndex = propertiesChangedForIndex;
|
|
PropertiesChangedForMetadata = propertiesChangedForMetadata;
|
|
PropertiesChangedForResize = propertiesChangedForResize;
|
|
RetryImagesWithoutAFace = retryImagesWithoutAFace;
|
|
Reverse = reverse;
|
|
SaveFaceLandmarkForOutputResolutions = saveFaceLandmarkForOutputResolutions;
|
|
SaveFullYearOfRandomFiles = saveFullYearOfRandomFiles;
|
|
SaveResizedImagesByPersonKeyFormattedForOutputResolutions = saveResizedImagesByPersonKeyFormattedForOutputResolutions;
|
|
SaveResizedSubfiles = saveResizedSubfiles;
|
|
SkipSearch = skipSearch;
|
|
SortingDaysDeltaTolerance = sortingDaysDeltaTolerance;
|
|
SortingMaximumPerFaceShouldBeHigh = sortingMaximumPerFaceShouldBeHigh;
|
|
SortingMaximumPerKey = sortingMaximumPerKey;
|
|
SortingMinimumToUseSigma = sortingSigma;
|
|
TestDistanceResults = testDistanceResults;
|
|
ValidResolutions = validResolutions;
|
|
}
|
|
|
|
public override string ToString()
|
|
{
|
|
string result = JsonSerializer.Serialize(this, new JsonSerializerOptions() { WriteIndented = true });
|
|
return result;
|
|
}
|
|
|
|
public void SetAndUpdate(Property.Models.Configuration configuration, int? numberOfJitters, int? numberOfTimesToUpsample, string? modelName, string? predictorModelName)
|
|
{
|
|
_PropertyConfiguration = configuration;
|
|
_PropertyConfiguration.Update(numberOfJitters, numberOfTimesToUpsample, modelName, predictorModelName);
|
|
}
|
|
|
|
} |