69 std::vector< double > data;
117 void set(
size_t i,
double val);
185 line_type = _line_type;
219 std::vector< DocLine >
m;
222 std::vector< DocLine >::iterator current_line;
225 std::vector< DocLine >::iterator
find(
int _key);
233 DocFile(): fn_doc(
""), no_lines(0), first_key(1)
235 current_line = m.begin();
271 current_line = m.begin();
311 void show_line(std::ostream& o,
int key = -1);
380 current_line = m.begin();
394 adjust_to_data_line();
406 void adjust_to_data_line();
418 if (current_line != m.end())
432 if (current_line != m.begin())
459 void jump(
int how_many);
474 current_line =
find(_key);
487 int search_comment(std::string comment);
496 int remove_multiple_strings(std::string pattern);
521 void locate(
int _key);
532 return current_line == m.end();
557 return find(_key) != m.end();
565 int getColNumberFromHeader(
const char * pattern);
572 int FirstLine_colNumber();
622 return (*current_line).key;
647 first_key = _first_key;
661 return (*current_line).data.size();
676 return (*current_line)[
i];
692 double operator()(
int _key,
int i);
699 void get_angles(
int _key,
703 const std::string& ang1,
704 const std::string& ang2,
705 const std::string& ang3);
712 void get_angles1(
int _key,
716 const std::string& ang1,
717 const std::string& ang2,
718 const std::string& ang3);
725 void get_angles2(
int _key,
729 const std::string& ang1,
730 const std::string& ang2,
731 const std::string& ang3);
738 void set_angles(
int _key,
742 const std::string& ang1,
743 const std::string& ang2,
744 const std::string& ang3);
751 void get_image(
int key,
Image<double> &I,
bool apply_geo=
false);
776 void set(
int i,
double val);
792 void set(
int _key,
int i,
double val);
798 return *current_line;
830 void remove(
int _key0,
int _keyF = -1);
843 void remove_current();
856 int insert_data_line(
int no_lines_to_insert = 1);
895 void insert_comment(std::string comment);
912 int insert_line(
const DocLine& DL);
925 int append_data_line(
int no_lines_to_append = 1);
946 int append_angles(
double rot,
949 const std::string& ang1,
950 const std::string& ang2,
951 const std::string& ang3);
957 int append_angles(
double rot,
963 const std::string& ang1,
964 const std::string& ang2,
965 const std::string& ang3);
971 int append_angles(
double rot,
980 const std::string& ang1,
981 const std::string& ang2,
982 const std::string& ang3);
994 void append_comment(
const std::string& comment);
1017 void clean_comments();
1047 void perturb_column(
int col,
double sigma);
1049 #define DOCMERGE_KEEP_OLD 1 1050 #define DOCMERGE_KEEP_NEW 2 1051 #define DOCMERGE_SUM_COLUMN 3 1052 #define DOCMERGE_ERROR 4 1091 DocFile random_discard(
int N);
DocLine get_current_line()
void write(std::ostream &os, const datablock &db)
int read_Euler_document_file(FileName fn, std::string ang1, std::string ang2, std::string ang3, DocFile &DF)
std::vector< SelLine >::iterator find(std::vector< SelLine > &text, const std::string &img_name)
int get_current_valNo() const
double operator()(int i) const
void read(std::istream &i)
void go_first_data_line()
#define DOCMERGE_KEEP_OLD
void set_type(Line_Type _line_type)
basic_istream< char, std::char_traits< char > > istream
void get_subset_docfile(DocFile &DFin, MetaData &SF, DocFile &DFout)
void append(const FileName &_name)
double & operator[](size_t i)
friend std::ostream & operator<<(std::ostream &o, const DocLine &DL)
DocFile(const FileName &doc_name)
int get_no_components() const
void set_FirstKey(int _first_key)
double psi(const double x)
void select_images(DocFile &DF, MetaData &SF, int col, bool en_limit0, double limit0, bool en_limitF, double limitF)