lasreadpoint.hpp
Go to the documentation of this file.
1 /*
2 ===============================================================================
3 
4  FILE: lasreadpoint.hpp
5 
6  CONTENTS:
7 
8  Common interface for the classes that read points raw or compressed.
9 
10  PROGRAMMERS:
11 
12  martin.isenburg@gmail.com
13 
14  COPYRIGHT:
15 
16  (c) 2007-2011, Martin Isenburg, LASSO - tools to catch reality
17 
18  This is free software; you can redistribute and/or modify it under the
19  terms of the GNU Lesser General Licence as published by the Free Software
20  Foundation. See the COPYING file for more information.
21 
22  This software is distributed WITHOUT ANY WARRANTY and without even the
23  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
24 
25  CHANGE HISTORY:
26 
27  6 October 2011 -- large file support & reading with missing chunk table
28  9 May 2011 -- the chunked compressor now allows variable chunk sizes
29  25 April 2011 -- added chunked laszip for random access decompression
30  10 January 2011 -- licensing change for LGPL release and liblas integration
31  7 December 2010 -- adapted from LASpointReader for better code modularity
32  3 December 2010 -- updated to (somewhat) support LAS format 1.3
33  7 September 2008 -- updated to support LAS format 1.2
34  22 February 2007 -- created about an hour before henna's birthday
35 
36 ===============================================================================
37 */
38 #ifndef LAS_READ_POINT_H
39 #define LAS_READ_POINT_H
40 
41 #include "mydefs.hpp"
42 #include "laszip.hpp"
43 #include "bytestreamin.hpp"
44 
45 class LASreadItem;
46 class EntropyDecoder;
47 
49 {
50 public:
51  LASreadPoint();
52  ~LASreadPoint();
53 
54  // should only be called *once*
55  BOOL setup(const U32 num_items, const LASitem* items, const LASzip* laszip=0);
56 
58  BOOL seek(const U32 current, const U32 target);
59  BOOL read(U8* const * point);
60  BOOL done();
61 
62 private:
69  // used for chunking
78  U32 search_chunk_table(const U32 index, const U32 lower, const U32 upper);
79  // used for seeking
83 };
84 
85 #endif
int BOOL
Definition: mydefs.hpp:57
ByteStreamIn * instream
LASreadItem ** readers_raw
EntropyDecoder * dec
U32 * chunk_totals
unsigned int U32
Definition: mydefs.hpp:39
BOOL setup(const U32 num_items, const LASitem *items, const LASzip *laszip=0)
long long I64
Definition: mydefs.hpp:48
BOOL read_chunk_table()
unsigned char U8
Definition: mydefs.hpp:41
I64 * chunk_starts
LASreadItem ** readers_compressed
BOOL read(U8 *const *point)
BOOL seek(const U32 current, const U32 target)
U32 search_chunk_table(const U32 index, const U32 lower, const U32 upper)
LASreadItem ** readers
BOOL init(ByteStreamIn *instream)


lvr2
Author(s): Thomas Wiemann , Sebastian Pütz , Alexander Mock , Lars Kiesow , Lukas Kalbertodt , Tristan Igelbrink , Johan M. von Behren , Dominik Feldschnieders , Alexander Löhr
autogenerated on Mon Feb 28 2022 22:46:07