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,20 +522,33 @@ 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();
for (int elmIdx = 0; elmIdx < femPart->elementCount(); ++elmIdx) if (rangeFilter.hasIncludeRanges())
{ {
size_t mainGridI; for (int elmIdx = 0; elmIdx < femPart->elementCount(); ++elmIdx)
size_t mainGridJ; {
size_t mainGridK; size_t mainGridI;
size_t mainGridJ;
size_t mainGridK;
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);
}
}
} }