#2578 Fix avoid UTM coordinates in 2D intersection View (behind the scenes)

This commit is contained in:
Jacob Støren 2018-03-06 15:14:54 +01:00
parent b13422d28b
commit 91daf49e8a
5 changed files with 22 additions and 4 deletions

View File

@ -144,14 +144,16 @@ void RivIntersectionGeometryGenerator::calculateSegementTransformPrLinePoint()
cvf::Vec3d p2 = polyLine[idxToNextP];
cvf::Mat4d sectionLocalCS = calculateSectionLocalFlatteningCS(p1, p2, m_extrusionDirection);
if ( pLineIdx == 0 && lIdx == 0 ) previousSectionOrigo = sectionLocalCS.translation();
previousSectionFlattenedEndPosX += (sectionLocalCS.translation() - previousSectionOrigo).length();
previousSectionOrigo = sectionLocalCS.translation();
invSectionCS = sectionLocalCS.getInverted();
cvf::Vec3d flattenedTranslation(previousSectionFlattenedEndPosX, 0.0, 0.0);
invSectionCS.setTranslation(invSectionCS.translation() + flattenedTranslation - displayOffset);
invSectionCS.setTranslation(invSectionCS.translation() + flattenedTranslation );
}
size_t inc = 0;
@ -210,6 +212,8 @@ void RivIntersectionGeometryGenerator::calculateArrays()
if (polyLine.size() < 2) continue;
size_t lineCount = polyLine.size();
//size_t lIdx = 0;
//while ( lIdx < lineCount - 1)
for (size_t lIdx = 0; lIdx < lineCount - 1; ++lIdx)
{
size_t idxToNextP = indexToNextValidPoint(polyLine, m_extrusionDirection, lIdx);
@ -402,6 +406,7 @@ void RivIntersectionGeometryGenerator::calculateArrays()
}
}
}
// lIdx = idxToNextP;
}
}
m_triangleVxes->assign(triangleVertices);

View File

@ -41,6 +41,7 @@
#include "RimWellPath.h"
#include <QDateTime>
#include "cafDisplayCoordTransform.h"
CAF_PDM_SOURCE_INIT(Rim2dIntersectionView, "Intersection2dView");
@ -287,6 +288,14 @@ void Rim2dIntersectionView::update3dInfo()
m_viewer->update();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------
cvf::ref<caf::DisplayCoordTransform> Rim2dIntersectionView::displayCoordTransform() const
{
return new caf::DisplayCoordTransform();
}
//--------------------------------------------------------------------------------------------------
///
//--------------------------------------------------------------------------------------------------

View File

@ -60,6 +60,9 @@ public:
cvf::ref<RivIntersectionPartMgr> flatIntersectionPartMgr() const { return m_flatIntersectionPartMgr; }
virtual cvf::ref<caf::DisplayCoordTransform> displayCoordTransform() const override;
protected:
void updateLegends();

View File

@ -392,11 +392,12 @@ void RimIntersection::updateAzimuthLine()
//--------------------------------------------------------------------------------------------------
std::vector< std::vector <cvf::Vec3d> > RimIntersection::polyLines(double * horizontalLengthAlongWellToPolylineStart) const
{
CVF_ASSERT(horizontalLengthAlongWellToPolylineStart != nullptr);
if (horizontalLengthAlongWellToPolylineStart) *horizontalLengthAlongWellToPolylineStart = 0.0;
std::vector< std::vector <cvf::Vec3d> > lines;
double horizontalProjectedLengthAlongWellPathToClipPoint = 0.0;
if (horizontalLengthAlongWellToPolylineStart) *horizontalLengthAlongWellToPolylineStart = 0.0;
if (type == CS_WELL_PATH)
{
if (wellPath() && wellPath->wellPathGeometry() )

View File

@ -191,7 +191,7 @@ QString RiuResultTextBuilder::geometrySelectionText(QString itemSeparator)
QString formattedText;
if (m_2dIntersectionView)
{
formattedText.sprintf("Horizontal length from well start: %.2f", domainCoord.x());
formattedText.sprintf("Horizontal length from well start: %.2f", m_intersectionPoint.x());
text += formattedText + itemSeparator;
cvf::Mat4d t = m_2dIntersectionView->flatIntersectionPartMgr()->unflattenTransformMatrix(m_intersectionPoint);