From f7d7e88bbb2ad15a0a2f1f8adc5abcbe0b9b385c Mon Sep 17 00:00:00 2001 From: Adam Wulkiewicz Date: Sun, 25 Nov 2012 17:28:12 +0000 Subject: [PATCH] Modified glut_vis additional test and added generated rtree images. [SVN r81528] --- doc/rtree/images/disjoint.png | Bin 0 -> 2223 bytes doc/rtree/images/intersects.png | Bin 0 -> 2228 bytes doc/rtree/images/knn.png | Bin 0 -> 2774 bytes doc/rtree/images/knn_cover.png | Bin 0 -> 3072 bytes doc/rtree/images/knn_inters.png | Bin 0 -> 3058 bytes doc/rtree/images/linear.png | Bin 0 -> 2158 bytes doc/rtree/images/overlaps.png | Bin 0 -> 2209 bytes doc/rtree/images/quadratic.png | Bin 0 -> 2096 bytes doc/rtree/images/rstar.png | Bin 0 -> 2079 bytes doc/rtree/images/within.png | Bin 0 -> 2208 bytes .../index/rtree/visitors/gl_draw.hpp | 20 +++--- tests/additional_glut_vis.cpp | 59 +++++++++++++++--- 12 files changed, 62 insertions(+), 17 deletions(-) create mode 100644 doc/rtree/images/disjoint.png create mode 100644 doc/rtree/images/intersects.png create mode 100644 doc/rtree/images/knn.png create mode 100644 doc/rtree/images/knn_cover.png create mode 100644 doc/rtree/images/knn_inters.png create mode 100644 doc/rtree/images/linear.png create mode 100644 doc/rtree/images/overlaps.png create mode 100644 doc/rtree/images/quadratic.png create mode 100644 doc/rtree/images/rstar.png create mode 100644 doc/rtree/images/within.png diff --git a/doc/rtree/images/disjoint.png b/doc/rtree/images/disjoint.png new file mode 100644 index 0000000000000000000000000000000000000000..131a915865d2e57778ca9c8c7223640cbd0cb2b3 GIT binary patch literal 2223 zcmeAS@N?(olHy`uVBq!ia0y~yU^olH9Bd2>4AOhPWHK-?uqAoByDm3UZqra=!JHfq_9bGbEzKIX^cyHLrvL z1e}Xf6H8K46v{J8G8EiBeFIYTQrQ_8ID|c2978H@y}cVioKdKMYyG52sVAEX3NG+2D3oqX%wSma%vqS>_K&S!TK2u)8pKs{cV+(d zy0icPeB0fVw%7do$Mg5M{hrg7z>(JVaQTE~xx3ER{=dG;ZBC%T=hY9~9-+QqxKe(izs6Wzzcf#(= zHb(plBfV1B#mes}&on8>KFqp&XOKbm{L3c3m+xNAc<@hc#xs-kvKC+Fd{;m7>wxk9 zx{n(E26NaPCTD#+^NYdatk<ow$1}RvSeui+Ern9n+X_ zAd{h`Q0hU>v@}EYBS+@2J>__|Wch7BP0PDM&SBG<13BS5G^j z7v}QooyA$#-n`d-RUu)wABKm;GaY=QJLd@7qlGui7tfx-7V0nl{mzRtcZOG`2j?1# zFY2`DvVFhK#$qkcSF7yGvW+W+VyCJncd*Uw3}vvN^@Ew;%thFcp-#lXKB~j^%4-=> zw>)#J`*r&N&;AX+yk)*>hugF_zXGe?thwUfw%uy`>E?@JSBls+&7UX8Dsh=T&WaW&hh?-P>b%hQ69j zkut{n4);jyWPN(`sEO)^?UQ+g_x}%no_qV*=J(Bi*M9%~_vin-Bc*Zoe}CP{ayU~@ z{LHkAb-ms>OJDC&IM2A;vRuwSD0kEEcmJfGI+x#BdcFJWz6T~ZH>#buZ!F8a+_OzW zx%U4}``Fw!U$5_be&_S8Wq0ScO4rSLx!Q8pvK6Wfe!>$rUbG9*s#v|c$2Prp!?%=& zUe@}DGxbFL&g5K~`0~b;_i|+?yxw^|MFgXR>xp@x9$RFYxg$3PecM(zt1DvivU^+C zi7a4q@N*Zk;Coc)`~$LA(f zIiFv6%T<5wv`T3-%W}peCNKLRyq~HV%f{-rSz$(}CWnK`=8NwSBs!QlOfvL+_w(2B zU59^9$vInfV#C9o4@{0Ok@>y8UOsx&tWB1AMIW`7Yx-IQ^KCkD!Z#zlsABtp+YdKy zY`viSuIl{XjB`F$NsfL|w0}l!+Ukk2jH)}I_+6j9OZ&_G>(MXQ@e4k; zl8)@UYROyRro^Bi1@`jJY0%XR#ryfk|w)1C) z*2x4bNF}I7o3HJYEB){M+q5pHC8KZBg^w@X+gE;l+j7^SK-s43AkimszUJSt{u?&2O{T33J>R_}aaa(8d$EMd0|^-S)XkIx>mEPd`4ogZDV!}W}3_x44-my%|^h@AO7b~y{P zA#cFU%X8S;8J9<%^tcfJ$&9C9)`LTZ1>AGMWeGz|SLQ#<>U~Nb?5j#=g{CVl={%Te zwuAGaLg>BUX$K@H&R~1Wt@eT8fA)9zk4>dht2(~M>bEgf&r!M*cPw)GOl_vWIY&IS zzjvhx_^euZVA16-@t>cYl)U}LVYfhb&Dxr67mk={^c#L;^%Y*Io}$(QEuM+;_cc3&+KIqlNwS4V!-u)phm zXp(+=x9@U+%O*z0RXjJ|m@F+{a%uIS z$2Q9)V_D5>8JEv|{%v@XMTPnx1xgDOee!@E&3zd>1FL1mr zkeAxYd2fYBg#nL&Ly?q{X8kdN3Ryp&<~Nqrwi7Qeka##}>%0??+QOsjt>M`qHYc-J zMyvMv{__9%C@%y+Vj7^x>2jYjM1+@Q?B?x;?l)aq9zvQpV?qiq^SQ)J7=G+*xH%=)1p3CWZm2I sr@MTw&heLdxBb3mdKI;Vst04B^B_W%F@ literal 0 HcmV?d00001 diff --git a/doc/rtree/images/intersects.png b/doc/rtree/images/intersects.png new file mode 100644 index 0000000000000000000000000000000000000000..066a1dd80b711b4f58f9e085f7308cb575e83c9f GIT binary patch literal 2228 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 literal 0 HcmV?d00001 diff --git a/doc/rtree/images/knn_inters.png b/doc/rtree/images/knn_inters.png new file mode 100644 index 0000000000000000000000000000000000000000..c32c6474cb62845f4283f2b890dc817096fcfa67 GIT binary patch literal 3058 zcmeAS@N?(olHy`uVBq!ia0y~yU^olH9Bd2>4AOhPWHK-?uqAoByDm3UUgaDT~?0z`!7z84^+AoS&PUnpeUA z0?tLLi6yBi3gww484B*6z5ywEsq734++m(Bjv*Dd-p-9ITWlcU>gxAiJ1NynyLnB| zzl_JnSa>;lmsZ#Rnp46i{rY9-)FqcTtb4tR;lONtImQE~|90$4j1-#}#M_g6&E7mS zS6-Z7@^Mnw=a<*FKK)y-D8W)3YT%{0R9*M+#Z@0a-T43bbNAM3Ja?LMrfHZ^k^bQW8izCg30pstU2gH3 z`TeizhmmpzADA#K&{{ihqaA}que#mV|MRZ1FDP7oadO>r1w(f8MGO=D9tR&(I>I#P zS(CPc#DPo(g}%!SPmYNmeR86+P)a~~M$Ae^KjyQ6R@0AVG89?yh8nFf^;vx`)8Zz( zX>01vozl~Dro93zQ*1Dc)AvnulVf+7M z-X2@K4wuc%x_;4{kH+6#a_--~f7$(8B@gatHO^dWvgl>7h9%pZ zoA+<*pXbFYVqN5D!nfRqMGGSf}j5LS#wj1r>6hA&Aw>f z)JyZG5NsUNBm1<$QJ+WxQ}JR!ih z$n#7!H_yWv5)Tz-#WXcmA6n^Q)1hW~TTEhy=A5pC_mPKMK=w zlcOR%Rcl zIL4y9KWy@41&I}Ra`P;Gb&XwCty8`yFEK^j@7N!;6PeFWdA&;iSa2!%^5p{#Z)YSd zpLx7Sx7FsYTS>&S`DGiAWp!V9(|cF)Zrhw?jQ4gg&29dxe(rvjuBQIP`z7(VyNx{T zX5E#ndzXB=Xo*(ep7-v%RUgl!y z&Y%U+Yqj=pZU498{&ik1QByzRiJP}BRB3-$!?xfxliKYE{DMBYmSIlY4`wRuJ`-o* zxjL{sE${OAd$I{D>-7DYC)~^x;B`pY;!qJ5pP`l}u(4Ts`OCN;3(tO&diiMnZiR-+ zUnHjO5c>Am;c%ru?~e;-O8%b>WC<6_oUit-@4j|wzVySHDI4Y4w;yLoh`F=nu6*(H z@B2KeR1`lQX}|pCS>Lq(pNp6-?-V_LASS!gPLQSLvIpncqJ7WK6-&=?>pD@)|Kx0; zm5899@=;Om3zq_0Iu0GnwBlCIwcgNuZ`*|l+K)}v3VRylKaAO%yYO&xzJ>2<*9Pfk z6R+=e!FA4l%zKZ#Jo`MngH2*i2U}I)UOtxIj1xNr%oZ_va9`crCNb^d-gfPj;~U<; zg!!$fC2~t@tNg>27d5E;v+&J6RQXkmTWr#{ zCtil1mW1yMxY{c;F<#z}dCG>uS>3|#m)y6VF*PXbnyej*R-wgN(Sr;MvlyOL`c>am zP>^EC&Qr0uvwQ00D>41wyU+h?O;3LL#FlJR!hfbh=vRJh<~dY{qde``6E3@3oy8bpGJf7n3e`Jepv9M6Bm!cG$r; z`X58Rde>eL)rs!CA$Xzc(O%(z71p!faqa!`yUbeDOfX!$x8faJ!P8e3yq3;e4&FGe zq`AoPPD92oVZRf$Gk5STa1w*0#1QT3z#bz8{V zwa48Ac=fK>gqK(Te)C}77PGS5McrvKSA!ll&)V|0_xP@hul?M;m)^3Te%WaMyszsT zHvXUgc-_1E&iD3(eSIp_lNDgFZ*%8$oo|0LKd(%86bRy2@iyj&$*;2_7t?+oSU1g* zb@RVJ^>ZIh`mw3Vqqlx)U)WxsheqX!%LN~pEq|UV#3wa> zLqyU195M4&gPP~@!d$V>Gj669NEJyR$TZ?we#ka+=e5?F_wUY}-2G=~RscTQ2u(4$?ZzQ|2SHdcXcMqwO<~pRqRAI`z4@{L#-MF16#I?N@Fw*;wFN z7d-F!=JPiv9@k#(89UYRt5BZS{zg3(XTQl0m|M=A-|dhQ6Z&<{&AlnV4SGL+S;QLL zdwGuP-=o_SA6Q)Iy8Nc~@|%OYp0=z7l0~zW7D{yp^DOeznX@Q7!9&DH^(>bl?;%D1 zp1GG_c<#R*STnhz;%VA_{fiSGo5=RX7D>%F7L>6p<8GH(UR%ENiHVuHqk*`S>8h+q z*=H7J$!;!BOlB6(iH`jv=rbW9$^S#WQ~VKk4kzb51`kbMSgo{sU3)MkW=qiN+T|Ww zr(b+!vQ6!R^vbYzuI6Vmu9R-#T=psCz)O?<)RpTFFI!=gF6{5TPB_=;wy(tFMOSUk zXVo1M_R(56@$wWgzy6))9+sI--rZ94lJ8=OC9ep_b(OH2eUqIIeV}mKZEx)W|`+8>H$ZJb`-RAe#e3rx#0wvo>Xg9Ne+*`t2q0&hKuR zdhB2K%dYR{?z^q~lDLk2uU62jdRy)M)@D{Wvt7LP^@lR&GjsBq5(NA-d)~*fTYTFz z;W9(Y`OIw+7eth2?VCU6VE(hFZ5yo47H&MDE;r@Y=L)`F8_k|AlJByLW6amQKDE)O cf%^~Z(X+QUc}c8J1vR}rUHx3vIVCg!0I_t)UjP6A literal 0 HcmV?d00001 diff --git a/doc/rtree/images/linear.png b/doc/rtree/images/linear.png new file mode 100644 index 0000000000000000000000000000000000000000..a8cc786a0b99928136ed81c8bf9b987113f97dc2 GIT binary patch literal 2158 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 U&0^tgv7n0E)78&qol`;+0BX0+=>Px# literal 0 HcmV?d00001 diff --git a/doc/rtree/images/rstar.png b/doc/rtree/images/rstar.png new file mode 100644 index 0000000000000000000000000000000000000000..45308b361820341eb2e19789c0054e291af2810b GIT binary patch literal 2079 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 literal 0 HcmV?d00001 diff --git a/include/boost/geometry/extensions/index/rtree/visitors/gl_draw.hpp b/include/boost/geometry/extensions/index/rtree/visitors/gl_draw.hpp index 06cfb6c7c..cf8ec843a 100644 --- a/include/boost/geometry/extensions/index/rtree/visitors/gl_draw.hpp +++ b/include/boost/geometry/extensions/index/rtree/visitors/gl_draw.hpp @@ -122,17 +122,17 @@ struct gl_draw : public rtree::visitor const& tree, typedef typename rtree_type::box_type box_type; typedef typename rtree_type::allocators_type allocators_type; + if ( !tree.empty() ) + { + glColor3f(0.75f, 0.75f, 0.75f); + detail::rtree::visitors::detail::gl_draw_indexable(tree.box(), 0); + } + detail::rtree::visitors::gl_draw gl_draw_v(tree.translator(), level_first, level_last, z_coord_level_multiplier); diff --git a/tests/additional_glut_vis.cpp b/tests/additional_glut_vis.cpp index cd8eb5cc7..647b72b6b 100644 --- a/tests/additional_glut_vis.cpp +++ b/tests/additional_glut_vis.cpp @@ -9,6 +9,8 @@ #include +#define BOOST_GEOMETRY_INDEX_ENABLE_DEBUG_INTERFACE + #include #include @@ -31,9 +33,9 @@ std::vector vect; size_t found_count = 0; P search_point; -float min_distance = 20; +float min_distance = 10; float max_distance = 30; -size_t count = 10; +size_t count = 5; std::vector nearest_boxes; B search_box; @@ -50,11 +52,11 @@ void knn() search_point = P(x, y); nearest_boxes.clear(); - found_count = t.nearest( + found_count = t.nearest_query( bgi::bounded( search_point, - bgi::far(min_distance), - bgi::near(max_distance) + bgi::to_furthest(min_distance), + bgi::to_nearest(max_distance) ), count, std::back_inserter(nearest_boxes) @@ -87,13 +89,13 @@ void query() search_box = B(P(x - w, y - h), P(x + w, y + h)); nearest_boxes.clear(); - found_count = t.query(Predicate(search_box), std::back_inserter(nearest_boxes) ); + found_count = t.spatial_query(Predicate(search_box), std::back_inserter(nearest_boxes) ); } else { search_box = t.box(); nearest_boxes.clear(); - found_count = t.query(Predicate(search_box), std::back_inserter(nearest_boxes) ); + found_count = t.spatial_query(Predicate(search_box), std::back_inserter(nearest_boxes) ); } if ( found_count > 0 ) @@ -220,13 +222,23 @@ void resize(int w, int h) glViewport(0, 0, w, h); - gluPerspective(45, ratio, 1, 1000); + //gluPerspective(45, ratio, 1, 1000); + glOrtho(-150, 150, -150, 150, -150, 150); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); - gluLookAt( + /*gluLookAt( 120.0f, 120.0f, 120.0f, 50.0f, 50.0f, -1.0f, + 0.0f, 1.0f, 0.0f);*/ + gluLookAt( + 50.0f, 50.0f, 75.0f, + 50.0f, 50.0f, -1.0f, 0.0f, 1.0f, 0.0f); + + glClearColor(1.0f, 1.0f, 1.0f, 1.0f); + glLineWidth(1.5f); + + srand(1); } void mouse(int button, int state, int x, int y) @@ -292,6 +304,33 @@ void keyboard(unsigned char key, int x, int y) { std::cout << "\n" << t << "\n"; } + else if ( current_line == "rand" ) + { + for ( size_t i = 0 ; i < 35 ; ++i ) + { + float x = ( rand() % 100 ); + float y = ( rand() % 100 ); + float w = ( rand() % 2 ) + 1; + float h = ( rand() % 2 ) + 1; + + B b(P(x - w, y - h),P(x + w, y + h)); + + boost::geometry::index::insert(t, b); + vect.push_back(b); + + std::cout << "inserted: "; + bgi::detail::rtree::visitors::detail::print_indexable(std::cout, b); + std::cout << '\n'; + } + + std::cout << ( bgi::are_boxes_ok(t) ? "boxes OK\n" : "WRONG BOXES!\n" ); + std::cout << ( bgi::are_levels_ok(t) ? "levels OK\n" : "WRONG LEVELS!\n" ); + std::cout << "\n"; + + search_valid = false; + + glutPostRedisplay(); + } else { if ( current_line == "knn" ) @@ -338,7 +377,7 @@ int main(int argc, char **argv) glutInit(&argc, argv); glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA); glutInitWindowPosition(100,100); - glutInitWindowSize(800, 600); + glutInitWindowSize(600, 600); glutCreateWindow("boost::geometry::index::rtree GLUT test"); glutDisplayFunc(render_scene);