MrSID Decode SDK for LiDAR Reference Manual  1.1.3.4427
PointSource.h
Go to the documentation of this file.
1 /* //////////////////////////////////////////////////////////////////////////
2 // //
3 // This code is Copyright (c) 2008-2010 LizardTech, Inc, 1008 Western //
4 // Avenue, Suite 200, Seattle, WA 98104. Unauthorized use or distribution //
5 // prohibited. Access to and use of this code is permitted only under //
6 // license from LizardTech, Inc. Portions of the code are protected by //
7 // US and foreign patents and other filings. All Rights Reserved. //
8 // //
10 /* PUBLIC */
11 
12 #ifndef __LIDAR_POINT_SOURCE_H__
13 #define __LIDAR_POINT_SOURCE_H__
14 
15 #include "lidar/Metadata.h"
16 #include "lidar/PointIterator.h"
17 #include "lidar/ProgressDelegate.h"
18 
19 LT_BEGIN_LIDAR_NAMESPACE
20 
40 class PointSource : public Object
41 {
42  ABSTRACT_OBJECT(PointSource);
43 public:
45 
51  virtual const PointInfo &getPointInfo(void) const = 0;
52 
59  size_t getNumChannels(void) const;
60 
69  bool hasChannel(const char *name) const;
70 
80  const ChannelInfo &getChannel(size_t idx) const;
81 
91  const ChannelInfo *getChannel(const char *name) const;
92 
98  virtual count_type getNumPoints(void) const = 0;
99 
107  virtual const char *getWKT(void) const = 0;
108 
120  virtual void loadMetadata(Metadata &metadata,
121  bool sanitize) const = 0;
122 
128  virtual const Bounds &getBounds(void) const = 0;
129 
137  virtual const double *getScale(void) const = 0;
138 
146  virtual const double *getOffset(void) const = 0;
147 
153  virtual size_t getNumClassIdNames(void) const = 0;
154 
161  virtual char const * const *getClassIdNames(void) const = 0;
162 
176  virtual double getTotalWork(const Bounds &bounds,
177  double fraction) const = 0;
178 
192  virtual PointIterator *createIterator(const Bounds &bounds,
193  double fraction,
194  const PointInfo &pointInfo,
195  ProgressDelegate *delegate) const = 0;
196 
205  size_t read(const Bounds &bounds,
206  PointData &points,
207  ProgressDelegate *delegate) const;
208 };
209 
210 LT_END_LIDAR_NAMESPACE
211 #endif // __LIDAR_POINT_SOURCE_H__

LizardTech