IndexingSettings: Add rotation indexer specific settings

This commit is contained in:
2025-11-29 20:21:26 +01:00
parent c8d28a8921
commit 70a03b87ff
2 changed files with 42 additions and 0 deletions
+31
View File
@@ -166,6 +166,37 @@ IndexingSettings & IndexingSettings::IndexIceRings(bool input) {
return *this;
}
IndexingSettings & IndexingSettings::RotationIndexing(bool input) {
enable_rotation_indexing = input;
return*this;
}
IndexingSettings & IndexingSettings::RotationIndexingMinAngularRange_deg(float input) {
check_finite("Rotation indexing minimum angular range (deg.)", input);
check_min("Rotation indexing minimum angular range (deg.)", input, 1.0);
rotation_indexing_min_angular_range_deg = input;
return *this;
}
IndexingSettings & IndexingSettings::RotationIndexingAngularStride_deg(float input) {
check_finite("Rotation indexing angular stride (deg.)", input);
check_min("Rotation indexing angular stride (deg.)", input, 0.0);
rotation_indexing_angular_stride_deg = input;
return *this;
}
bool IndexingSettings::GetRotationIndexing() const {
return enable_rotation_indexing;
}
float IndexingSettings::GetRotationIndexingMinAngularRange_deg() const {
return rotation_indexing_min_angular_range_deg;
}
float IndexingSettings::GetRotationIndexingAngularStride_deg() const {
return rotation_indexing_angular_stride_deg;
}
bool IndexingSettings::GetIndexIceRings() const {
return index_ice_rings;
}
+11
View File
@@ -24,6 +24,11 @@ class IndexingSettings {
int64_t viable_cell_min_spots = 9;
bool index_ice_rings = false;
bool enable_rotation_indexing = false;
float rotation_indexing_min_angular_range_deg = 20.0;
float rotation_indexing_angular_stride_deg = 0.5;
GeomRefinementAlgorithmEnum refinement = GeomRefinementAlgorithmEnum::BeamCenter;
public:
IndexingSettings();
@@ -41,6 +46,9 @@ public:
IndexingSettings& UnitCellDistTolerance(float input);
IndexingSettings& GeomRefinementAlgorithm(GeomRefinementAlgorithmEnum input);
IndexingSettings& IndexIceRings(bool input);
IndexingSettings& RotationIndexing(bool input);
IndexingSettings& RotationIndexingMinAngularRange_deg(float input);
IndexingSettings& RotationIndexingAngularStride_deg(float input);
[[nodiscard]] int64_t GetViableCellMinSpots() const;
[[nodiscard]] IndexingAlgorithmEnum GetAlgorithm() const;
@@ -55,6 +63,9 @@ public:
[[nodiscard]] int64_t GetIndexingThreads() const;
[[nodiscard]] float GetUnitCellDistTolerance() const;
[[nodiscard]] bool GetIndexIceRings() const;
[[nodiscard]] bool GetRotationIndexing() const;
[[nodiscard]] float GetRotationIndexingMinAngularRange_deg() const;
[[nodiscard]] float GetRotationIndexingAngularStride_deg() const;
};