MrSID Decode SDK for LiDAR Reference Manual  1.1.3.4427
PointWriter.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_WRITER_H__
00013 #define __LIDAR_POINT_WRITER_H__
00014 
00015 #include "lidar/PointSource.h"
00016 
00017 LT_BEGIN_LIDAR_NAMESPACE
00018 
00024 class PointWriter : public Object
00025 {
00026    ABSTRACT_OBJECT(PointWriter);
00027 public:
00028    typedef PointSource::count_type count_type;
00029    
00030    
00039    void setMetadata(const Metadata &metadata);
00040    
00047    Metadata &getMetadata(void);
00048 
00061    virtual void setQuantization(const double scale[3], const double offset[3]) = 0;
00062 
00072    virtual const double *getScale(void) const = 0;
00082    virtual const double *getOffset(void) const = 0;
00083 
00097    virtual count_type write(const Bounds &bounds,
00098                             double fraction,
00099                             const PointInfo &pointInfo,
00100                             ProgressDelegate *delegate) = 0;
00101 
00102    void setChunckSize(size_t size);
00103 
00104 protected:
00110    void init(const PointSource *src);
00111 
00117    const PointSource *getSrc(void) const;
00118    
00125    void groomMetadata(const Bounds &bounds, double fraction);
00126 
00127    size_t getChunckSize(void) const;
00128 
00129 private:
00130    const PointSource *m_src;
00131    Metadata m_metadata;
00132    size_t m_chunckSize;
00133 };
00134 
00135 LT_END_LIDAR_NAMESPACE
00136 #endif // __LIDAR_POINT_WRITER_H__