diff --git a/methods/Method_D.cpp b/methods/Method_D.cpp index 6fd827bd8c486d697ed4bde5cc9779b0f79fe364..0597fd0014fb9e0a7ead6869177ec715b6cf3cf8 100644 --- a/methods/Method_D.cpp +++ b/methods/Method_D.cpp @@ -138,7 +138,7 @@ bool Method_D::Process (const PedData& peddata,const fs::path& scriptsLocation, } vector<int> ids=_peds_t[frameNr]; vector<int> IdInFrame = peddata.GetIdInFrame(frameNr, ids, zPos_measureArea); - vector<double> XInFrame = peddata.GetXInFrame(frameNr, ids, zPos_measureArea); + // vector<int> RealIdInFrame = peddata.GetRealIdInFrame(frameNr, ids, zPos_measureArea); vector<double> YInFrame = peddata.GetYInFrame(frameNr, ids, zPos_measureArea); vector<double> VInFrame = peddata.GetVInFrame(frameNr, ids, zPos_measureArea); //vector int to_remove diff --git a/methods/PedData.cpp b/methods/PedData.cpp index 06095c4792d40691b52e60db2eb00b4c6b432d2a..4827ae59ee80b7726f5ab90a980d545fc84277ea 100644 --- a/methods/PedData.cpp +++ b/methods/PedData.cpp @@ -29,6 +29,8 @@ #include "PedData.h" #include <cmath> #include <string> +#include <set> + using std::string; using std::map; using std::vector; @@ -45,6 +47,7 @@ PedData::~PedData() bool PedData::ReadData(const fs::path& projectRootDir, const fs::path&outputLocation, const fs::path& path, const fs::path& filename, const FileFormat& trajformat, int deltaF, std::string vComponent, const bool IgnoreBackwardMovement) { _minID = INT_MAX; + _maxID = INT_MAX; _minFrame = INT_MAX; _deltaF = deltaF; _vComponent = vComponent; @@ -218,10 +221,13 @@ bool PedData::InitializeVariables(const fs::path& filename) Log->Write("INFO:\t Finished reading the data"); } + fdata.close(); Log->Write("INFO: Got %d lines", _IdsTXT.size()); _minID = *min_element(_IdsTXT.begin(),_IdsTXT.end()); + _maxID = *max_element(_IdsTXT.begin(),_IdsTXT.end()); Log->Write("INFO: minID: %d", _minID); + Log->Write("INFO: maxID: %d", _maxID); _minFrame = *min_element(_FramesTXT.begin(),_FramesTXT.end()); Log->Write("INFO: minFrame: %d", _minFrame); //Total number of frames @@ -230,12 +236,16 @@ bool PedData::InitializeVariables(const fs::path& filename) //Total number of agents std::vector<int> unique_ids = _IdsTXT; - // no need to + + // no need to //sort. Assume that ids are ascendant - sort(unique_ids.begin(), unique_ids.end()); - std::vector<int>::iterator it; - it = unique(unique_ids.begin(), unique_ids.end()); - unique_ids.resize(distance(unique_ids.begin(),it)); + + std::set<int> s; + for( auto a: _IdsTXT ) + { + s.insert( a ); + } + unique_ids.assign( s.begin(), s.end() ); _numPeds = unique_ids.size(); Log->Write("INFO: Total number of Agents: %d", _numPeds); CreateGlobalVariables(_numPeds, _numFrames); diff --git a/methods/PedData.h b/methods/PedData.h index d3a644f137dc7d06f4e7efbdbbd5406ad1bcdb3b..d71576de0ec03c6ac76150b2074709dd9f1f642f 100644 --- a/methods/PedData.h +++ b/methods/PedData.h @@ -95,6 +95,7 @@ private: fs::path _outputLocation=""; int _minFrame=0; int _minID=1; + int _maxID=0; int _numFrames=0; // total number of frames int _numPeds=0; // total number of pedestrians float _fps=16;