MrSID Decode SDK for LiDAR Reference Manual  1.1.3.4427
PointSource.h
Go to the documentation of this file.
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_SOURCE_H__
00013 #define __LIDAR_POINT_SOURCE_H__
00014 
00015 #include "lidar/Metadata.h"
00016 #include "lidar/PointIterator.h"
00017 #include "lidar/ProgressDelegate.h"
00018 
00019 LT_BEGIN_LIDAR_NAMESPACE
00020 
00040 class PointSource : public Object
00041 {
00042    ABSTRACT_OBJECT(PointSource);
00043 public:
00044    typedef lt_int64 count_type;
00045 
00051    virtual const PointInfo &getPointInfo(void) const = 0;
00052 
00059    size_t getNumChannels(void) const;
00060 
00069    bool hasChannel(const char *name) const;
00070 
00080    const ChannelInfo &getChannel(size_t idx) const;
00081    
00091    const ChannelInfo *getChannel(const char *name) const;
00092 
00098    virtual count_type getNumPoints(void) const = 0;
00099 
00107    virtual const char *getWKT(void) const = 0;
00108 
00120    virtual void loadMetadata(Metadata &metadata,
00121                              bool sanitize) const = 0;
00122 
00128    virtual const Bounds &getBounds(void) const = 0;
00129    
00137    virtual const double *getScale(void) const = 0;
00138    
00146    virtual const double *getOffset(void) const = 0;
00147 
00153    virtual size_t getNumClassIdNames(void) const = 0;
00154    
00161    virtual char const * const *getClassIdNames(void) const = 0;
00162 
00176    virtual double getTotalWork(const Bounds &bounds,
00177                                double fraction) const = 0;
00178 
00192    virtual PointIterator *createIterator(const Bounds &bounds,
00193                                          double fraction,
00194                                          const PointInfo &pointInfo,
00195                                          ProgressDelegate *delegate) const = 0;
00196 
00205    size_t read(const Bounds &bounds,
00206                PointData &points,
00207                ProgressDelegate *delegate) const;
00208 };
00209 
00210 LT_END_LIDAR_NAMESPACE
00211 #endif // __LIDAR_POINT_SOURCE_H__