lasreaditemcompressed_v1.cpp
Go to the documentation of this file.
1 /*
2 ===============================================================================
3 
4  FILE: lasreaditemcompressed_v1.cpp
5 
6  CONTENTS:
7 
8  see corresponding header file
9 
10  PROGRAMMERS:
11 
12  martin.isenburg@gmail.com
13 
14  COPYRIGHT:
15 
16  (c) 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  see corresponding header file
28 
29 ===============================================================================
30 */
31 
33 
34 #include <assert.h>
35 #include <string.h>
36 
37 /*
38 ===============================================================================
39  LASreadItemCompressed_POINT10_v1
40 ===============================================================================
41 */
42 
43 struct LASpoint10
44 {
45  I32 x;
46  I32 y;
47  I32 z;
57 };
58 
60 {
61  U32 i;
62 
63  /* set decoder */
64  assert(dec);
65  this->dec = dec;
66 
67  /* create models and integer compressors */
68  ic_dx = new IntegerCompressor(dec, 32); // 32 bits, 1 context
69  ic_dy = new IntegerCompressor(dec, 32, 20); // 32 bits, 20 contexts
70  ic_z = new IntegerCompressor(dec, 32, 20); // 32 bits, 20 contexts
75  for (i = 0; i < 256; i++)
76  {
77  m_bit_byte[i] = 0;
78  m_classification[i] = 0;
79  m_user_data[i] = 0;
80  }
81 }
82 
84 {
85  U32 i;
86 
87  delete ic_dx;
88  delete ic_dy;
89  delete ic_z;
90  delete ic_intensity;
91  delete ic_scan_angle_rank;
92  delete ic_point_source_ID;
94  for (i = 0; i < 256; i++)
95  {
99  }
100 }
101 
103 {
104  U32 i;
105 
106  /* init state */
107  last_x_diff[0] = last_x_diff[1] = last_x_diff[2] = 0;
108  last_y_diff[0] = last_y_diff[1] = last_y_diff[2] = 0;
109  last_incr = 0;
110 
111  /* init models and integer compressors */
119  for (i = 0; i < 256; i++)
120  {
124  }
125 
126  /* init last item */
127  memcpy(last_item, item, 20);
128 
129  return TRUE;
130 }
131 
133 {
134  // find median difference for x and y from 3 preceding differences
135  I32 median_x;
136  if (last_x_diff[0] < last_x_diff[1])
137  {
138  if (last_x_diff[1] < last_x_diff[2])
139  median_x = last_x_diff[1];
140  else if (last_x_diff[0] < last_x_diff[2])
141  median_x = last_x_diff[2];
142  else
143  median_x = last_x_diff[0];
144  }
145  else
146  {
147  if (last_x_diff[0] < last_x_diff[2])
148  median_x = last_x_diff[0];
149  else if (last_x_diff[1] < last_x_diff[2])
150  median_x = last_x_diff[2];
151  else
152  median_x = last_x_diff[1];
153  }
154 
155  I32 median_y;
156  if (last_y_diff[0] < last_y_diff[1])
157  {
158  if (last_y_diff[1] < last_y_diff[2])
159  median_y = last_y_diff[1];
160  else if (last_y_diff[0] < last_y_diff[2])
161  median_y = last_y_diff[2];
162  else
163  median_y = last_y_diff[0];
164  }
165  else
166  {
167  if (last_y_diff[0] < last_y_diff[2])
168  median_y = last_y_diff[0];
169  else if (last_y_diff[1] < last_y_diff[2])
170  median_y = last_y_diff[2];
171  else
172  median_y = last_y_diff[1];
173  }
174 
175  // decompress x y z coordinates
176  I32 x_diff = ic_dx->decompress(median_x);
177  ((LASpoint10*)last_item)->x += x_diff;
178  // we use the number k of bits corrector bits to switch contexts
179  U32 k_bits = ic_dx->getK();
180  I32 y_diff = ic_dy->decompress(median_y, (k_bits < 19 ? k_bits : 19));
181  ((LASpoint10*)last_item)->y += y_diff;
182  k_bits = (k_bits + ic_dy->getK())/2;
183  ((LASpoint10*)last_item)->z = ic_z->decompress(((LASpoint10*)last_item)->z, (k_bits < 19 ? k_bits : 19));
184 
185  // decompress which other values have changed
186  I32 changed_values = dec->decodeSymbol(m_changed_values);
187 
188  if (changed_values)
189  {
190  // decompress the intensity if it has changed
191  if (changed_values & 32)
192  {
193  ((LASpoint10*)last_item)->intensity = (U16)ic_intensity->decompress(((LASpoint10*)last_item)->intensity);
194  }
195 
196  // decompress the edge_of_flight_line, scan_direction_flag, ... if it has changed
197  if (changed_values & 16)
198  {
199  if (m_bit_byte[last_item[14]] == 0)
200  {
203  }
205  }
206 
207  // decompress the classification ... if it has changed
208  if (changed_values & 8)
209  {
210  if (m_classification[last_item[15]] == 0)
211  {
214  }
216  }
217 
218  // decompress the scan_angle_rank ... if it has changed
219  if (changed_values & 4)
220  {
221  last_item[16] = (U8)ic_scan_angle_rank->decompress(last_item[16], k_bits < 3);
222  }
223 
224  // decompress the user_data ... if it has changed
225  if (changed_values & 2)
226  {
227  if (m_user_data[last_item[17]] == 0)
228  {
231  }
233  }
234 
235  // decompress the point_source_ID ... if it has changed
236  if (changed_values & 1)
237  {
238  ((LASpoint10*)last_item)->point_source_ID = (U16)ic_point_source_ID->decompress(((LASpoint10*)last_item)->point_source_ID);
239  }
240  }
241 
242  // record the difference
243  last_x_diff[last_incr] = x_diff;
244  last_y_diff[last_incr] = y_diff;
245  last_incr++;
246  if (last_incr > 2) last_incr = 0;
247 
248  // copy the last point
249  memcpy(item, last_item, 20);
250 }
251 
252 /*
253 ===============================================================================
254  LASreadItemCompressed_GPSTIME11_v1
255 ===============================================================================
256 */
257 
258 #define LASZIP_GPSTIME_MULTIMAX 512
259 
261 {
262  /* set decoder */
263  assert(dec);
264  this->dec = dec;
265  /* create entropy models and integer compressors */
268  ic_gpstime = new IntegerCompressor(dec, 32, 6); // 32 bits, 6 contexts
269 }
270 
272 {
275  delete ic_gpstime;
276 }
277 
279 {
280  /* init state */
281  last_gpstime_diff = 0;
283 
284  /* init models and integer compressors */
288 
289  /* init last item */
290  last_gpstime.u64 = *((U64*)item);
291  return TRUE;
292 }
293 
295 {
296  I32 multi;
297  if (last_gpstime_diff == 0) // if the last integer difference was zero
298  {
299  multi = dec->decodeSymbol(m_gpstime_0diff);
300  if (multi == 1) // the difference can be represented with 32 bits
301  {
304  }
305  else if (multi == 2) // the difference is huge
306  {
308  }
309  }
310  else
311  {
312  multi = dec->decodeSymbol(m_gpstime_multi);
313 
314  if (multi < LASZIP_GPSTIME_MULTIMAX-2)
315  {
316  I32 gpstime_diff;
317  if (multi == 1)
318  {
319  gpstime_diff = ic_gpstime->decompress(last_gpstime_diff, 1);
320  last_gpstime_diff = gpstime_diff;
322  }
323  else if (multi == 0)
324  {
325  gpstime_diff = ic_gpstime->decompress(last_gpstime_diff/4, 2);
327  if (multi_extreme_counter > 3)
328  {
329  last_gpstime_diff = gpstime_diff;
331  }
332  }
333  else if (multi < 10)
334  {
335  gpstime_diff = ic_gpstime->decompress(multi*last_gpstime_diff, 3);
336  }
337  else if (multi < 50)
338  {
339  gpstime_diff = ic_gpstime->decompress(multi*last_gpstime_diff, 4);
340  }
341  else
342  {
343  gpstime_diff = ic_gpstime->decompress(multi*last_gpstime_diff, 5);
344  if (multi == LASZIP_GPSTIME_MULTIMAX-3)
345  {
347  if (multi_extreme_counter > 3)
348  {
349  last_gpstime_diff = gpstime_diff;
351  }
352  }
353  }
354  last_gpstime.i64 += gpstime_diff;
355  }
356  else if (multi < LASZIP_GPSTIME_MULTIMAX-1)
357  {
359  }
360  }
361  *((I64*)item) = last_gpstime.i64;
362 }
363 
364 /*
365 ===============================================================================
366  LASreadItemCompressed_RGB12_v1
367 ===============================================================================
368 */
369 
371 {
372  /* set decoder */
373  assert(dec);
374  this->dec = dec;
375 
376  /* create models and integer compressors */
378  ic_rgb = new IntegerCompressor(dec, 8, 6);
379 
380  /* create last item */
381  last_item = new U8[6];
382 }
383 
385 {
387  delete ic_rgb;
388  delete [] last_item;
389 }
390 
392 {
393  /* init state */
394 
395  /* init models and integer compressors */
398 
399  /* init last item */
400  memcpy(last_item, item, 6);
401  return TRUE;
402 }
403 
405 {
407  if (sym & (1 << 0)) ((U16*)item)[0] = (U16)ic_rgb->decompress(((U16*)last_item)[0]&255, 0);
408  else ((U16*)item)[0] = (U16)(((U16*)last_item)[0]&0xFF);
409  if (sym & (1 << 1)) ((U16*)item)[0] |= (((U16)ic_rgb->decompress(((U16*)last_item)[0]>>8, 1)) << 8);
410  else ((U16*)item)[0] |= (((U16*)last_item)[0]&0xFF00);
411  if (sym & (1 << 2)) ((U16*)item)[1] = (U16)ic_rgb->decompress(((U16*)last_item)[1]&255, 2);
412  else ((U16*)item)[1] = (U16)(((U16*)last_item)[1]&0xFF);
413  if (sym & (1 << 3)) ((U16*)item)[1] |= (((U16)ic_rgb->decompress(((U16*)last_item)[1]>>8, 3)) << 8);
414  else ((U16*)item)[1] |= (((U16*)last_item)[1]&0xFF00);
415  if (sym & (1 << 4)) ((U16*)item)[2] = (U16)ic_rgb->decompress(((U16*)last_item)[2]&255, 4);
416  else ((U16*)item)[2] = (U16)(((U16*)last_item)[2]&0xFF);
417  if (sym & (1 << 5)) ((U16*)item)[2] |= (((U16)ic_rgb->decompress(((U16*)last_item)[2]>>8, 5)) << 8);
418  else ((U16*)item)[2] |= (((U16*)last_item)[2]&0xFF00);
419  memcpy(last_item, item, 6);
420 }
421 
422 /*
423 ===============================================================================
424  LASreadItemCompressed_WAVEPACKET13_v1
425 ===============================================================================
426 */
427 
429 {
436 };
437 
439 {
440  /* set decoder */
441  assert(dec);
442  this->dec = dec;
443 
444  /* create models and integer compressors */
453  ic_xyz = new IntegerCompressor(dec, 32, 3);
454 
455  /* create last item */
456  last_item = new U8[28];
457 }
458 
460 {
466  delete ic_offset_diff;
467  delete ic_packet_size;
468  delete ic_return_point;
469  delete ic_xyz;
470  delete [] last_item;
471 }
472 
474 {
475  /* init state */
476  last_diff_32 = 0;
478 
479  /* init models and integer compressors */
489 
490  /* init last item */
491  item++;
492  memcpy(last_item, item, 28);
493  return TRUE;
494 }
495 
497 {
498  item[0] = (U8)(dec->decodeSymbol(m_packet_index));
499  item++;
500 
502 
503  if (sym_last_offset_diff == 0)
504  {
505  ((LASwavepacket13*)item)->offset = ((LASwavepacket13*)last_item)->offset;
506  }
507  else if (sym_last_offset_diff == 1)
508  {
509  ((LASwavepacket13*)item)->offset = ((LASwavepacket13*)last_item)->offset + ((LASwavepacket13*)last_item)->packet_size;
510  }
511  else if (sym_last_offset_diff == 2)
512  {
514  ((LASwavepacket13*)item)->offset = ((LASwavepacket13*)last_item)->offset + last_diff_32;
515  }
516  else
517  {
518  ((LASwavepacket13*)item)->offset = dec->readInt64();
519  }
520  ((LASwavepacket13*)item)->packet_size = ic_packet_size->decompress(((LASwavepacket13*)last_item)->packet_size);
521  ((LASwavepacket13*)item)->return_point.i32 = ic_return_point->decompress(((LASwavepacket13*)last_item)->return_point.i32);
522  ((LASwavepacket13*)item)->x.i32 = ic_xyz->decompress(((LASwavepacket13*)last_item)->x.i32, 0);
523  ((LASwavepacket13*)item)->y.i32 = ic_xyz->decompress(((LASwavepacket13*)last_item)->y.i32, 1);
524  ((LASwavepacket13*)item)->z.i32 = ic_xyz->decompress(((LASwavepacket13*)last_item)->z.i32, 2);
525  memcpy(last_item, item, 28);
526 }
527 
528 /*
529 ===============================================================================
530  LASreadItemCompressed_BYTE_v1
531 ===============================================================================
532 */
533 
535 {
536  /* set decoder */
537  assert(dec);
538  this->dec = dec;
539  assert(number);
540  this->number = number;
541 
542  /* create models and integer compressors */
543  ic_byte = new IntegerCompressor(dec, 8, number);
544 
545  /* create last item */
546  last_item = new U8[number];
547 }
548 
550 {
551  delete ic_byte;
552  delete [] last_item;
553 }
554 
556 {
557  /* init state */
558 
559  /* init models and integer compressors */
561 
562  /* init last item */
563  memcpy(last_item, item, number);
564  return TRUE;
565 }
566 
568 {
569  U32 i;
570  for (i = 0; i < number; i++)
571  {
572  item[i] = (U8)(ic_byte->decompress(last_item[i], i));
573  }
574  memcpy(last_item, item, number);
575 }
LASpoint10
Definition: lasreaditemcompressed_v1.cpp:43
LASreadItemCompressed_WAVEPACKET13_v1::init
BOOL init(const U8 *item)
Definition: lasreaditemcompressed_v1.cpp:473
LASreadItemCompressed_RGB12_v1::init
BOOL init(const U8 *item)
Definition: lasreaditemcompressed_v1.cpp:391
LASreadItemCompressed_WAVEPACKET13_v1::ic_return_point
IntegerCompressor * ic_return_point
Definition: lasreaditemcompressed_v1.hpp:131
LASreadItemCompressed_BYTE_v1::~LASreadItemCompressed_BYTE_v1
~LASreadItemCompressed_BYTE_v1()
Definition: lasreaditemcompressed_v1.cpp:549
LASpoint10::user_data
U8 user_data
Definition: lasreaditemcompressed_v1.cpp:55
LASreadItemCompressed_POINT10_v1::ic_intensity
IntegerCompressor * ic_intensity
Definition: lasreaditemcompressed_v1.hpp:60
LASreadItemCompressed_POINT10_v1::LASreadItemCompressed_POINT10_v1
LASreadItemCompressed_POINT10_v1(EntropyDecoder *dec)
Definition: lasreaditemcompressed_v1.cpp:59
LASpoint10::x
I32 x
Definition: lasreaditemcompressed_v1.cpp:45
LASreadItemCompressed_RGB12_v1::LASreadItemCompressed_RGB12_v1
LASreadItemCompressed_RGB12_v1(EntropyDecoder *dec)
Definition: lasreaditemcompressed_v1.cpp:370
LASreadItemCompressed_POINT10_v1::~LASreadItemCompressed_POINT10_v1
~LASreadItemCompressed_POINT10_v1()
Definition: lasreaditemcompressed_v1.cpp:83
LASwavepacket13::return_point
U32I32F32 return_point
Definition: lasreaditemcompressed_v1.cpp:432
LASreadItemCompressed_BYTE_v1::dec
EntropyDecoder * dec
Definition: lasreaditemcompressed_v1.hpp:147
LASpoint10::intensity
U16 intensity
Definition: lasreaditemcompressed_v1.cpp:48
I8
char I8
Definition: mydefs.hpp:37
IntegerCompressor::getK
U32 getK() const
Definition: integercompressor.hpp:71
LASreadItemCompressed_BYTE_v1::init
BOOL init(const U8 *item)
Definition: lasreaditemcompressed_v1.cpp:555
I64
long long I64
Definition: mydefs.hpp:48
LASreadItemCompressed_POINT10_v1::m_bit_byte
EntropyModel * m_bit_byte[256]
Definition: lasreaditemcompressed_v1.hpp:64
I32
int I32
Definition: mydefs.hpp:35
EntropyDecoder::destroyBitModel
virtual void destroyBitModel(EntropyModel *model)=0
U64I64F64::u64
U64 u64
Definition: mydefs.hpp:61
LASreadItemCompressed_BYTE_v1::ic_byte
IntegerCompressor * ic_byte
Definition: lasreaditemcompressed_v1.hpp:151
TRUE
#define TRUE
Definition: mydefs.hpp:137
LASreadItemCompressed_POINT10_v1::m_user_data
EntropyModel * m_user_data[256]
Definition: lasreaditemcompressed_v1.hpp:66
LASZIP_GPSTIME_MULTIMAX
#define LASZIP_GPSTIME_MULTIMAX
Definition: lasreaditemcompressed_v1.cpp:258
LASreadItemCompressed_POINT10_v1::read
void read(U8 *item)
Definition: lasreaditemcompressed_v1.cpp:132
LASreadItemCompressed_BYTE_v1::number
U32 number
Definition: lasreaditemcompressed_v1.hpp:148
LASreadItemCompressed_POINT10_v1::dec
EntropyDecoder * dec
Definition: lasreaditemcompressed_v1.hpp:51
LASreadItemCompressed_GPSTIME11_v1::~LASreadItemCompressed_GPSTIME11_v1
~LASreadItemCompressed_GPSTIME11_v1()
Definition: lasreaditemcompressed_v1.cpp:271
LASreadItemCompressed_GPSTIME11_v1::ic_gpstime
IntegerCompressor * ic_gpstime
Definition: lasreaditemcompressed_v1.hpp:86
LASwavepacket13::y
U32I32F32 y
Definition: lasreaditemcompressed_v1.cpp:434
LASwavepacket13::x
U32I32F32 x
Definition: lasreaditemcompressed_v1.cpp:433
LASreadItemCompressed_BYTE_v1::last_item
U8 * last_item
Definition: lasreaditemcompressed_v1.hpp:149
LASreadItemCompressed_WAVEPACKET13_v1::ic_xyz
IntegerCompressor * ic_xyz
Definition: lasreaditemcompressed_v1.hpp:132
LASreadItemCompressed_GPSTIME11_v1::last_gpstime_diff
I32 last_gpstime_diff
Definition: lasreaditemcompressed_v1.hpp:88
LASreadItemCompressed_POINT10_v1::ic_dy
IntegerCompressor * ic_dy
Definition: lasreaditemcompressed_v1.hpp:58
LASreadItemCompressed_RGB12_v1::ic_rgb
IntegerCompressor * ic_rgb
Definition: lasreaditemcompressed_v1.hpp:107
LASreadItemCompressed_GPSTIME11_v1::init
BOOL init(const U8 *item)
Definition: lasreaditemcompressed_v1.cpp:278
LASreadItemCompressed_POINT10_v1::last_y_diff
I32 last_y_diff[3]
Definition: lasreaditemcompressed_v1.hpp:55
LASreadItemCompressed_POINT10_v1::m_changed_values
EntropyModel * m_changed_values
Definition: lasreaditemcompressed_v1.hpp:63
LASwavepacket13
Definition: lasreaditemcompressed_v1.cpp:428
EntropyDecoder
Definition: entropydecoder.hpp:38
EntropyDecoder::initSymbolModel
virtual void initSymbolModel(EntropyModel *model, U32 *init=0)=0
LASwavepacket13::packet_size
U32 packet_size
Definition: lasreaditemcompressed_v1.cpp:431
LASreadItemCompressed_WAVEPACKET13_v1::last_diff_32
I32 last_diff_32
Definition: lasreaditemcompressed_v1.hpp:125
LASreadItemCompressed_POINT10_v1::ic_z
IntegerCompressor * ic_z
Definition: lasreaditemcompressed_v1.hpp:59
LASpoint10::number_of_returns_of_given_pulse
U8 number_of_returns_of_given_pulse
Definition: lasreaditemcompressed_v1.cpp:50
LASreadItemCompressed_POINT10_v1::last_item
U8 last_item[20]
Definition: lasreaditemcompressed_v1.hpp:52
LASpoint10::point_source_ID
U16 point_source_ID
Definition: lasreaditemcompressed_v1.cpp:56
EntropyDecoder::createSymbolModel
virtual EntropyModel * createSymbolModel(U32 n)=0
LASreadItemCompressed_WAVEPACKET13_v1::read
void read(U8 *item)
Definition: lasreaditemcompressed_v1.cpp:496
LASreadItemCompressed_POINT10_v1::ic_scan_angle_rank
IntegerCompressor * ic_scan_angle_rank
Definition: lasreaditemcompressed_v1.hpp:61
LASreadItemCompressed_WAVEPACKET13_v1::sym_last_offset_diff
U32 sym_last_offset_diff
Definition: lasreaditemcompressed_v1.hpp:126
LASreadItemCompressed_RGB12_v1::last_item
U8 * last_item
Definition: lasreaditemcompressed_v1.hpp:104
LASreadItemCompressed_GPSTIME11_v1::dec
EntropyDecoder * dec
Definition: lasreaditemcompressed_v1.hpp:81
LASreadItemCompressed_GPSTIME11_v1::multi_extreme_counter
I32 multi_extreme_counter
Definition: lasreaditemcompressed_v1.hpp:87
U16
unsigned short U16
Definition: mydefs.hpp:40
EntropyDecoder::destroySymbolModel
virtual void destroySymbolModel(EntropyModel *model)=0
LASpoint10::classification
U8 classification
Definition: lasreaditemcompressed_v1.cpp:53
LASreadItemCompressed_POINT10_v1::m_classification
EntropyModel * m_classification[256]
Definition: lasreaditemcompressed_v1.hpp:65
LASreadItemCompressed_WAVEPACKET13_v1::m_offset_diff
EntropyModel * m_offset_diff[4]
Definition: lasreaditemcompressed_v1.hpp:128
LASreadItemCompressed_POINT10_v1::ic_dx
IntegerCompressor * ic_dx
Definition: lasreaditemcompressed_v1.hpp:57
LASreadItemCompressed_WAVEPACKET13_v1::~LASreadItemCompressed_WAVEPACKET13_v1
~LASreadItemCompressed_WAVEPACKET13_v1()
Definition: lasreaditemcompressed_v1.cpp:459
LASreadItemCompressed_RGB12_v1::read
void read(U8 *item)
Definition: lasreaditemcompressed_v1.cpp:404
LASreadItemCompressed_WAVEPACKET13_v1::m_packet_index
EntropyModel * m_packet_index
Definition: lasreaditemcompressed_v1.hpp:127
LASreadItemCompressed_WAVEPACKET13_v1::ic_offset_diff
IntegerCompressor * ic_offset_diff
Definition: lasreaditemcompressed_v1.hpp:129
LASpoint10::edge_of_flight_line
U8 edge_of_flight_line
Definition: lasreaditemcompressed_v1.cpp:52
LASwavepacket13::offset
U64 offset
Definition: lasreaditemcompressed_v1.cpp:430
LASreadItemCompressed_POINT10_v1::ic_point_source_ID
IntegerCompressor * ic_point_source_ID
Definition: lasreaditemcompressed_v1.hpp:62
LASreadItemCompressed_BYTE_v1::LASreadItemCompressed_BYTE_v1
LASreadItemCompressed_BYTE_v1(EntropyDecoder *dec, U32 number)
Definition: lasreaditemcompressed_v1.cpp:534
U8
unsigned char U8
Definition: mydefs.hpp:41
BOOL
int BOOL
Definition: mydefs.hpp:57
U64
unsigned long long U64
Definition: mydefs.hpp:47
LASreadItemCompressed_GPSTIME11_v1::last_gpstime
U64I64F64 last_gpstime
Definition: lasreaditemcompressed_v1.hpp:82
LASreadItemCompressed_WAVEPACKET13_v1::last_item
U8 * last_item
Definition: lasreaditemcompressed_v1.hpp:123
LASreadItemCompressed_BYTE_v1::read
void read(U8 *item)
Definition: lasreaditemcompressed_v1.cpp:567
LASpoint10::scan_angle_rank
I8 scan_angle_rank
Definition: lasreaditemcompressed_v1.cpp:54
LASreadItemCompressed_RGB12_v1::dec
EntropyDecoder * dec
Definition: lasreaditemcompressed_v1.hpp:103
LASpoint10::y
I32 y
Definition: lasreaditemcompressed_v1.cpp:46
LASwavepacket13::z
U32I32F32 z
Definition: lasreaditemcompressed_v1.cpp:435
LASpoint10::return_number
U8 return_number
Definition: lasreaditemcompressed_v1.cpp:49
LASreadItemCompressed_GPSTIME11_v1::read
void read(U8 *item)
Definition: lasreaditemcompressed_v1.cpp:294
LASreadItemCompressed_WAVEPACKET13_v1::ic_packet_size
IntegerCompressor * ic_packet_size
Definition: lasreaditemcompressed_v1.hpp:130
LASreadItemCompressed_WAVEPACKET13_v1::dec
EntropyDecoder * dec
Definition: lasreaditemcompressed_v1.hpp:122
LASreadItemCompressed_POINT10_v1::init
BOOL init(const U8 *item)
Definition: lasreaditemcompressed_v1.cpp:102
LASreadItemCompressed_WAVEPACKET13_v1::LASreadItemCompressed_WAVEPACKET13_v1
LASreadItemCompressed_WAVEPACKET13_v1(EntropyDecoder *dec)
Definition: lasreaditemcompressed_v1.cpp:438
U32
unsigned int U32
Definition: mydefs.hpp:39
U32I32F32
Definition: mydefs.hpp:60
LASreadItemCompressed_GPSTIME11_v1::m_gpstime_multi
EntropyModel * m_gpstime_multi
Definition: lasreaditemcompressed_v1.hpp:84
IntegerCompressor::decompress
I32 decompress(I32 iPred, U32 context=0)
Definition: integercompressor.cpp:319
IntegerCompressor::initDecompressor
void initDecompressor()
Definition: integercompressor.cpp:274
LASreadItemCompressed_POINT10_v1::last_x_diff
I32 last_x_diff[3]
Definition: lasreaditemcompressed_v1.hpp:54
LASreadItemCompressed_GPSTIME11_v1::m_gpstime_0diff
EntropyModel * m_gpstime_0diff
Definition: lasreaditemcompressed_v1.hpp:85
lasreaditemcompressed_v1.hpp
LASpoint10::scan_direction_flag
U8 scan_direction_flag
Definition: lasreaditemcompressed_v1.cpp:51
LASpoint10::z
I32 z
Definition: lasreaditemcompressed_v1.cpp:47
LASreadItemCompressed_POINT10_v1::last_incr
I32 last_incr
Definition: lasreaditemcompressed_v1.hpp:56
LASreadItemCompressed_RGB12_v1::~LASreadItemCompressed_RGB12_v1
~LASreadItemCompressed_RGB12_v1()
Definition: lasreaditemcompressed_v1.cpp:384
EntropyDecoder::readInt64
virtual U64 readInt64()=0
LASreadItemCompressed_RGB12_v1::m_byte_used
EntropyModel * m_byte_used
Definition: lasreaditemcompressed_v1.hpp:106
LASreadItemCompressed_GPSTIME11_v1::LASreadItemCompressed_GPSTIME11_v1
LASreadItemCompressed_GPSTIME11_v1(EntropyDecoder *dec)
Definition: lasreaditemcompressed_v1.cpp:260
IntegerCompressor
Definition: integercompressor.hpp:53
EntropyDecoder::decodeSymbol
virtual U32 decodeSymbol(EntropyModel *model)=0
U64I64F64::i64
I64 i64
Definition: mydefs.hpp:61


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