1 #ifndef bwm_observer_generic_cam_h_ 2 #define bwm_observer_generic_cam_h_ 3 4 #include <iostream> 5 #include <iosfwd> 6 #include "bwm_observer_cam.h" 7 8 #ifdef _MSC_VER 9 # include <vcl_msvc_warnings.h> 10 #endif 11 12 #include <vgl/vgl_fwd.h> 13 14 #include <vpgl/vpgl_generic_camera.h> 15 16 #include <bmsh3d/bmsh3d_vertex.h> 17 18 #include <vil/vil_image_resource.h> 19 20 class bwm_observer_generic_cam : public bwm_observer_cam 21 { 22 public: 23 24 bwm_observer_generic_cam(bgui_image_tableau_sptr img, 25 std::string name, 26 std::string& image_path, 27 std::string& cam_path, 28 std::string& sub_type, 29 bool display_image_path); 30 31 // set the initial projection plane to z=0 32 bwm_observer_generic_cam(bgui_image_tableau_sptr img, const char* n="unnamed") bwm_observer_cam(img,n)33 : bwm_observer_cam(img, n) {} 34 ~bwm_observer_generic_cam()35 virtual ~bwm_observer_generic_cam(){} 36 type_name()37 virtual std::string type_name() const { return "bwm_observer_generic_cam"; } 38 set_camera(vpgl_generic_camera<double> * camera,std::string cam_path)39 void set_camera(vpgl_generic_camera<double> *camera, std::string cam_path) 40 { bwm_observer_cam::set_camera(camera, cam_path);} 41 42 virtual bool intersect_ray_and_plane(vgl_point_2d<double> img_point, 43 vgl_plane_3d<double> plane, 44 vgl_point_3d<double> &world_point); 45 46 vil_image_resource_sptr ray_image(int component, int level) const; 47 48 49 protected: 50 }; 51 52 #endif // bwm_observer_generic_cam_h_ 53