1 // This is brl/bseg/bstm/pro/processes/bstm_scene_lvcs_process.cxx 2 //: 3 // \file 4 // \brief A process for accessing scene LVCS 5 // 6 // \author Raphael Kargon 7 // \date July 11, 2017 8 9 #include <bprb/bprb_func_process.h> 10 11 #include <bstm/bstm_scene.h> 12 #include "vpgl/vpgl_lvcs_sptr.h" 13 14 namespace bstm_scene_lvcs_process_globals 15 { 16 constexpr unsigned n_inputs_ = 1; 17 constexpr unsigned n_outputs_ = 1; 18 } bstm_scene_lvcs_process_cons(bprb_func_process & pro)19bool bstm_scene_lvcs_process_cons(bprb_func_process& pro) 20 { 21 using namespace bstm_scene_lvcs_process_globals; 22 //process takes 1 input, the scene 23 std::vector<std::string> input_types_(n_inputs_); 24 input_types_[0] = "bstm_scene_sptr"; 25 26 // process has 3 outputs: 27 std::vector<std::string> output_types_(n_outputs_); 28 output_types_[0] = "vpgl_lvcs_sptr"; 29 return pro.set_input_types(input_types_) && pro.set_output_types(output_types_); 30 } 31 bstm_scene_lvcs_process(bprb_func_process & pro)32bool bstm_scene_lvcs_process(bprb_func_process& pro) 33 { 34 using namespace bstm_scene_lvcs_process_globals; 35 36 if ( pro.n_inputs() < n_inputs_ ){ 37 std::cout << pro.name() << ": The input number should be " << n_inputs_<< std::endl; 38 return false; 39 } 40 41 //get the inputs 42 bstm_scene_sptr scene = pro.get_input<bstm_scene_sptr>(0); 43 vpgl_lvcs_sptr lvcs = new vpgl_lvcs(scene->lvcs()); 44 45 // store outputs 46 int i=0; 47 pro.set_output_val<vpgl_lvcs_sptr>(i++, lvcs); 48 return true; 49 } 50