/*========================================================================= Program: vv http://www.creatis.insa-lyon.fr/rio/vv Authors belong to: - University of LYON http://www.universite-lyon.fr/ - Léon Bérard cancer center http://www.centreleonberard.fr - CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the copyright notices for more information. It is distributed under dual licence - BSD See included LICENSE.txt file - CeCILL-B http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html ===========================================================================**/ //-------------------------------------------------------------------- clitk::RelativePositionDataBaseAnalyzerFilter:: RelativePositionDataBaseAnalyzerFilter(): clitk::FilterBase(), clitk::FilterWithAnatomicalFeatureDatabaseManagement() { VerboseFlagOff(); SetDatabaseFilename("default.dbrp"); } //-------------------------------------------------------------------- //-------------------------------------------------------------------- void clitk::RelativePositionDataBaseAnalyzerFilter:: PrintOptions() { DD("TODO"); } //-------------------------------------------------------------------- //-------------------------------------------------------------------- void clitk::RelativePositionDataBaseAnalyzerFilter:: Update() { // Load DB of relative position db.Read(GetDatabaseFilename()); // Get list of objects, list of orientation std::vector m_ListOfObjects; db.GetListOfObjects(GetStationName(), m_ListOfObjects); // Set initial index in the DB clitk::RelativePositionDataBase::IndexType index; index.station = GetStationName(); // Loop over objects std::vector m_ListOfThresholds; for(unsigned int i=0; i m_ListOfDirections; db.GetListOfDirections(GetStationName(), index.object, m_ListOfDirections); // Loop over direction for(unsigned int j=0; j & ListOfPatients = db.GetListOfPatients(index); // DD(ListOfPatients.size()); // index.direction.Println(); // For a given station, object, direction bool stop=false; unsigned int i=0; if (index.direction.notFlag) threshold = 0.0; else threshold = 1.0; while (!stop && (i