mixpp: mex_merger.h Source File

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 1.4.7