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