00001 00033 #ifndef __POINT_CLOUD_VISUALIZATION_MODEL__ 00034 #define __POINT_CLOUD_VISUALIZATION_MODEL__ 00035 00036 #include "VisualizationModel.h" 00037 #include <cv.h> 00038 #include <string> 00039 #include <vector> 00040 00041 #include "DVision.h" 00042 00043 class PointCloudVisualizationModel: public VisualizationModel 00044 { 00045 public: 00046 00051 PointCloudVisualizationModel(const std::string &filename); 00052 00053 virtual ~PointCloudVisualizationModel(){} 00054 00063 void draw(cv::Mat &img, const cv::Mat &cTo, const cv::Mat &A, 00064 const cv::Mat &K = cv::Mat()) const; 00065 00066 protected: 00067 00071 void convertPLY2Mat(); 00072 00077 void calculateDimensions(); 00078 00079 protected: 00080 00082 std::vector<DVision::PMVS::PLYFile::PLYPoint> m_plypoints; 00083 00086 cv::Mat m_oP; 00087 00089 float m_dimx, m_dimy, m_dimz; 00090 00091 }; 00092 00093 #endif