1 #include "brad_eigenspace_base.h"
2 //
3 #include <brad/brad_eigenspace.h>
4 #include <brad/brad_hist_prob_feature_vector.h>
5 #include <brad/brad_grad_hist_feature_vector.h>
6 #include <brad/brad_grad_int_feature_vector.h>
7
vsl_b_write(vsl_b_ostream & os,const brad_eigenspace_sptr & es_ptr)8 void vsl_b_write(vsl_b_ostream &os, const brad_eigenspace_sptr& es_ptr)
9 {
10 if (es_ptr->feature_vector_type() == "brad_hist_prob_feature_vector"){
11 std::string t = "brad_hist_prob_feature_vector";
12 auto* hp =
13 dynamic_cast<brad_eigenspace<brad_hist_prob_feature_vector>* >(es_ptr.ptr());
14 vsl_b_write(os, t);
15 vsl_b_write(os, *hp);
16 return;
17 }
18 else if (es_ptr->feature_vector_type() == "brad_grad_hist_feature_vector"){
19 std::string t = "brad_grad_hist_feature_vector";
20 auto* hp =
21 dynamic_cast<brad_eigenspace<brad_grad_hist_feature_vector>* >(es_ptr.ptr());
22 vsl_b_write(os, t);
23 vsl_b_write(os, *hp);
24 return;
25 }
26 else if (es_ptr->feature_vector_type() == "brad_grad_int_feature_vector"){
27 std::string t = "brad_grad_int_feature_vector";
28 auto* hp =
29 dynamic_cast<brad_eigenspace<brad_grad_int_feature_vector>* >(es_ptr.ptr());
30 vsl_b_write(os, t);
31 vsl_b_write(os, *hp);
32 return;
33 }
34 std::cout << "Attempt to binary write eigenspace with unknown feature vector\n";
35 }
36
37
vsl_b_read(vsl_b_istream & is,brad_eigenspace_sptr & es_ptr)38 void vsl_b_read(vsl_b_istream &is, brad_eigenspace_sptr& es_ptr)
39 {
40 std::string t;
41 vsl_b_read(is, t);
42 if (t == "brad_hist_prob_feature_vector"){
43 brad_eigenspace<brad_hist_prob_feature_vector> beig;
44 vsl_b_read(is, beig);
45 es_ptr = new brad_eigenspace<brad_hist_prob_feature_vector>(beig);
46 return;
47 }
48 else if (t == "brad_grad_hist_feature_vector"){
49 brad_eigenspace<brad_grad_hist_feature_vector> beig;
50 vsl_b_read(is, beig);
51 es_ptr = new brad_eigenspace<brad_grad_hist_feature_vector>(beig);
52 return;
53 }
54 else if (t == "brad_grad_int_feature_vector"){
55 brad_eigenspace<brad_grad_int_feature_vector> beig;
56 vsl_b_read(is, beig);
57 es_ptr = new brad_eigenspace<brad_grad_int_feature_vector>(beig);
58 return;
59 }
60 std::cout << "Attempt to binary read eigenspace with unknown feature vector\n";
61 }
62