Replace the dead PartialityModel with a force_still_processing flag
With ScaleOnTheFly now fixed-only and rotation routed through RotationScaleMerge, the PartialityModel enum carried no information (it was always Rotation for rotation processing, Fixed otherwise, and mirrored combine_3d). Drop it: - ScalingSettings: `partiality_mode` (PartialityModel) -> `force_still_processing` (bool); SetPartialityModel/GetPartialityModel -> ForceStillProcessing/GetForceStillProcessing. Remove the enum. - DiffractionExperiment: drop GetPartialityModel(); the rotation-vs-stills decision is now just GetCombine3D() (set by the tool = rotation && !force_still). The wedge getters no longer key off the model (dead since wedge refinement was removed). - jfjoch_process: `-P/--partiality fixed|rot3d` -> `--force-still-processing` (a rotation dataset scaled as independent stills). Auto-detect sets combine_3d for rotation data unless the flag is given. - jfjoch_scale: `-P fixed|rot3d` now toggles combine_3d directly (no PartialityModel). - jfjoch_viewer: the "process as stills" toggle sets ForceStillProcessing(!rotation_mode) - UI unchanged, just wired to the new field. PartialityModel was never in the OpenAPI, so no generated clients change. Rotation path behaviour is unchanged (lyso 16.4/99.6%/87.3%); --force-still-processing correctly routes to ScaleOnTheFly. CUDA + non-CUDA + viewer all build. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -440,8 +440,7 @@ ProcessResult JFJochProcess::Run(JFJochProcessObserver *observer) {
|
||||
// (forced) mosaicity is handled by the recompute. It does NOT support external-reference scaling,
|
||||
// B-factor refinement, an absorption surface, or wedge refinement - reject those combinations.
|
||||
const auto &rot_ss = experiment_.GetScalingSettings();
|
||||
const bool is_rotation = rot_ss.GetCombine3D()
|
||||
&& experiment_.GetPartialityModel() == PartialityModel::Rotation;
|
||||
const bool is_rotation = rot_ss.GetCombine3D(); // set for rotation data unless force-still
|
||||
std::optional<RotationScaleMerge> rsm;
|
||||
if (is_rotation) {
|
||||
if (!config_.reference_data.empty() || rot_ss.GetRefineB() || rot_ss.GetAbsorptionIter() > 0
|
||||
|
||||
Reference in New Issue
Block a user