00001 #include <vgui/vgui.h>
00002 #include <vgui/vgui_key.h>
00003 #include <vgui/vgui_menu.h>
00004 #include <bmvv/bmvv_recon_manager.h>
00005 #include <bmvv/bmvv_recon_menus.h>
00006
00007
00008
00009 void bmvv_recon_menus::quit_callback()
00010 {
00011 bmvv_recon_manager::instance()->quit();
00012 }
00013
00014
00015 void bmvv_recon_menus::load_image_callback()
00016 {
00017 bmvv_recon_manager::instance()->load_image();
00018 }
00019
00020 void bmvv_recon_menus::clear_display_callback()
00021 {
00022 bmvv_recon_manager::instance()->clear_display();
00023 }
00024
00025 void bmvv_recon_menus::clear_selected_callback()
00026 {
00027 bmvv_recon_manager::instance()->clear_selected();
00028 }
00029
00030 void bmvv_recon_menus::read_3d_points_callback()
00031 {
00032 bmvv_recon_manager::instance()->read_3d_points();
00033 }
00034
00035 void bmvv_recon_menus::initial_model_projection_callback()
00036 {
00037 bmvv_recon_manager::instance()->initial_model_projection();
00038 }
00039
00040 void bmvv_recon_menus::model_projection_callback()
00041 {
00042 bmvv_recon_manager::instance()->model_projection();
00043 }
00044
00045 void bmvv_recon_menus::print_selected_corr_callback()
00046 {
00047 bmvv_recon_manager::instance()->print_selected_corr();
00048 }
00049
00050 void bmvv_recon_menus::pick_corr_callback()
00051 {
00052 bmvv_recon_manager::instance()->pick_corr();
00053 }
00054
00055 void bmvv_recon_menus::write_corrs_callback()
00056 {
00057 bmvv_recon_manager::instance()->write_corrs();
00058 }
00059
00060 void bmvv_recon_menus::read_corrs_callback()
00061 {
00062 bmvv_recon_manager::instance()->read_corrs();
00063 }
00064
00065 void bmvv_recon_menus::compute_homographies_callback()
00066 {
00067 bmvv_recon_manager::instance()->compute_homographies();
00068 }
00069
00070 void bmvv_recon_menus::write_homographies_callback()
00071 {
00072 bmvv_recon_manager::instance()->write_homographies();
00073 }
00074
00075 void bmvv_recon_menus::read_homographies_callback()
00076 {
00077 bmvv_recon_manager::instance()->read_homographies();
00078 }
00079
00080 void bmvv_recon_menus::project_image_callback()
00081 {
00082 bmvv_recon_manager::instance()->project_image();
00083 }
00084
00085 void bmvv_recon_menus::set_images_callback()
00086 {
00087 bmvv_recon_manager::instance()->set_images();
00088 }
00089
00090 void bmvv_recon_menus::compute_harris_corners_callback()
00091 {
00092 bmvv_recon_manager::instance()->compute_harris_corners();
00093 }
00094
00095 void bmvv_recon_menus::overlapping_projections_callback()
00096 {
00097 bmvv_recon_manager::instance()->overlapping_projections();
00098 }
00099
00100 void bmvv_recon_menus::overlapping_projections_z_callback()
00101 {
00102 bmvv_recon_manager::instance()->overlapping_projections_z();
00103 }
00104
00105 void bmvv_recon_menus::overlapping_harris_proj_z_callback()
00106 {
00107 bmvv_recon_manager::instance()->overlapping_harris_proj_z();
00108 }
00109
00110 void bmvv_recon_menus::cross_correlate_plane_callback()
00111 {
00112 bmvv_recon_manager::instance()->cross_correlate_plane();
00113 }
00114
00115 void bmvv_recon_menus::cross_correlate_z_callback()
00116 {
00117 bmvv_recon_manager::instance()->cross_correlate_z();
00118 }
00119
00120 void bmvv_recon_menus::cross_correlate_harris_z_callback()
00121 {
00122 bmvv_recon_manager::instance()->cross_correlate_harris_z();
00123 }
00124
00125 void bmvv_recon_menus::depth_image_callback()
00126 {
00127 bmvv_recon_manager::instance()->depth_image();
00128 }
00129
00130 void bmvv_recon_menus::harris_depth_match_callback()
00131 {
00132 bmvv_recon_manager::instance()->harris_depth_match();
00133 }
00134
00135 void bmvv_recon_menus::z_corr_image_callback()
00136 {
00137 bmvv_recon_manager::instance()->z_corr_image();
00138 }
00139
00140 void bmvv_recon_menus::corr_plot_callback()
00141 {
00142 bmvv_recon_manager::instance()->corr_plot();
00143 }
00144
00145 void bmvv_recon_menus::map_point_callback()
00146 {
00147 bmvv_recon_manager::instance()->map_point();
00148 }
00149
00150 void bmvv_recon_menus::map_image_callback()
00151 {
00152 bmvv_recon_manager::instance()->map_image();
00153 }
00154
00155 void bmvv_recon_menus::map_harris_corners_callback()
00156 {
00157 bmvv_recon_manager::instance()->map_harris_corners();
00158 }
00159
00160 void bmvv_recon_menus::match_harris_corners_callback()
00161 {
00162 bmvv_recon_manager::instance()->match_harris_corners();
00163 }
00164
00165 void bmvv_recon_menus::harris_sweep_callback()
00166 {
00167 bmvv_recon_manager::instance()->harris_sweep();
00168 }
00169
00170 void bmvv_recon_menus::display_matched_corners_callback()
00171 {
00172 bmvv_recon_manager::instance()->display_matched_corners();
00173 }
00174
00175 void bmvv_recon_menus::display_harris_3d_callback()
00176 {
00177 bmvv_recon_manager::instance()->display_harris_3d();
00178 }
00179
00180 void bmvv_recon_menus::write_points_vrml_callback()
00181 {
00182 bmvv_recon_manager::instance()->write_points_vrml();
00183 }
00184
00185 void bmvv_recon_menus::read_points_vrml_callback()
00186 {
00187 bmvv_recon_manager::instance()->read_points_vrml();
00188 }
00189
00190 void bmvv_recon_menus::read_change_data_callback()
00191 {
00192 bmvv_recon_manager::instance()->read_change_data();
00193 }
00194
00195 void bmvv_recon_menus::write_volumes_vrml_callback()
00196 {
00197 bmvv_recon_manager::instance()->write_volumes_vrml();
00198 }
00199
00200 void bmvv_recon_menus::write_change_volumes_vrml_callback()
00201 {
00202 bmvv_recon_manager::instance()->write_change_volumes_vrml();
00203 }
00204
00205 void bmvv_recon_menus::compute_change_callback()
00206 {
00207 bmvv_recon_manager::instance()->compute_change();
00208 }
00209 #if 0
00210 void bmvv_recon_menus::display_dense_match_callback()
00211 {
00212 bmvv_recon_manager::instance()->display_dense_match();
00213 }
00214 #endif
00215 void bmvv_recon_menus::read_f_matrix_callback()
00216 {
00217 bmvv_recon_manager::instance()->read_f_matrix();
00218 }
00219
00220 void bmvv_recon_menus::show_epipolar_line_callback()
00221 {
00222 bmvv_recon_manager::instance()->show_epipolar_line();
00223 }
00224
00225 void bmvv_recon_menus::show_world_homography_callback()
00226 {
00227 bmvv_recon_manager::instance()->show_world_homography();
00228 }
00229
00230
00231 vgui_menu bmvv_recon_menus::get_menu()
00232 {
00233 vgui_menu menubar;
00234 vgui_menu menufile;
00235 vgui_menu menuview;
00236 vgui_menu menuedit;
00237 vgui_menu menudebug;
00238
00239 menufile.add( "Load Image", load_image_callback,(vgui_key)'l', vgui_CTRL);
00240 menufile.add( "Read 3d Points", read_3d_points_callback);
00241 menufile.add( "Write Correspondences", write_corrs_callback);
00242 menufile.add( "Read Correspondences", read_corrs_callback);
00243 menufile.add( "Write Homographies", write_homographies_callback);
00244 menufile.add( "Read Homographies", read_homographies_callback);
00245 menufile.add( "Write Points (VRML)", write_points_vrml_callback);
00246 menufile.add( "Read Points (VRML)", read_points_vrml_callback);
00247 menufile.add( "Write Volumes (VRML)", write_volumes_vrml_callback);
00248 menufile.add( "Read Change Data (VRML)", read_change_data_callback);
00249 menufile.add( "Write Change Volumes (VRML)", write_change_volumes_vrml_callback);
00250 menufile.add( "Read F Matrix", read_f_matrix_callback);
00251
00252 menufile.add( "Quit", quit_callback,(vgui_key)'q', vgui_CTRL);
00253
00254
00255 menuview.add("Clear Display", clear_display_callback);
00256 menuview.add("Clear Selected", clear_selected_callback);
00257 menuview.add("Initial Model Projection", initial_model_projection_callback);
00258 menuview.add("Model Projection", model_projection_callback);
00259 menuview.add("Show Epipolar Line", show_epipolar_line_callback);
00260 menuview.add("Show World Homography", show_world_homography_callback);
00261
00262
00263
00264 menuedit.add("Selected Corr", print_selected_corr_callback);
00265 menuedit.add("Pick Corr", pick_corr_callback, (vgui_key)'p', vgui_CTRL);
00266 menuedit.add("Compute Homographies", compute_homographies_callback);
00267 menuedit.add("Set Images", set_images_callback);
00268 menuedit.add("Compute Harris Corners", compute_harris_corners_callback);
00269 menuedit.add("Depth Image", depth_image_callback);
00270 menuedit.add("Harris Depth Match", harris_depth_match_callback);
00271 menuedit.add("Compute Change", compute_change_callback);
00272
00273
00274 menudebug.add("Image Projection", project_image_callback);
00275 menudebug.add("Overlapping Projections", overlapping_projections_callback);
00276 menudebug.add("Overlapping Projections at Z",
00277 overlapping_projections_z_callback);
00278 menudebug.add("Overlapping Harris Projections at Z",
00279 overlapping_harris_proj_z_callback);
00280 menudebug.add("CrossCorrelate On Plane", cross_correlate_plane_callback);
00281 menudebug.add("CrossCorrelate At Z", cross_correlate_z_callback);
00282 menudebug.add("CrossCorrelate Harris Corners At Z",
00283 cross_correlate_harris_z_callback);
00284 menudebug.add("Base Correlation Image at Z Index",z_corr_image_callback);
00285 menudebug.add("Correlation vs z at Picked Point",corr_plot_callback);
00286 menudebug.add("Map a Picked Point", map_point_callback);
00287 menudebug.add("Map the Selected Image", map_image_callback);
00288 menudebug.add("Map Harris Corners", map_harris_corners_callback);
00289 menudebug.add("Match Harris Corners", match_harris_corners_callback);
00290 menudebug.add("Harris Sweep", harris_sweep_callback);
00291 menudebug.add("Matched Corners at Z", display_matched_corners_callback);
00292 menudebug.add("Display Harris 3d", display_harris_3d_callback);
00293 #if 0
00294 menudebug.add("Display Dense Match", display_dense_match_callback);
00295 #endif
00296
00297
00298 menubar.add( "File", menufile);
00299 menubar.add( "View", menuview);
00300 menubar.add( "Edit", menuedit);
00301 menubar.add( "Debug", menudebug);
00302 return menubar;
00303 }
00304