/** * \file RegistrationResult.cpp * \brief Registration results class * Copyright 2007-2013 IMP Inventors. All rights reserved. */ #include "IMP/em2d/RegistrationResult.h" #include "IMP/em2d/internal/rotation_helper.h" #include IMPEM2D_BEGIN_NAMESPACE RegistrationResult::~RegistrationResult() {}; RegistrationResults get_random_registration_results(unsigned int n, double maximum_shift) { srand (time(nullptr)); RegistrationResults results; for (unsigned int i=0;i quaternion; String s = line; size_t n; n=s.find("|"); set_image_index(std::atoi(s.substr(0,n).c_str())); s=s.substr(n+1); n=s.find("|"); set_projection_index(std::atoi(s.substr(0,n).c_str())); s=s.substr(n+1); n=s.find("|"); phi_ =std::atof(s.substr(0,n).c_str()); s=s.substr(n+1); n=s.find("|"); theta_ =std::atof(s.substr(0,n).c_str()); s=s.substr(n+1); n=s.find("|"); psi_ =std::atof(s.substr(0,n).c_str()); s=s.substr(n+1); n=s.find("|"); quaternion[0] =std::atof(s.substr(0,n).c_str()); s=s.substr(n+1); n=s.find("|"); quaternion[1] =std::atof(s.substr(0,n).c_str()); s=s.substr(n+1); n=s.find("|"); quaternion[2] =std::atof(s.substr(0,n).c_str()); s=s.substr(n+1); n=s.find("|"); quaternion[3] =std::atof(s.substr(0,n).c_str()); s=s.substr(n+1); n=s.find("|"); shift_[0] =std::atof(s.substr(0,n).c_str()); s=s.substr(n+1); n=s.find("|"); shift_[1] =std::atof(s.substr(0,n).c_str()); s=s.substr(n+1); n=s.find("|"); set_ccc(std::atof(s.substr(0,n).c_str())); R_ = algebra::get_rotation_from_vector4d(quaternion); } //! Reads a set of registration results RegistrationResults read_registration_results(const String &filename) { std::ifstream in(filename.c_str(),std::ios::in | std::ios::binary); unsigned int n_records=0; String line; while(!in.eof()) { getline(in,line); if(line[0]=='#') { continue; } else { n_records=std::atoi(line.c_str()); break; } } RegistrationResults results(n_records); for(unsigned int i=0;i quaternion=R_.get_quaternion(); out << "Name: " << get_name() << " Image index: " << get_image_index() << " Projection index: " << get_projection_index() << " (Phi,Theta,Psi) = ( " < quaternion=R_.get_quaternion(); char c='|'; out << get_image_index() <