ext
laslib
src
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
48
class
LASreadPoint
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
57
BOOL
init
(
ByteStreamIn
*
instream
);
58
BOOL
seek
(
const
U32
current,
const
U32
target);
59
BOOL
read
(
U8
*
const
* point);
60
BOOL
done
();
61
62
private
:
63
ByteStreamIn
*
instream
;
64
U32
num_readers
;
65
LASreadItem
**
readers
;
66
LASreadItem
**
readers_raw
;
67
LASreadItem
**
readers_compressed
;
68
EntropyDecoder
*
dec
;
69
// used for chunking
70
U32
chunk_size
;
71
U32
chunk_count
;
72
U32
current_chunk
;
73
U32
number_chunks
;
74
U32
tabled_chunks
;
75
I64
*
chunk_starts
;
76
U32
*
chunk_totals
;
77
BOOL
read_chunk_table
();
78
U32
search_chunk_table
(
const
U32
index,
const
U32
lower,
const
U32
upper);
79
// used for seeking
80
I64
point_start
;
81
U32
point_size
;
82
U8
**
seek_point
;
83
};
84
85
#endif
LASreadPoint::LASreadPoint
LASreadPoint()
Definition:
lasreadpoint.cpp:42
LASreadPoint::~LASreadPoint
~LASreadPoint()
Definition:
lasreadpoint.cpp:524
LASreadPoint::chunk_starts
I64 * chunk_starts
Definition:
lasreadpoint.hpp:75
LASreadPoint::seek
BOOL seek(const U32 current, const U32 target)
Definition:
lasreadpoint.cpp:253
LASreadPoint::instream
ByteStreamIn * instream
Definition:
lasreadpoint.hpp:63
I64
long long I64
Definition:
mydefs.hpp:48
LASreadPoint::dec
EntropyDecoder * dec
Definition:
lasreadpoint.hpp:68
LASreadPoint
Definition:
lasreadpoint.hpp:48
LASzip
Definition:
laszip.hpp:80
LASreadPoint::seek_point
U8 ** seek_point
Definition:
lasreadpoint.hpp:82
LASreadPoint::num_readers
U32 num_readers
Definition:
lasreadpoint.hpp:64
LASreadPoint::point_start
I64 point_start
Definition:
lasreadpoint.hpp:80
LASreadPoint::done
BOOL done()
Definition:
lasreadpoint.cpp:389
LASreadPoint::tabled_chunks
U32 tabled_chunks
Definition:
lasreadpoint.hpp:74
LASreadPoint::search_chunk_table
U32 search_chunk_table(const U32 index, const U32 lower, const U32 upper)
Definition:
lasreadpoint.cpp:514
EntropyDecoder
Definition:
entropydecoder.hpp:38
LASreadPoint::number_chunks
U32 number_chunks
Definition:
lasreadpoint.hpp:73
LASreadPoint::setup
BOOL setup(const U32 num_items, const LASitem *items, const LASzip *laszip=0)
Definition:
lasreadpoint.cpp:64
LASreadPoint::readers
LASreadItem ** readers
Definition:
lasreadpoint.hpp:65
LASitem
Definition:
laszip.hpp:70
bytestreamin.hpp
LASreadPoint::read
BOOL read(U8 *const *point)
Definition:
lasreadpoint.cpp:325
mydefs.hpp
LASreadPoint::read_chunk_table
BOOL read_chunk_table()
Definition:
lasreadpoint.cpp:398
ByteStreamIn
Definition:
bytestreamin.hpp:36
LASreadPoint::readers_compressed
LASreadItem ** readers_compressed
Definition:
lasreadpoint.hpp:67
LASreadPoint::chunk_size
U32 chunk_size
Definition:
lasreadpoint.hpp:70
LASreadPoint::readers_raw
LASreadItem ** readers_raw
Definition:
lasreadpoint.hpp:66
U8
unsigned char U8
Definition:
mydefs.hpp:41
BOOL
int BOOL
Definition:
mydefs.hpp:57
LASreadItem
Definition:
lasreaditem.hpp:39
LASreadPoint::current_chunk
U32 current_chunk
Definition:
lasreadpoint.hpp:72
LASreadPoint::chunk_totals
U32 * chunk_totals
Definition:
lasreadpoint.hpp:76
LASreadPoint::point_size
U32 point_size
Definition:
lasreadpoint.hpp:81
LASreadPoint::init
BOOL init(ByteStreamIn *instream)
Definition:
lasreadpoint.cpp:217
U32
unsigned int U32
Definition:
mydefs.hpp:39
LASreadPoint::chunk_count
U32 chunk_count
Definition:
lasreadpoint.hpp:71
laszip.hpp
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 Wed Mar 2 2022 00:37:23