diff --git a/ApplicationCode/ModelVisualization/RivGeoMechPartMgrCache.cpp b/ApplicationCode/ModelVisualization/RivGeoMechPartMgrCache.cpp index 5fcb014790..02cd202eef 100644 --- a/ApplicationCode/ModelVisualization/RivGeoMechPartMgrCache.cpp +++ b/ApplicationCode/ModelVisualization/RivGeoMechPartMgrCache.cpp @@ -57,3 +57,33 @@ RivGeoMechPartMgr* RivGeoMechPartMgrCache::partMgr(const Key& key) } + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +void RivGeoMechPartMgrCache::Key::set(unsigned short aGeometryType, int aFrameIndex) +{ + m_frameIndex = aFrameIndex; + m_geometryType = aGeometryType; +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +bool RivGeoMechPartMgrCache::Key::operator<(const Key& other) const +{ + if (m_frameIndex != other.m_frameIndex) + { + return (m_frameIndex < other.m_frameIndex); + } + return (m_geometryType < other.m_geometryType); +} + +//-------------------------------------------------------------------------------------------------- +/// +//-------------------------------------------------------------------------------------------------- +RivGeoMechPartMgrCache::Key::Key(unsigned short aGeometryType, int aFrameIndex) +: m_geometryType(aGeometryType), m_frameIndex(aFrameIndex) +{ + +} diff --git a/ApplicationCode/ModelVisualization/RivGeoMechPartMgrCache.h b/ApplicationCode/ModelVisualization/RivGeoMechPartMgrCache.h index ddefe73603..4d7a377636 100644 --- a/ApplicationCode/ModelVisualization/RivGeoMechPartMgrCache.h +++ b/ApplicationCode/ModelVisualization/RivGeoMechPartMgrCache.h @@ -14,37 +14,26 @@ public: class Key { public: - Key() - : geometryType(-1), frameIndex(-1) - {} + Key() : m_geometryType(-1), m_frameIndex(-1) {} - Key(unsigned short aGeometryType, int aFrameIndex) - : geometryType(aGeometryType), frameIndex(aFrameIndex) - {} + Key( unsigned short aGeometryType, int aFrameIndex); - void set(unsigned short aGeometryType, int aFrameIndex) - { - frameIndex = aFrameIndex; - geometryType = aGeometryType; - } + void set(unsigned short aGeometryType, int aFrameIndex); - int frameIndex; - unsigned short geometryType; + int frameIndex() const { return m_frameIndex;} + unsigned short geometryType() const { return m_geometryType; } - bool operator< (const Key& other) const - { - if (frameIndex != other.frameIndex) - { - return (frameIndex < other.frameIndex); - } - return (geometryType < other.geometryType); - } + bool operator< (const Key& other) const; + + private: + int m_frameIndex; + unsigned short m_geometryType; }; - bool needsRegeneration (const Key& key); - void scheduleRegeneration(const Key& key); - void generationFinished (const Key& key); - RivGeoMechPartMgr* partMgr (const Key& key); + bool needsRegeneration (const Key& key); + void scheduleRegeneration (const Key& key); + void generationFinished (const Key& key); + RivGeoMechPartMgr* partMgr (const Key& key); private: class CacheEntry diff --git a/ApplicationCode/ModelVisualization/RivGeoMechVizLogic.cpp b/ApplicationCode/ModelVisualization/RivGeoMechVizLogic.cpp index bde6f18cd3..b6b87d9b65 100644 --- a/ApplicationCode/ModelVisualization/RivGeoMechVizLogic.cpp +++ b/ApplicationCode/ModelVisualization/RivGeoMechVizLogic.cpp @@ -56,23 +56,23 @@ void RivGeoMechVizLogic::appendNoAnimPartsToModel(cvf::ModelBasicList* model) { RivGeoMechPartMgrCache::Key pMgrKey = currentPartMgrKey(); - RivGeoMechPartMgr* m_geoMechFullModel = m_partMgrCache->partMgr(pMgrKey); + RivGeoMechPartMgr* currentGeoMechPartMgr = m_partMgrCache->partMgr(pMgrKey); RigGeoMechCaseData* caseData = m_geomechView->geoMechCase()->geoMechData(); int partCount = caseData->femParts()->partCount(); if (m_partMgrCache->needsRegeneration(pMgrKey)) { - if (m_geoMechFullModel->initializedFemPartCount() != partCount) + if (currentGeoMechPartMgr->initializedFemPartCount() != partCount) { - m_geoMechFullModel->clearAndSetReservoir(caseData); + currentGeoMechPartMgr->clearAndSetReservoir(caseData); } for (int femPartIdx = 0; femPartIdx < partCount; ++femPartIdx) { - cvf::ref elmVisibility = m_geoMechFullModel->cellVisibility(femPartIdx); - m_geoMechFullModel->setTransform(m_geomechView->scaleTransform()); + cvf::ref elmVisibility = currentGeoMechPartMgr->cellVisibility(femPartIdx); + currentGeoMechPartMgr->setTransform(m_geomechView->scaleTransform()); - if (pMgrKey.geometryType == RANGE_FILTERED) + if (pMgrKey.geometryType() == RANGE_FILTERED) { cvf::CellRangeFilter cellRangeFilter; m_geomechView->rangeFilterCollection()->compoundCellRangeFilter(&cellRangeFilter, femPartIdx); @@ -83,13 +83,13 @@ void RivGeoMechVizLogic::appendNoAnimPartsToModel(cvf::ModelBasicList* model) RivElmVisibilityCalculator::computeAllVisible(elmVisibility.p(), caseData->femParts()->part(femPartIdx)); } - m_geoMechFullModel->setCellVisibility(femPartIdx, elmVisibility.p()); + currentGeoMechPartMgr->setCellVisibility(femPartIdx, elmVisibility.p()); } m_partMgrCache->generationFinished(pMgrKey); } - m_geoMechFullModel->appendGridPartsToModel(model); + currentGeoMechPartMgr->appendGridPartsToModel(model); } //--------------------------------------------------------------------------------------------------