Branch data Line data Source code
1 : : /*
2 : : ===============================================================================
3 : :
4 : : FILE: las.hpp
5 : :
6 : : CONTENTS:
7 : : Point formats for LAS
8 : :
9 : : PROGRAMMERS:
10 : :
11 : : martin.isenburg@rapidlasso.com - http://rapidlasso.com
12 : : uday.karan@gmail.com - Hobu, Inc.
13 : :
14 : : COPYRIGHT:
15 : :
16 : : (c) 2007-2014, martin isenburg, rapidlasso - tools to catch reality
17 : : (c) 2014, Uday Verma, Hobu, Inc.
18 : :
19 : : This is free software; you can redistribute and/or modify it under the
20 : : terms of the GNU Lesser General Licence as published by the Free Software
21 : : Foundation. See the COPYING file for more information.
22 : :
23 : : This software is distributed WITHOUT ANY WARRANTY and without even the
24 : : implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
25 : :
26 : : CHANGE HISTORY:
27 : :
28 : : ===============================================================================
29 : : */
30 : :
31 : : #ifndef __las_hpp__
32 : : #define __las_hpp__
33 : :
34 : : #include "formats.hpp"
35 : : #include "model.hpp"
36 : : #include "compressor.hpp"
37 : : #include "util.hpp"
38 : :
39 : : namespace laszip {
40 : : namespace formats {
41 : : namespace las {
42 : : #pragma pack(push, 1)
43 : : struct point10 {
44 : : int x;
45 : : int y;
46 : : int z;
47 : : unsigned short intensity;
48 : : unsigned char return_number : 3;
49 : : unsigned char number_of_returns_of_given_pulse : 3;
50 : : unsigned char scan_direction_flag : 1;
51 : : unsigned char edge_of_flight_line : 1;
52 : : unsigned char classification;
53 : : char scan_angle_rank;
54 : : unsigned char user_data;
55 : : unsigned short point_source_ID;
56 : :
57 : 0 : point10() : x(0), y(0), intensity(0), return_number(0),
58 : 0 : number_of_returns_of_given_pulse(0), scan_direction_flag(0),
59 : 0 : edge_of_flight_line(0), classification(0),
60 : 0 : scan_angle_rank(0), user_data(0), point_source_ID(0)
61 : 0 : {}
62 : : };
63 : :
64 : : struct gpstime {
65 : : int64_t value;
66 : :
67 : 0 : gpstime() : value(0) {}
68 : 0 : gpstime(int64_t v) : value(v) {}
69 : : };
70 : :
71 : : struct rgb {
72 : : unsigned short r, g, b;
73 : :
74 : 0 : rgb(): r(0), g(0), b(0) {}
75 : 0 : rgb(unsigned short _r, unsigned short _g, unsigned short _b) :
76 : 0 : r(_r), g(_g), b(_b) {}
77 : : };
78 : :
79 : : // just the XYZ fields out of the POINT10 struct
80 : : struct xyz {
81 : : int x, y, z;
82 : :
83 : : xyz() : x(0), y(0), z(0)
84 : : {}
85 : : };
86 : :
87 : : struct extrabytes : public std::vector<uint8_t>
88 : : {};
89 : : #pragma pack(pop)
90 : : }
91 : : }
92 : : }
93 : :
94 : : #include "detail/field_extrabytes.hpp"
95 : : #include "detail/field_point10.hpp"
96 : : #include "detail/field_gpstime.hpp"
97 : : #include "detail/field_rgb.hpp"
98 : : #include "detail/field_xyz.hpp"
99 : :
100 : : #endif // __las_hpp__
|