#3379 Holo Lens : Add RivCellSetEnum to RivSouceInfo

This commit is contained in:
Magne Sjaastad
2018-09-19 11:01:11 +02:00
parent 56c91c39fd
commit aa3287f615
7 changed files with 61 additions and 15 deletions

View File

@@ -69,7 +69,7 @@
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RivGridPartMgr::RivGridPartMgr(RimEclipseCase* eclipseCase, const RigGridBase* grid, size_t gridIdx)
RivGridPartMgr::RivGridPartMgr(RivCellSetEnum cellSetType, RimEclipseCase* eclipseCase, const RigGridBase* grid, size_t gridIdx)
: m_surfaceGenerator(grid)
, m_gridIdx(gridIdx)
, m_grid(grid)
@@ -77,6 +77,7 @@ RivGridPartMgr::RivGridPartMgr(RimEclipseCase* eclipseCase, const RigGridBase* g
, m_opacityLevel(1.0f)
, m_defaultColor(cvf::Color3::WHITE)
, m_eclipseCase(eclipseCase)
, m_cellSetType(cellSetType)
{
CVF_ASSERT(grid);
m_cellVisibility = new cvf::UByteArray;
@@ -132,7 +133,9 @@ void RivGridPartMgr::generatePartGeometry(cvf::StructGridGeometryGenerator& geoB
part->setTransform(m_scaleTransform.p());
// Set mapping from triangle face index to cell index
cvf::ref<RivSourceInfo> si = new RivSourceInfo(m_eclipseCase, m_gridIdx);
cvf::ref<RivSourceInfo> si = new RivSourceInfo(m_eclipseCase, m_gridIdx);
si->setCellSetType(m_cellSetType);
si->m_cellFaceFromTriangleMapper = geoBuilder.triangleToCellFaceMapper();
part->setSourceInfo(si.p());
@@ -186,6 +189,17 @@ void RivGridPartMgr::generatePartGeometry(cvf::StructGridGeometryGenerator& geoB
}
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RivSourceInfo* RivGridPartMgr::createSourceInfo()
{
auto si = new RivSourceInfo(m_eclipseCase, m_gridIdx);
si->setCellSetType(m_cellSetType);
return si;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@@ -22,6 +22,8 @@
#include "RigGridBase.h"
#include "RivCellSetEnum.h"
#include "cafPdmPointer.h"
#include "cvfBase.h"
@@ -41,6 +43,7 @@ namespace cvf
class RimEclipseCellColors;
class RimCellEdgeColors;
class RimEclipseCase;
class RivSourceInfo;
@@ -55,8 +58,9 @@ class RimEclipseCase;
class RivGridPartMgr: public cvf::Object
{
public:
RivGridPartMgr(RimEclipseCase* eclipseCase, const RigGridBase* grid, size_t gridIdx);
RivGridPartMgr(RivCellSetEnum cellSetType, RimEclipseCase* eclipseCase, const RigGridBase* grid, size_t gridIdx);
~RivGridPartMgr();
void setTransform(cvf::Transform* scaleTransform);
void setCellVisibility(cvf::UByteArray* cellVisibilities );
cvf::ref<cvf::UByteArray> cellVisibility() { return m_cellVisibility;}
@@ -72,6 +76,8 @@ public:
private:
void generatePartGeometry(cvf::StructGridGeometryGenerator& geoBuilder);
RivSourceInfo* createSourceInfo();
private:
size_t m_gridIdx;
@@ -92,4 +98,5 @@ private:
cvf::ref<cvf::UByteArray> m_cellVisibility;
caf::PdmPointer<RimEclipseCase> m_eclipseCase;
RivCellSetEnum m_cellSetType;
};

View File

@@ -32,11 +32,10 @@
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RivReservoirPartMgr::clearAndSetReservoir(RimEclipseCase* eclipseCase, RimEclipseView* reservoirView)
void RivReservoirPartMgr::clearAndSetReservoir(RivCellSetEnum cellSetType, RimEclipseCase* eclipseCase, RimEclipseView* reservoirView)
{
m_allGrids.clear();
if (eclipseCase && eclipseCase->eclipseCaseData())
{
RigEclipseCaseData* eclipseCaseData = eclipseCase->eclipseCaseData();
@@ -45,7 +44,7 @@ void RivReservoirPartMgr::clearAndSetReservoir(RimEclipseCase* eclipseCase, RimE
eclipseCaseData->allGrids(&grids);
for (size_t i = 0; i < grids.size() ; ++i)
{
m_allGrids.push_back(new RivGridPartMgr(eclipseCase, grids[i], i));
m_allGrids.push_back(new RivGridPartMgr(cellSetType, eclipseCase, grids[i], i));
}
if (eclipseCase->mainGrid())

View File

@@ -20,6 +20,8 @@
#pragma once
#include "RivCellSetEnum.h"
#include "cvfBase.h"
#include "cvfArray.h"
#include "cvfCollection.h"
@@ -48,7 +50,7 @@ class RivGridPartMgr;
class RivReservoirPartMgr: public cvf::Object
{
public:
void clearAndSetReservoir(RimEclipseCase* eclipseCase, RimEclipseView* reservoirView);
void clearAndSetReservoir(RivCellSetEnum cellSetType, RimEclipseCase* eclipseCase, RimEclipseView* reservoirView);
void setTransform(cvf::Transform* scaleTransform);
void setCellVisibility(size_t gridIndex, cvf::UByteArray* cellVisibilities );
@@ -73,8 +75,10 @@ public:
RimCellEdgeColors* cellEdgeResultColors);
void appendFaultPartsToModel(cvf::ModelBasicList* model);
void appendFaultLabelPartsToModel(cvf::ModelBasicList* model);
private:
private:
cvf::Collection<RivGridPartMgr> m_allGrids; // Main grid and all LGR's
cvf::ref<RivReservoirFaultsPartMgr> m_faultsPartMgr;
RivCellSetEnum m_cellSetType;
};

View File

@@ -170,7 +170,7 @@ void RivReservoirViewPartMgr::clearGeometryCache(RivCellSetEnum geomType)
m_propFilteredGeometryFramesNeedsRegen[i] = true;
if (m_propFilteredGeometryFrames[i].notNull())
{
m_propFilteredGeometryFrames[i]->clearAndSetReservoir(rimEclipseCase, m_reservoirView);
m_propFilteredGeometryFrames[i]->clearAndSetReservoir(geomType, rimEclipseCase, m_reservoirView);
m_propFilteredGeometryFrames[i]->setTransform(m_scaleTransform.p());
}
}
@@ -182,7 +182,7 @@ void RivReservoirViewPartMgr::clearGeometryCache(RivCellSetEnum geomType)
m_propFilteredWellGeometryFramesNeedsRegen[i] = true;
if (m_propFilteredWellGeometryFrames[i].notNull())
{
m_propFilteredWellGeometryFrames[i]->clearAndSetReservoir(rimEclipseCase, m_reservoirView);
m_propFilteredWellGeometryFrames[i]->clearAndSetReservoir(geomType, rimEclipseCase, m_reservoirView);
m_propFilteredWellGeometryFrames[i]->setTransform(m_scaleTransform.p());
}
}
@@ -190,7 +190,7 @@ void RivReservoirViewPartMgr::clearGeometryCache(RivCellSetEnum geomType)
else
{
m_geometriesNeedsRegen[geomType] = true;
m_geometries[geomType].clearAndSetReservoir(rimEclipseCase, m_reservoirView);
m_geometries[geomType].clearAndSetReservoir(geomType, rimEclipseCase, m_reservoirView);
m_geometries[geomType].setTransform(m_scaleTransform.p());
}
}
@@ -283,7 +283,7 @@ void RivReservoirViewPartMgr::createGeometry(RivCellSetEnum geometryType)
{
RigEclipseCaseData* res = m_reservoirView->eclipseCase()->eclipseCaseData();
m_geometries[geometryType].clearAndSetReservoir(m_reservoirView->eclipseCase(), m_reservoirView);
m_geometries[geometryType].clearAndSetReservoir(geometryType, m_reservoirView->eclipseCase(), m_reservoirView);
m_geometries[geometryType].setTransform(m_scaleTransform.p());
std::vector<RigGridBase*> grids;
@@ -442,7 +442,7 @@ void RivReservoirViewPartMgr::createPropertyFilteredNoneWellCellGeometry(size_t
if ( m_propFilteredGeometryFrames[frameIndex].isNull()) m_propFilteredGeometryFrames[frameIndex] = new RivReservoirPartMgr;
m_propFilteredGeometryFrames[frameIndex]->clearAndSetReservoir(m_reservoirView->eclipseCase(), m_reservoirView);
m_propFilteredGeometryFrames[frameIndex]->clearAndSetReservoir(PROPERTY_FILTERED, m_reservoirView->eclipseCase(), m_reservoirView);
m_propFilteredGeometryFrames[frameIndex]->setTransform(m_scaleTransform.p());
std::vector<RigGridBase*> grids;
@@ -518,7 +518,7 @@ void RivReservoirViewPartMgr::createPropertyFilteredWellGeometry(size_t frameInd
if ( m_propFilteredWellGeometryFrames[frameIndex].isNull()) m_propFilteredWellGeometryFrames[frameIndex] = new RivReservoirPartMgr;
m_propFilteredWellGeometryFrames[frameIndex]->clearAndSetReservoir(m_reservoirView->eclipseCase(), m_reservoirView);
m_propFilteredWellGeometryFrames[frameIndex]->clearAndSetReservoir(PROPERTY_FILTERED_WELL_CELLS, m_reservoirView->eclipseCase(), m_reservoirView);
m_propFilteredWellGeometryFrames[frameIndex]->setTransform(m_scaleTransform.p());
std::vector<RigGridBase*> grids;

View File

@@ -27,6 +27,7 @@
RivSourceInfo::RivSourceInfo(caf::PdmObject* pdmObject, size_t gridIndex)
: RivObjectSourceInfo(pdmObject)
, m_gridIndex(gridIndex)
, m_cellSetType(ALL_CELLS)
{
}
@@ -53,3 +54,19 @@ bool RivSourceInfo::hasNNCIndices() const
{
return m_NNCIndices.notNull();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
RivCellSetEnum RivSourceInfo::cellSetType() const
{
return m_cellSetType;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
void RivSourceInfo::setCellSetType(RivCellSetEnum cellSetEnum)
{
m_cellSetType = cellSetEnum;
}

View File

@@ -19,6 +19,7 @@
#pragma once
#include "RivCellSetEnum.h"
#include "RivObjectSourceInfo.h"
#include "cvfArray.h"
@@ -40,10 +41,14 @@ public:
bool hasCellFaceMapping() const;
bool hasNNCIndices() const;
RivCellSetEnum cellSetType() const;
void setCellSetType(RivCellSetEnum cellSetType);
public:
cvf::cref<cvf::StuctGridTriangleToCellFaceMapper> m_cellFaceFromTriangleMapper;
cvf::ref<cvf::Array<size_t>> m_NNCIndices;
private:
size_t m_gridIndex;
size_t m_gridIndex;
RivCellSetEnum m_cellSetType;
};