mex_merger.h
00001 #include <mex/mex_parser.h> 00002 #include <mex/mex_pdf.h> 00003 00004 class mexMerger: public MergerBase { 00005 protected: 00006 mxArray *data; 00007 shared_ptr<epdf> merg; 00008 public: 00009 mexMerger() {}; 00010 void from_setting(const Setting &S) { 00011 Setting &So=S["object"]; 00012 data = (mxArray*)long(So); 00013 00014 // copy sources 00015 mxArray *sA; 00016 mexCallMATLAB(1, &sA, 1, &data, "get_sources"); 00017 00018 UImxArray src(sA); 00019 UI::get(sources, src); 00020 } 00021 00022 void set_sources(const Array<shared_ptr<epdf> > &Src){ 00023 sources=Src; 00024 00025 mxArray *in[2]; 00026 in[0] = data; 00027 UImxArray S; 00028 UI::save(Src, S); 00029 in[1] = UImxArray::create_mxArray(S); 00030 00031 mxArray *tmp; 00032 mexCallMATLAB(1, &tmp, 2, in, "set_sources"); 00033 data = tmp; 00034 } 00035 void validate() { 00036 mxArray *tmp; 00037 mexCallMATLAB(1, &tmp, 1, &data, "validate"); 00038 // new object is in tmp 00039 data = tmp; 00040 00041 mxArray *tmp2; 00042 mexCallMATLAB(1, &tmp2, 1,(mxArray **) &data, "get_merger"); 00043 UImxArray mg(tmp2); 00044 merg=UI::build<epdf>(mg); 00045 00046 MergerBase::validate(); 00047 } 00048 void merge() { 00049 mxArray *tmp; 00050 mexCallMATLAB(1, &tmp, 0, &tmp, "merge"); 00051 data = tmp; 00052 } 00053 const epdf& merger() { 00054 mxArray *tmp; 00055 mexCallMATLAB(1, &tmp, 1,(mxArray **) &data, "get_merger"); 00056 UImxArray mg(tmp); 00057 merg=UI::build<epdf>(mg); 00058 return *(merg.get()); 00059 } 00060 }; 00061 UIREGISTER(mexMerger);
Generated on 2 Dec 2013 for mixpp by
![doxygen](doxygen.png)