00001 /* ////////////////////////////////////////////////////////////////////////// 00002 // // 00003 // This code is Copyright (c) 2008-2010 LizardTech, Inc, 1008 Western // 00004 // Avenue, Suite 200, Seattle, WA 98104. Unauthorized use or distribution // 00005 // prohibited. Access to and use of this code is permitted only under // 00006 // license from LizardTech, Inc. Portions of the code are protected by // 00007 // US and foreign patents and other filings. All Rights Reserved. // 00008 // // 00010 /* PUBLIC */ 00011 00012 #ifndef __LIDAR_POINT_READER_H__ 00013 #define __LIDAR_POINT_READER_H__ 00014 00015 #include "lidar/PointSource.h" 00016 #include "lidar/IO.h" 00017 00018 LT_BEGIN_LIDAR_NAMESPACE 00019 00020 00027 class PointReader : public PointSource 00028 { 00029 ABSTRACT_OBJECT(PointReader); 00030 public: 00031 const PointInfo &getPointInfo(void) const; 00032 00033 count_type getNumPoints(void) const; 00034 const char *getWKT(void) const; 00035 00043 virtual const char *getFileFormatString(void) const = 0; 00044 00045 const Bounds &getBounds(void) const; 00046 const double *getScale(void) const; 00047 const double *getOffset(void) const; 00048 00049 char const * const *getClassIdNames(void) const; 00050 size_t getNumClassIdNames(void) const; 00051 00052 double getTotalWork(const Bounds &bounds, double fraction) const; 00053 00054 protected: 00065 void setPointInfo(const PointInfo &pointInfo); 00076 void setNumPoints(count_type numPoints); 00087 void setBounds(const Bounds &bounds); 00098 void setWKT(const char *wkt); 00112 void setQuantization(const double scale[3], const double offset[3]); 00113 00114 private: 00115 PointInfo m_pointInfo; 00116 count_type m_numPoints; 00117 char *m_wkt; 00118 Bounds m_bounds; 00119 double m_scale[3]; 00120 double m_offset[3]; 00121 }; 00122 00123 LT_END_LIDAR_NAMESPACE 00124 #endif // __LIDAR_POINT_READER_H__
LizardTech |