From 3797a276312277878e56c0257bdb9614de30ebdb Mon Sep 17 00:00:00 2001 From: Maxime C Date: Fri, 13 Nov 2015 14:42:51 -0500 Subject: [PATCH] fixed important RTT initialization problem where backward and forward directions where not equivalent --- src/dataset/RTTFibers.cpp | 14 +++++++++++++- src/dataset/RTTFibers.h | 2 ++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/dataset/RTTFibers.cpp b/src/dataset/RTTFibers.cpp index 38bcc08f..46250143 100644 --- a/src/dataset/RTTFibers.cpp +++ b/src/dataset/RTTFibers.cpp @@ -147,6 +147,8 @@ void RTTFibers::clearFibersRTT() m_streamlinesColors.clear(); m_streamlinesPoints.clear(); + m_storedDir.clear(); + if( SceneManager::getInstance()->isUsingVBO() ) { glDeleteBuffers( 2, m_bufferObjectsRTT ); @@ -1500,7 +1502,17 @@ void RTTFibers::performHARDIRTT(Vector seed, int bwdfwd, vector& points, if( withinMapThreshold(sticksNumber, currPosition) && !m_stop && absPeak != 0) { bool initWithDir = RTTrackingHelper::getInstance()->isInitSeed(); - sticks = pickDirection(m_pMaximasInfo->getMainDirData()->at(sticksNumber), initWithDir, currPosition); + + if(bwdfwd != -1) + { + sticks = pickDirection(m_pMaximasInfo->getMainDirData()->at(sticksNumber), initWithDir, currPosition); + m_storedDir = sticks; + } + else + { + sticks = m_storedDir; + } + currDirection.x = flippedAxes.x * sticks[0]; currDirection.y = flippedAxes.y * sticks[1]; diff --git a/src/dataset/RTTFibers.h b/src/dataset/RTTFibers.h index 62712ee2..f8d9f828 100644 --- a/src/dataset/RTTFibers.h +++ b/src/dataset/RTTFibers.h @@ -127,6 +127,8 @@ class RTTFibers std::vector m_streamlinesPoints; // Points to be rendered Forward std::vector m_streamlinesColors; //Color (local directions)Forward + + std::vector m_storedDir; float m_alpha;