Skip to content

Commit 9f83ac0

Browse files
committed
FeatureScout: Add blob/blob animation parameter dependencies
1 parent 66c747d commit 9f83ac0

File tree

1 file changed

+61
-56
lines changed

1 file changed

+61
-56
lines changed

modules/FeatureScout/dlg_FeatureScout.cpp

Lines changed: 61 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -2823,18 +2823,20 @@ bool dlg_FeatureScout::openBlobVisDialog()
28232823
blob = m_blobMap[m_activeClassItem->text()];
28242824
}
28252825
iAAttributes params;
2826-
addAttr(params, "Range:", iAValueType::Continuous, blob ? blob->GetRange() : m_blobManager->GetRange());
2827-
addAttr(params, "Blob body:", iAValueType::Boolean, blob ? blob->GetShowBlob() : m_blobManager->GetShowBlob());
2828-
addAttr(params, "Use Depth peeling:", iAValueType::Boolean, m_blobManager->GetUseDepthPeeling());
2829-
addAttr(params, "Blob opacity [0,1]:", iAValueType::Continuous, blob ? blob->GetBlobOpacity() : m_blobManager->GetBlobOpacity());
2830-
addAttr(params, "Silhouettes:", iAValueType::Boolean, blob ? blob->GetSilhouette() : m_blobManager->GetSilhouettes());
2831-
addAttr(params, "Silhouettes opacity [0,1]:", iAValueType::Continuous, blob ? blob->GetSilhouetteOpacity() : m_blobManager->GetSilhouetteOpacity());
2832-
addAttr(params, "3D labels:", iAValueType::Boolean, blob ? blob->GetLabel() : m_blobManager->GetLabeling());
2833-
addAttr(params, "Smart overlapping:", iAValueType::Boolean, m_blobManager->OverlappingIsEnabled());
2834-
addAttr(params, "Separation distance (if smart overlapping):", iAValueType::Continuous, m_blobManager->GetOverlapThreshold());
2835-
addAttr(params, "Smooth after smart overlapping:", iAValueType::Boolean, blob ? blob->GetSmoothing() : m_blobManager->GetSmoothing());
2836-
addAttr(params, "Gaussian blurring of the blob:", iAValueType::Boolean, m_blobManager->GetGaussianBlur());
2837-
addAttr(params, "Gaussian blur variance:", iAValueType::Continuous, blob ? blob->GetGaussianBlurVariance() : m_blobManager->GetGaussianBlurVariance());
2826+
addAttr(params, "Range", iAValueType::Continuous, blob ? blob->GetRange() : m_blobManager->GetRange());
2827+
addAttr(params, "Blob body", iAValueType::Boolean, blob ? blob->GetShowBlob() : m_blobManager->GetShowBlob());
2828+
addAttr(params, "Use Depth peeling", iAValueType::Boolean, m_blobManager->GetUseDepthPeeling());
2829+
addAttr(params, "Blob opacity", iAValueType::Continuous, blob ? blob->GetBlobOpacity() : m_blobManager->GetBlobOpacity(), 0, 1);
2830+
addAttr(params, "Silhouettes", iAValueType::Boolean, blob ? blob->GetSilhouette() : m_blobManager->GetSilhouettes());
2831+
addAttr(params, "Silhouettes opacity", iAValueType::Continuous, blob ? blob->GetSilhouetteOpacity() : m_blobManager->GetSilhouetteOpacity(), 0, 1);
2832+
addAttr(params, "3D labels", iAValueType::Boolean, blob ? blob->GetLabel() : m_blobManager->GetLabeling());
2833+
addAttr(params, "Smart overlapping", iAValueType::Boolean, m_blobManager->OverlappingIsEnabled());
2834+
addAttr(params, "Separation distance", iAValueType::Continuous, m_blobManager->GetOverlapThreshold());
2835+
setDependency(params, "Separation distance", "Smart overlapping");
2836+
addAttr(params, "Smooth after smart overlapping", iAValueType::Boolean, blob ? blob->GetSmoothing() : m_blobManager->GetSmoothing());
2837+
setDependency(params, "Smooth after smart overlapping", "Smart overlapping");
2838+
addAttr(params, "Gaussian blurring of the blob", iAValueType::Boolean, m_blobManager->GetGaussianBlur());
2839+
addAttr(params, "Gaussian blur variance", iAValueType::Continuous, blob ? blob->GetGaussianBlurVariance() : m_blobManager->GetGaussianBlurVariance());
28382840
addAttr(params, "Dimension X", iAValueType::Discrete, blob ? blob->GetDimensions()[0] : m_blobManager->GetDimensions()[0]);
28392841
addAttr(params, "Dimension Y", iAValueType::Discrete, blob ? blob->GetDimensions()[1] : m_blobManager->GetDimensions()[1]);
28402842
addAttr(params, "Dimension Z", iAValueType::Discrete, blob ? blob->GetDimensions()[2] : m_blobManager->GetDimensions()[2]);
@@ -2844,18 +2846,18 @@ bool dlg_FeatureScout::openBlobVisDialog()
28442846
return false;
28452847
}
28462848
auto values = dlg.parameterValues();
2847-
m_blobManager->SetRange(values["Range:"].toDouble());
2848-
m_blobManager->SetShowBlob(values["Blob body:"].toBool());
2849-
m_blobManager->SetUseDepthPeeling(values["Use Depth peeling:"].toBool());
2850-
m_blobManager->SetBlobOpacity(values["Blob opacity [0,1]:"].toDouble());
2851-
m_blobManager->SetSilhouettes(values["Silhouettes:"].toBool());
2852-
m_blobManager->SetSilhouetteOpacity(values["Silhouettes opacity [0,1]:"].toDouble());
2853-
m_blobManager->SetLabeling(values["3D labels:"].toBool());
2854-
m_blobManager->SetOverlappingEnabled(values["Smart overlapping:"].toBool());
2855-
m_blobManager->SetOverlapThreshold(values["Separation distance (if smart overlapping):"].toDouble());
2856-
m_blobManager->SetSmoothing(values["Smooth after smart overlapping:"].toBool());
2857-
m_blobManager->SetGaussianBlur(values["Gaussian blurring of the blob:"].toBool());
2858-
m_blobManager->SetGaussianBlurVariance(values["Gaussian blur variance:"].toDouble());
2849+
m_blobManager->SetRange(values["Range"].toDouble());
2850+
m_blobManager->SetShowBlob(values["Blob body"].toBool());
2851+
m_blobManager->SetUseDepthPeeling(values["Use Depth peeling"].toBool());
2852+
m_blobManager->SetBlobOpacity(values["Blob opacity"].toDouble());
2853+
m_blobManager->SetSilhouettes(values["Silhouettes"].toBool());
2854+
m_blobManager->SetSilhouetteOpacity(values["Silhouettes opacity"].toDouble());
2855+
m_blobManager->SetLabeling(values["3D labels"].toBool());
2856+
m_blobManager->SetOverlappingEnabled(values["Smart overlapping"].toBool());
2857+
m_blobManager->SetOverlapThreshold(values["Separation distance"].toDouble());
2858+
m_blobManager->SetSmoothing(values["Smooth after smart overlapping"].toBool());
2859+
m_blobManager->SetGaussianBlur(values["Gaussian blurring of the blob"].toBool());
2860+
m_blobManager->SetGaussianBlurVariance(values["Gaussian blur variance"].toDouble());
28592861
int dimens[3] = {values["Dimension X"].toInt(), values["Dimension Y"].toInt(), values["Dimension Z"].toInt()};
28602862
m_blobManager->SetDimensions(dimens);
28612863
return true;
@@ -2872,29 +2874,32 @@ void dlg_FeatureScout::saveBlobMovie()
28722874
iAAttributes params;
28732875
QStringList modes = (QStringList() << tr("No rotation") << tr("Rotate Z") << tr("Rotate X") << tr("Rotate Y"));
28742876
addAttr(params, "Rotation mode", iAValueType::Categorical, modes);
2875-
addAttr(params, "Number of frames:", iAValueType::Discrete, 24, 1);
2876-
addAttr(params, "Range from:", iAValueType::Continuous, m_blobManager->GetRange());
2877-
addAttr(params, "Range to:", iAValueType::Continuous, m_blobManager->GetRange());
2878-
addAttr(params, "Blob body:", iAValueType::Boolean, m_blobManager->GetShowBlob());
2879-
addAttr(params, "Blob opacity from [0,1]:", iAValueType::Continuous, m_blobManager->GetBlobOpacity(), 0, 1);
2880-
addAttr(params, "Blob opacity to:", iAValueType::Continuous, m_blobManager->GetBlobOpacity(), 0, 1);
2881-
addAttr(params, "Silhouettes:", iAValueType::Boolean, m_blobManager->GetSilhouettes());
2882-
addAttr(params, "Silhouettes opacity from [0,1]:", iAValueType::Continuous, m_blobManager->GetSilhouetteOpacity());
2883-
addAttr(params, "Silhouettes opacity to:", iAValueType::Continuous, m_blobManager->GetSilhouetteOpacity());
2884-
addAttr(params, "3D labels:", iAValueType::Boolean, m_blobManager->GetLabeling());
2885-
addAttr(params, "Smart overlapping:", iAValueType::Boolean, m_blobManager->OverlappingIsEnabled());
2886-
addAttr(params, "Separation distance from (if smart overlapping):", iAValueType::Continuous, m_blobManager->GetOverlapThreshold());
2887-
addAttr(params, "Separation distance to:", iAValueType::Continuous, m_blobManager->GetOverlapThreshold());
2888-
addAttr(params, "Smooth after smart overlapping:", iAValueType::Boolean, m_blobManager->GetSmoothing());
2889-
addAttr(params, "Gaussian blurring of the blob:", iAValueType::Boolean, m_blobManager->GetGaussianBlur());
2890-
addAttr(params, "Gaussian blur variance from:", iAValueType::Continuous, m_blobManager->GetGaussianBlurVariance());
2891-
addAttr(params, "Gaussian blur variance to:", iAValueType::Continuous, m_blobManager->GetGaussianBlurVariance());
2877+
addAttr(params, "Number of frames", iAValueType::Discrete, 24, 1);
2878+
addAttr(params, "Range from", iAValueType::Continuous, m_blobManager->GetRange());
2879+
addAttr(params, "Range to", iAValueType::Continuous, m_blobManager->GetRange());
2880+
addAttr(params, "Blob body", iAValueType::Boolean, m_blobManager->GetShowBlob());
2881+
addAttr(params, "Blob opacity from", iAValueType::Continuous, m_blobManager->GetBlobOpacity(), 0, 1);
2882+
addAttr(params, "Blob opacity to", iAValueType::Continuous, m_blobManager->GetBlobOpacity(), 0, 1);
2883+
addAttr(params, "Silhouettes", iAValueType::Boolean, m_blobManager->GetSilhouettes());
2884+
addAttr(params, "Silhouettes opacity from", iAValueType::Continuous, m_blobManager->GetSilhouetteOpacity(), 0, 1);
2885+
addAttr(params, "Silhouettes opacity to", iAValueType::Continuous, m_blobManager->GetSilhouetteOpacity(), 0, 1);
2886+
addAttr(params, "3D labels", iAValueType::Boolean, m_blobManager->GetLabeling());
2887+
addAttr(params, "Smart overlapping", iAValueType::Boolean, m_blobManager->OverlappingIsEnabled());
2888+
addAttr(params, "Separation distance from", iAValueType::Continuous, m_blobManager->GetOverlapThreshold());
2889+
addAttr(params, "Separation distance to", iAValueType::Continuous, m_blobManager->GetOverlapThreshold());
2890+
addAttr(params, "Smooth after smart overlapping", iAValueType::Boolean, m_blobManager->GetSmoothing());
2891+
setDependency(params, "Separation distance from", "Smart overlapping");
2892+
setDependency(params, "Separation distance to", "Smart overlapping");
2893+
setDependency(params, "Smooth after smart overlapping", "Smart overlapping");
2894+
addAttr(params, "Gaussian blurring of the blob", iAValueType::Boolean, m_blobManager->GetGaussianBlur());
2895+
addAttr(params, "Gaussian blur variance from", iAValueType::Continuous, m_blobManager->GetGaussianBlurVariance());
2896+
addAttr(params, "Gaussian blur variance to", iAValueType::Continuous, m_blobManager->GetGaussianBlurVariance());
28922897
addAttr(params, "Dimension X from", iAValueType::Discrete, m_blobManager->GetDimensions()[0]);
2893-
addAttr(params, "Dimension X to:" , iAValueType::Discrete, m_blobManager->GetDimensions()[0]);
2898+
addAttr(params, "Dimension X to" , iAValueType::Discrete, m_blobManager->GetDimensions()[0]);
28942899
addAttr(params, "Dimension Y from", iAValueType::Discrete, m_blobManager->GetDimensions()[1]);
2895-
addAttr(params, "Dimension Y to:" , iAValueType::Discrete, m_blobManager->GetDimensions()[1]);
2900+
addAttr(params, "Dimension Y to" , iAValueType::Discrete, m_blobManager->GetDimensions()[1]);
28962901
addAttr(params, "Dimension Z from", iAValueType::Discrete, m_blobManager->GetDimensions()[2]);
2897-
addAttr(params, "Dimension Z to:" , iAValueType::Discrete, m_blobManager->GetDimensions()[2]);
2902+
addAttr(params, "Dimension Z to" , iAValueType::Discrete, m_blobManager->GetDimensions()[2]);
28982903
addAttr(params, "Video quality", iAValueType::Discrete, 2, 0, 2);
28992904
addAttr(params, "Frame rate", iAValueType::Discrete, 25, 1, 1000);
29002905

@@ -2910,18 +2915,18 @@ void dlg_FeatureScout::saveBlobMovie()
29102915
auto values = dlg.parameterValues();
29112916
QString mode = values["Rotation mode"].toString();
29122917
auto imode = static_cast<int>(modes.indexOf(mode));
2913-
m_blobManager->SetShowBlob(values["Blob body:"].toBool());
2914-
m_blobManager->SetSilhouettes(values["Silhouettes:"].toBool());
2915-
m_blobManager->SetLabeling(values["3D labels:"].toBool());
2916-
m_blobManager->SetOverlappingEnabled(values["Smart overlapping:"].toBool());
2917-
m_blobManager->SetSmoothing(values["Smooth after smart overlapping:"].toBool());
2918-
m_blobManager->SetGaussianBlur(values["Gaussian blurring of the blob:"].toBool());
2919-
size_t numFrames = values["Number of frames:"].toInt();
2920-
double range[2] = {values["Range from:"].toDouble(), values["Range to:"].toDouble()};
2921-
double blobOpacity[2] = {values["Blob opacity from [0,1]:"].toDouble(), values["Blob opacity to:"].toDouble()};
2922-
double silhouetteOpacity[2] = {values["Silhouettes opacity from [0,1]:"].toDouble(), values["Silhouettes opacity to:"].toDouble()};
2923-
double overlapThreshold[2] = {values["Separation distance from (if smart overlapping):"].toDouble(), values["Separation distance to:"].toDouble()};
2924-
double gaussianBlurVariance[2] = {values["Gaussian blur variance from:"].toDouble(), values["Gaussian blur variance to:"].toDouble()};
2918+
m_blobManager->SetShowBlob(values["Blob body"].toBool());
2919+
m_blobManager->SetSilhouettes(values["Silhouettes"].toBool());
2920+
m_blobManager->SetLabeling(values["3D labels"].toBool());
2921+
m_blobManager->SetOverlappingEnabled(values["Smart overlapping"].toBool());
2922+
m_blobManager->SetSmoothing(values["Smooth after smart overlapping"].toBool());
2923+
m_blobManager->SetGaussianBlur(values["Gaussian blurring of the blob"].toBool());
2924+
size_t numFrames = values["Number of frames"].toInt();
2925+
double range[2] = {values["Range from"].toDouble(), values["Range to"].toDouble()};
2926+
double blobOpacity[2] = {values["Blob opacity from"].toDouble(), values["Blob opacity to"].toDouble()};
2927+
double silhouetteOpacity[2] = {values["Silhouettes opacity from"].toDouble(), values["Silhouettes opacity to"].toDouble()};
2928+
double overlapThreshold[2] = {values["Separation distance from"].toDouble(), values["Separation distance to"].toDouble()};
2929+
double gaussianBlurVariance[2] = {values["Gaussian blur variance from"].toDouble(), values["Gaussian blur variance to"].toDouble()};
29252930
int dimX[2] = {values["Dimension X from"].toInt(), values["Dimension X to"].toInt()};
29262931
int dimY[2] = {values["Dimension Y from"].toInt(), values["Dimension Y to"].toInt()};
29272932
int dimZ[2] = {values["Dimension Z from"].toInt(), values["Dimension Z to"].toInt()};

0 commit comments

Comments
 (0)