mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
#2744 Well Log Extractor : Replace use of cornerIndices with cellCornerVertices
This commit is contained in:
parent
34cbd79410
commit
c0704a65f3
@ -56,7 +56,7 @@ void RigEclipseWellLogExtractor::calculateIntersection()
|
||||
const std::vector<cvf::Vec3d>& nodeCoords = m_caseData->mainGrid()->nodes();
|
||||
bool isCellFaceNormalsOut = m_caseData->mainGrid()->isFaceNormalsOutwards();
|
||||
|
||||
if (!m_wellPath->m_wellPathPoints.size()) return ;
|
||||
if (m_wellPath->m_wellPathPoints.empty()) return;
|
||||
|
||||
for (size_t wpp = 0; wpp < m_wellPath->m_wellPathPoints.size() - 1; ++wpp)
|
||||
{
|
||||
@ -69,35 +69,25 @@ void RigEclipseWellLogExtractor::calculateIntersection()
|
||||
bb.add(p1);
|
||||
bb.add(p2);
|
||||
|
||||
std::vector<size_t> closeCells = findCloseCells(bb);
|
||||
std::vector<size_t> closeCellIndices = findCloseCellIndices(bb);
|
||||
|
||||
cvf::Vec3d hexCorners[8];
|
||||
for (size_t cIdx = 0; cIdx < closeCells.size(); ++cIdx)
|
||||
for (const auto& globalCellIndex : closeCellIndices)
|
||||
{
|
||||
const RigCell& cell = m_caseData->mainGrid()->globalCellArray()[closeCells[cIdx]];
|
||||
const RigCell& cell = m_caseData->mainGrid()->globalCellArray()[globalCellIndex];
|
||||
|
||||
if (cell.isInvalid()) continue;
|
||||
|
||||
const caf::SizeTArray8& cornerIndices = cell.cornerIndices();
|
||||
m_caseData->mainGrid()->cellCornerVertices(globalCellIndex, hexCorners);
|
||||
|
||||
hexCorners[0] = nodeCoords[cornerIndices[0]];
|
||||
hexCorners[1] = nodeCoords[cornerIndices[1]];
|
||||
hexCorners[2] = nodeCoords[cornerIndices[2]];
|
||||
hexCorners[3] = nodeCoords[cornerIndices[3]];
|
||||
hexCorners[4] = nodeCoords[cornerIndices[4]];
|
||||
hexCorners[5] = nodeCoords[cornerIndices[5]];
|
||||
hexCorners[6] = nodeCoords[cornerIndices[6]];
|
||||
hexCorners[7] = nodeCoords[cornerIndices[7]];
|
||||
|
||||
//int intersectionCount = RigHexIntersector::lineHexCellIntersection(p1, p2, hexCorners, closeCells[cIdx], &intersections);
|
||||
RigHexIntersectionTools::lineHexCellIntersection(p1, p2, hexCorners, closeCells[cIdx], &intersections);
|
||||
RigHexIntersectionTools::lineHexCellIntersection(p1, p2, hexCorners, globalCellIndex, &intersections);
|
||||
}
|
||||
|
||||
if (!isCellFaceNormalsOut)
|
||||
{
|
||||
for (size_t intIdx = 0; intIdx < intersections.size(); ++intIdx)
|
||||
for (auto& intersection : intersections)
|
||||
{
|
||||
intersections[intIdx].m_isIntersectionEntering = !intersections[intIdx].m_isIntersectionEntering ;
|
||||
intersection.m_isIntersectionEntering = !intersection.m_isIntersectionEntering;
|
||||
}
|
||||
}
|
||||
|
||||
@ -128,7 +118,7 @@ void RigEclipseWellLogExtractor::calculateIntersection()
|
||||
cvf::BoundingBox bb;
|
||||
bb.add(firstPoint);
|
||||
|
||||
std::vector<size_t> closeCellIndices = findCloseCells(bb);
|
||||
std::vector<size_t> closeCellIndices = findCloseCellIndices(bb);
|
||||
|
||||
cvf::Vec3d hexCorners[8];
|
||||
for (const auto& globalCellIndex : closeCellIndices)
|
||||
@ -196,7 +186,7 @@ void RigEclipseWellLogExtractor::curveData(const RigResultAccessor* resultAccess
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
std::vector<size_t> RigEclipseWellLogExtractor::findCloseCells(const cvf::BoundingBox& bb)
|
||||
std::vector<size_t> RigEclipseWellLogExtractor::findCloseCellIndices(const cvf::BoundingBox& bb)
|
||||
{
|
||||
std::vector<size_t> closeCells;
|
||||
m_caseData->mainGrid()->findIntersectingCells(bb, &closeCells);
|
||||
|
@ -41,9 +41,9 @@ public:
|
||||
const RigEclipseCaseData* caseData() { return m_caseData.p();}
|
||||
|
||||
|
||||
protected:
|
||||
private:
|
||||
void calculateIntersection();
|
||||
std::vector<size_t> findCloseCells(const cvf::BoundingBox& bb);
|
||||
std::vector<size_t> findCloseCellIndices(const cvf::BoundingBox& bb);
|
||||
virtual cvf::Vec3d calculateLengthInCell(size_t cellIndex,
|
||||
const cvf::Vec3d& startPoint,
|
||||
const cvf::Vec3d& endPoint) const override;
|
||||
|
Loading…
Reference in New Issue
Block a user