1 #include <iostream>
2 #include <string>
3 #include "testlib/testlib_test.h"
4 #include "../bmdl_processes.h"
5 
6 #ifdef _MSC_VER
7 #  include "vcl_msvc_warnings.h"
8 #endif
9 
10 #include <brdb/brdb_value.h>
11 #include <brdb/brdb_selection.h>
12 
13 #include <bprb/bprb_batch_process_manager.h>
14 #include <bprb/bprb_func_process.h>
15 #include <bprb/bprb_parameters.h>
16 #include <bprb/bprb_macros.h>
17 
18 #include "vil/vil_load.h"
19 #include "vil/vil_image_view_base.h"
20 
21 #include "vpgl/vpgl_camera.h"
22 #include <vpgl/file_formats/vpgl_geo_camera.h>
23 
test_bmdl_generate_mesh_process(int argc,char * argv[])24 static void test_bmdl_generate_mesh_process(int argc, char* argv[])
25 {
26   REG_PROCESS_FUNC(bprb_func_process, bprb_batch_process_manager, bmdl_generate_mesh_process, "bmdlGenerateMeshProcess");
27   REGISTER_DATATYPE_LONG_FORM(std::string,vcl_string);
28   REGISTER_DATATYPE(vil_image_view_base_sptr);
29 
30   std::string image_base;
31   if ( argc >= 2 ) {
32     image_base = argv[1];
33     image_base += "/";
34   }
35 
36   //create vil_image_view_base_sptr
37   std::string label_img_path = image_base + "label.tif";
38   vil_image_view_base_sptr label = vil_load(label_img_path.c_str());
39 
40   std::string height_img_path = image_base + "height.tif";
41   vil_image_view_base_sptr height = vil_load(height_img_path.c_str());
42 
43   std::string ground_img_path = image_base + "ground.tif";
44   vil_image_view_base_sptr ground = vil_load(ground_img_path.c_str());
45 
46   std::string polygons_path = "polygons.bin";
47   std::string meshes_path = "meshes.obj";
48   vpgl_camera_double_sptr camera = new vpgl_geo_camera();
49 
50   brdb_value_sptr v0 = new brdb_value_t<std::string>(polygons_path);
51   brdb_value_sptr v1 = new brdb_value_t<vil_image_view_base_sptr>(label);
52   brdb_value_sptr v2 = new brdb_value_t<vil_image_view_base_sptr>(height);
53   brdb_value_sptr v3 = new brdb_value_t<vil_image_view_base_sptr>(ground);
54   brdb_value_sptr v4 = new brdb_value_t<std::string>(meshes_path);
55   brdb_value_sptr v5 = new brdb_value_t<vpgl_camera_double_sptr>(camera);
56 
57   bool good = bprb_batch_process_manager::instance()->init_process("bmdlGenerateMeshProcess");
58   good = good && bprb_batch_process_manager::instance()->set_input(0, v0);
59   good = good && bprb_batch_process_manager::instance()->set_input(1, v1);
60   good = good && bprb_batch_process_manager::instance()->set_input(2, v2);
61   good = good && bprb_batch_process_manager::instance()->set_input(3, v3);
62   good = good && bprb_batch_process_manager::instance()->set_input(4, v4);
63   good = good && bprb_batch_process_manager::instance()->set_input(5, v5);
64   good = good && bprb_batch_process_manager::instance()->run_process();
65 
66   TEST("run generate mesh process", good ,true);
67 }
68 
69 TESTMAIN_ARGS(test_bmdl_generate_mesh_process);
70