MrSID Decode SDK for LiDAR Reference Manual  1.1.3.4427
SimplePointWriter.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_SIMPLE_POINT_WRITER_H__
00013 #define __LIDAR_SIMPLE_POINT_WRITER_H__
00014 
00015 #include "lidar/PointWriter.h"
00016 
00017 LT_BEGIN_LIDAR_NAMESPACE
00018 
00022 class SimplePointWriter : public PointWriter
00023 {
00024    ABSTRACT_OBJECT(SimplePointWriter);
00025 public:
00026    void setQuantization(const double scale[3], const double offset[3]);
00027 
00028    const double *getScale(void) const;
00029    const double *getOffset(void) const;
00030 
00036    count_type write(const Bounds &bounds,
00037                     double fraction,
00038                     const PointInfo &pointInfo,
00039                     ProgressDelegate *delegate);
00040 
00049    virtual void writeBegin(const PointInfo &pointInfo) = 0;
00059    virtual void writePoints(const PointData &points,
00060                             size_t numPoints,
00061                             ProgressDelegate *delegate) = 0;
00062 
00074    virtual void writeEnd(PointSource::count_type numPoints,
00075                          const Bounds &bounds) = 0;
00076 
00077 protected:
00091    virtual double getTotalWork(const Bounds &bounds,
00092                                double fraction) const;
00093 
00094    double m_offsets[3];
00095    double m_scale[3];
00096 };
00097 
00098 LT_END_LIDAR_NAMESPACE
00099 #endif // __LIDAR_SIMPLE_POINT_WRITER_H__
00100