#3090 Add findReservoirCellIndexFromPoint

This commit is contained in:
Magne Sjaastad
2018-08-01 15:47:26 +02:00
parent e3e7ededf8
commit 91552c155a
2 changed files with 32 additions and 2 deletions

View File

@@ -20,10 +20,11 @@
#include "RigMainGrid.h"
#include "RiaLogging.h"
#include "RiaDefines.h"
#include "RigFault.h"
#include "RiaLogging.h"
#include "RigActiveCellInfo.h"
#include "RigFault.h"
#include "RigHexIntersectionTools.h"
#include "cvfBoundingBoxTree.h"
#include "cvfAssert.h"
@@ -90,6 +91,34 @@ size_t RigMainGrid::reservoirCellIndexByGridAndGridLocalCellIndex(size_t gridIdx
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;
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@@ -56,6 +56,7 @@ public:
const RigCell& cellByGridAndGridLocalCellIdx(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);
size_t gridCount() const { return m_localGrids.size() + 1; }