1 // This is brl/bpro/core/brad_pro/processes/brad_get_image_coverage_process.cxx 2 //: 3 // \file 4 // get the image lower left corner and the upper right corner of the 'extent' of the satellite image 5 // 6 // 7 #include <bprb/bprb_func_process.h> 8 9 #include <brad/brad_image_metadata.h> 10 brad_get_image_coverage_process_cons(bprb_func_process & pro)11bool brad_get_image_coverage_process_cons(bprb_func_process& pro) 12 { 13 std::vector<std::string> input_types; 14 input_types.emplace_back("brad_image_metadata_sptr"); // image metadata 15 std::vector<std::string> output_types; 16 output_types.emplace_back("double"); 17 output_types.emplace_back("double"); 18 output_types.emplace_back("double"); 19 output_types.emplace_back("double"); 20 output_types.emplace_back("double"); 21 output_types.emplace_back("double"); 22 return pro.set_input_types(input_types) && pro.set_output_types(output_types); 23 } 24 brad_get_image_coverage_process(bprb_func_process & pro)25bool brad_get_image_coverage_process(bprb_func_process& pro) 26 { 27 if (!pro.verify_inputs()) { 28 std::cout << pro.name() << ": WRONG inputs!!!" << std::endl; 29 return false; 30 } 31 32 //get the inputs 33 brad_image_metadata_sptr meta = pro.get_input<brad_image_metadata_sptr>(0); 34 35 double lower_left_lon = meta->lower_left_.x(); 36 double lower_left_lat = meta->lower_left_.y(); 37 double lower_left_elev = meta->lower_left_.z(); 38 double upper_right_lon = meta->upper_right_.x(); 39 double upper_right_lat = meta->upper_right_.y(); 40 double upper_right_elev = meta->upper_right_.z(); 41 // generate output 42 unsigned i = 0; 43 pro.set_output_val<double>(i++, lower_left_lon); 44 pro.set_output_val<double>(i++, lower_left_lat); 45 pro.set_output_val<double>(i++, lower_left_elev); 46 pro.set_output_val<double>(i++, upper_right_lon); 47 pro.set_output_val<double>(i++, upper_right_lat); 48 pro.set_output_val<double>(i++, upper_right_elev); 49 return true; 50 } 51