MrSID Decode SDK for LiDAR Reference Manual  1.1.2.4045
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__
virtual size_t getNumClassIdNames(void) const =0
Get the number of classification names.
size_t getNumChannels(void) const
Get the number of channels.
const ChannelInfo & getChannel(size_t idx) const
Access the channel info.
Metadata is a container for storing metadata about the point cloud.
Definition: Metadata.h:64
ChannelInfo stores the basic properties of a channel.
Definition: PointData.h:121
Bounds is a 3-dimensional bounding box.
Definition: Types.h:127
virtual count_type getNumPoints(void) const =0
Get the number of points.
ProgressDelegate is the base class for progress and interrupt reporting.
PointSource is the base class of LiDAR point cloud extraction pipeline.
Definition: PointSource.h:40
PointInfo is a group of ChannelInfo objects.
Definition: PointData.h:171
virtual void loadMetadata(Metadata &metadata, bool sanitize) const =0
Load the point clouds metadata.
Object is the base class for implementing reference counting.
Definition: Object.h:34
virtual const double * getScale(void) const =0
Get the quantization scale.
PointData is a group of ChannelData objects.
Definition: PointData.h:397
virtual const Bounds & getBounds(void) const =0
Get the bounding box.
virtual char const *const * getClassIdNames(void) const =0
Get the classification names.
virtual const double * getOffset(void) const =0
Get the quantization offset.
virtual const char * getWKT(void) const =0
Get the spatial reference system.
virtual const PointInfo & getPointInfo(void) const =0
Get the point information.
size_t read(const Bounds &bounds, PointData &points, ProgressDelegate *delegate) const
Fill the point buffer with the best sample of the point cloud in bounds.
virtual double getTotalWork(const Bounds &bounds, double fraction) const =0
Get the amount of work needed to decode bounds.
virtual PointIterator * createIterator(const Bounds &bounds, double fraction, const PointInfo &pointInfo, ProgressDelegate *delegate) const =0
Get a PointIterator for a given bounds.
bool hasChannel(const char *name) const
Determine if there is a channel with a given name.
lt_int64 count_type
Definition: PointSource.h:44
long long int lt_int64
signed 64-bit integer
Definition: Base.h:46
PointIterator is the base class for accessing the point cloud.
Definition: PointIterator.h:31

LizardTech