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