mirror of
https://github.com/OPM/ResInsight.git
synced 2026-10-12 16:32:12 -05:00
#3090 Add findReservoirCellIndexFromPoint
This commit is contained in:
1 parent
e3e7ededf8
commit
91552c155a
2 files changed
+32
-2
No files matched your search
@@ -20,10 +20,11 @@
|
|||||||
|
|
||||||
#include "RigMainGrid.h"
|
#include "RigMainGrid.h"
|
||||||
|
|
||||||
#include "RiaLogging.h"
|
|
||||||
#include "RiaDefines.h"
|
#include "RiaDefines.h"
|
||||||
#include "RigFault.h"
|
#include "RiaLogging.h"
|
||||||
#include "RigActiveCellInfo.h"
|
#include "RigActiveCellInfo.h"
|
||||||
|
#include "RigFault.h"
|
||||||
|
#include "RigHexIntersectionTools.h"
|
||||||
|
|
||||||
#include "cvfBoundingBoxTree.h"
|
#include "cvfBoundingBoxTree.h"
|
||||||
#include "cvfAssert.h"
|
#include "cvfAssert.h"
|
||||||
@@ -90,6 +91,34 @@ size_t RigMainGrid::reservoirCellIndexByGridAndGridLocalCellIndex(size_t gridIdx
|
|||||||
return gridByIndex(gridIdx)->reservoirCellIndex(gridLocalCellIdx);
|
return gridByIndex(gridIdx)->reservoirCellIndex(gridLocalCellIdx);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
///
|
||||||
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
size_t RigMainGrid::findReservoirCellIndexFromPoint(const cvf::Vec3d& point) const
|
||||||
|
{
|
||||||
|
size_t cellContainingPoint = cvf::UNDEFINED_SIZE_T;
|
||||||
|
|
||||||
|
cvf::BoundingBox pointBBox;
|
||||||
|
pointBBox.add(point);
|
||||||
|
|
||||||
|
std::vector<size_t> cellIndices;
|
||||||
|
m_mainGrid->findIntersectingCells(pointBBox, &cellIndices);
|
||||||
|
|
||||||
|
for (size_t cellIndex : cellIndices)
|
||||||
|
{
|
||||||
|
cvf::Vec3d hexCorners[8];
|
||||||
|
m_mainGrid->cellCornerVertices(cellIndex, hexCorners);
|
||||||
|
|
||||||
|
if (RigHexIntersectionTools::isPointInCell(point, hexCorners))
|
||||||
|
{
|
||||||
|
cellContainingPoint = cellIndex;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return cellContainingPoint;
|
||||||
|
}
|
||||||
|
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
///
|
///
|
||||||
//--------------------------------------------------------------------------------------------------
|
//--------------------------------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -56,6 +56,7 @@ public:
|
|||||||
|
|
||||||
const RigCell& cellByGridAndGridLocalCellIdx(size_t gridIdx, size_t gridLocalCellIdx) const;
|
const RigCell& cellByGridAndGridLocalCellIdx(size_t gridIdx, size_t gridLocalCellIdx) const;
|
||||||
size_t reservoirCellIndexByGridAndGridLocalCellIndex(size_t gridIdx, size_t gridLocalCellIdx) const;
|
size_t reservoirCellIndexByGridAndGridLocalCellIndex(size_t gridIdx, size_t gridLocalCellIdx) const;
|
||||||
|
size_t findReservoirCellIndexFromPoint(const cvf::Vec3d& point) const;
|
||||||
|
|
||||||
void addLocalGrid(RigLocalGrid* localGrid);
|
void addLocalGrid(RigLocalGrid* localGrid);
|
||||||
size_t gridCount() const { return m_localGrids.size() + 1; }
|
size_t gridCount() const { return m_localGrids.size() + 1; }
|
||||||
|
|||||||
Reference in new issue
Block a user