unsigned long eval_mem(unsigned const * tree) { int i; inner_qnty = leaf_qnty = 0; for(nodes=1,i=0;nodes;++i) { if (tree[i]==0) ++inner_qnty, ++nodes; else ++leaf_qnty, --nodes; } nodes=i; return prologue_size() + epilogue_size() + leaf_qnty*leaf_size() + inner_qnty*inner_size(); }
ARC_Pair::ARC_Pair ( const cv::Point& f, const cv::Rect& second, double ns, const cv::Mat& img, bool* error ) : nsigma(ns), nNoMatch(0), id(++num), age(0), slot(0) { cv::Point s; cv::Size inner_size( 10, 10 ); s = convert_to_point( second, img, inner_size ); if( s==cv::Point(-1, -1) ) { *error = true; return; } if( f.y<s.y ) { roi = ARC_Point_Pair(f,s); } else { roi = ARC_Point_Pair(s,f); } last_good=roi; *error = false; } // ----- end of method ARC_Pair::ARC_Pair (constructor) -----
combinator compile(unsigned nargs, unsigned const * tree) { unsigned long size = eval_mem(tree); char * mmem = mallocx(size); it = 0; compile_prologue(mmem); it += prologue_size(); for(int i=nodes-1;i>=0 ;--i) { if (tree[i]) { compile_leaf(mmem + it, tree[i]); it += leaf_size(); } else { compile_inner(mmem + it); it += inner_size(); } } compile_epilogue(mmem + it, nargs); return (combinator) mmem; }
void TestWindow::layout() { Coord space_dxy=pref.get().space_dxy; Pointsor psor(space_dxy); // swtch , btn , progress { Point size=btn.getMinSize(); Pointsor psor1=psor.cutY(size.y); psor1.placeX(swtch,size.y,CenterFunc(pref.get().swtch_dxy)); psor1.placeX(btn,size); Coord pdy=pref.get().progress_dy; Coord pdx=10*pdy; psor1.placeX(progress,pdx,size.y,CenterYFunc(pdy)); } Point lsize=Sup(label1.getMinSize(),label2.getMinSize(),label3.getMinSize()); Point inner_size(lsize.x+3*space_dxy+lsize.y,3*lsize.y+4*space_dxy); // text_contour { Point size=text_contour.getMinSize(inner_size); psor.placeY(text_contour,size); } // label , rad { Panesor psor(text_contour.getInner(),space_dxy); psor.shrink(); { Panesor psor1=psor.cutY(lsize.y); psor1.placeX(rad1,lsize.y,CenterFunc(pref.get().check_dxy)); psor1.placeX(label1,lsize.x); } { Panesor psor1=psor.cutY(lsize.y); psor1.placeX(rad2,lsize.y,CenterFunc(pref.get().check_dxy)); psor1.placeX(label2,lsize.x); } { Panesor psor1=psor.cutY(lsize.y); psor1.placeX(rad3,lsize.y,CenterFunc(pref.get().check_dxy)); psor1.placeX(label3,lsize.x); } } // label , check , light { Point size=label.getMinSize(); Pointsor psor1=psor.cutY(size.y); psor1.placeX(check,size.y,CenterFunc(pref.get().check_dxy)); psor1.placeX(label,size); psor1.placeX(light,size.y,CenterFunc(pref.get().light_dxy)); } // xsingle , text , edit , xdouble { Point size=edit.getMinSize(); size.x*=3; size.y+=space_dxy; psor.placeMinY(xsingle,size.x,MinSize); psor.placeY(edit,size); psor.placeY(text,size); psor.placeMinY(xdouble,size.x,MinSize); } // ysingle , knob , ydouble , xscroll { Coord dy=btn.getSize().y; Pointsor psor1=psor.cutY(dy); psor1.placeMinX(ysingle,MinSize,dy); psor1.placeX(knob,dy,CenterFunc(pref.get().knob_dxy)); psor1.placeMinX(ydouble,MinSize,dy); Coord sdy=pref.get().scroll_dxy; Coord sdx=10*sdy; psor1.placeX(xscroll,sdx,dy,CenterYFunc(sdy)); } // info { Point size=contour.getMinSize(info.getMinSize()); psor.placeY(contour,size); info.setPlace(contour.getInner()); } // text_list { psor.placeMinY(text_list); } }