diff --git a/apps/vaporgui/PDimensionSelector.cpp b/apps/vaporgui/PDimensionSelector.cpp index 5e410de30d..17673fcc33 100644 --- a/apps/vaporgui/PDimensionSelector.cpp +++ b/apps/vaporgui/PDimensionSelector.cpp @@ -31,27 +31,5 @@ void PDimensionSelector::dropdownTextChanged(std::string text) rp->GetBox()->SetOrientation(VAPoR::Box::XYZ); } rp->SetDefaultVariables(dim, true); - - if (!rp->GetBox()->IsPlanar()) { - vector min, max; - rp->GetBox()->GetExtents(min, max); - float minZ = min[2]; - float maxZ = max[2]; - float epsilon = std::max(abs(minZ), abs(maxZ)) * __FLT_EPSILON__; - if (abs(maxZ - minZ) <= epsilon) { - vector dmin, dmax; - size_t ts = rp->GetCurrentTimestep(); - int level = rp->GetRefinementLevel(); - int lod = rp->GetCompressionLevel(); - string varName = rp->GetFirstVariableName(); - - int ret = getDataMgr()->GetVariableExtents(ts, varName, level, lod, dmin, dmax); - if (ret == 0) { - min[2] = dmin[2]; - max[2] = dmax[2]; - rp->GetBox()->SetExtents(min, max); - } - } - } rp->EndGroup(); } diff --git a/lib/params/RenderParams.cpp b/lib/params/RenderParams.cpp index 42b0d543bb..5e9bb00bd5 100644 --- a/lib/params/RenderParams.cpp +++ b/lib/params/RenderParams.cpp @@ -90,6 +90,33 @@ void RenderParams::SetDefaultVariables(int dim = 3, bool secondaryColormapVariab if (ok = DataMgrUtils::GetFirstExistingVariable(_dataMgr, 0, 0, i, varname, ts)) break; } if (!ok) varname = ""; + + if (!varname.empty()) { + int lastDims = _dataMgr->GetNumDimensions(GetVariableName()); + int newDims = _dataMgr->GetNumDimensions(varname); + + if (lastDims == 2 && newDims == 3) { + vector min, max; + GetBox()->GetExtents(min, max); + float minZ = min[2]; + float maxZ = max[2]; + float epsilon = std::max(abs(minZ), abs(maxZ)) * __FLT_EPSILON__; + if (abs(maxZ - minZ) <= epsilon) { + vector dmin, dmax; + size_t ts = GetCurrentTimestep(); + int level = GetRefinementLevel(); + int lod = GetCompressionLevel(); + + int ret = _dataMgr->GetVariableExtents(ts, varname, level, lod, dmin, dmax); + if (ret == 0) { + min[2] = dmin[2]; + max[2] = dmax[2]; + GetBox()->SetExtents(min, max); + } + } + } + } + SetVariableName(varname); SetColorMapVariableName(varname);