contrib/brl/bmvl/brct/brct_volume_processor.h
Go to the documentation of this file.
00001 #ifndef brct_volume_processor_h_
00002 #define brct_volume_processor_h_
00003 
00004 //:
00005 // \file
00006 // \brief A class to compute volume occupancy statistics
00007 //
00008 // \author J.L. Mundy
00009 // \verbatim
00010 //  Initial version March. 1, 2004
00011 // \endverbatim
00012 //
00013 //////////////////////////////////////////////////////////////////////
00014 
00015 #include <vcl_vector.h>
00016 #include <vcl_string.h>
00017 #include <vsol/vsol_box_3d_sptr.h>
00018 #include <bsol/bsol_point_index_3d.h>
00019 #include <brct/brct_volume_processor_params.h>
00020 
00021 class brct_volume_processor : public brct_volume_processor_params
00022 {
00023  public:
00024   brct_volume_processor(brct_volume_processor_params const& sp);
00025   ~brct_volume_processor();
00026 
00027   // Accessors
00028 
00029   //:Mutators
00030   bool read_points_3d_vrml(vcl_string const&  filename);
00031   bool read_change_data_vrml(vcl_string const&  filename);
00032   //: Utility functions
00033   bool write_prob_volumes_vrml(vcl_string const&  filename);
00034   bool compute_change();
00035   bool write_changed_volumes_vrml(vcl_string const&  filename);
00036 
00037  protected:
00038   //members
00039   int ncols_;
00040   int nrows_;
00041   int nslabs_;
00042   vsol_box_3d_sptr box_;
00043   bsol_point_index_3d* index_;
00044   bsol_point_index_3d* change_index_;
00045   vcl_vector<vsol_box_3d_sptr> change_volumes_;
00046 };
00047 
00048 #endif // brct_volume_processor_h_