Fixed #307 Nothing is shown if using only exclude range filters for Geomech models

This commit is contained in:
Jacob Støren
2015-06-05 15:36:38 +02:00
parent ebc0475787
commit 0d8bfb0403

View File

@@ -522,11 +522,12 @@ void RivElmVisibilityCalculator::computeAllVisible(cvf::UByteArray* elmVisibilit
void RivElmVisibilityCalculator::computeRangeVisibility(cvf::UByteArray* elmVisibilities, RigFemPart* femPart, void RivElmVisibilityCalculator::computeRangeVisibility(cvf::UByteArray* elmVisibilities, RigFemPart* femPart,
const cvf::CellRangeFilter& rangeFilter) const cvf::CellRangeFilter& rangeFilter)
{ {
elmVisibilities->resize(femPart->elementCount()); elmVisibilities->resize(femPart->elementCount());
const RigFemPartGrid* grid = femPart->structGrid(); const RigFemPartGrid* grid = femPart->structGrid();
if (rangeFilter.hasIncludeRanges())
{
for (int elmIdx = 0; elmIdx < femPart->elementCount(); ++elmIdx) for (int elmIdx = 0; elmIdx < femPart->elementCount(); ++elmIdx)
{ {
size_t mainGridI; size_t mainGridI;
@@ -536,6 +537,18 @@ void RivElmVisibilityCalculator::computeRangeVisibility(cvf::UByteArray* elmVisi
grid->ijkFromCellIndex(elmIdx, &mainGridI, &mainGridJ, &mainGridK); grid->ijkFromCellIndex(elmIdx, &mainGridI, &mainGridJ, &mainGridK);
(*elmVisibilities)[elmIdx] = rangeFilter.isCellVisible(mainGridI, mainGridJ, mainGridK, false); (*elmVisibilities)[elmIdx] = rangeFilter.isCellVisible(mainGridI, mainGridJ, mainGridK, false);
} }
}
else
{
for (int elmIdx = 0; elmIdx < femPart->elementCount(); ++elmIdx)
{
size_t mainGridI;
size_t mainGridJ;
size_t mainGridK;
grid->ijkFromCellIndex(elmIdx, &mainGridI, &mainGridJ, &mainGridK);
(*elmVisibilities)[elmIdx] = !rangeFilter.isCellExcluded(mainGridI, mainGridJ, mainGridK, false);
}
}
} }