MrSID Decode SDK for LiDAR Reference Manual
1.1.3.4427
Main Page
Classes
Files
File List
File Members
Metadata.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_METADATA_H__
13
#define __LIDAR_METADATA_H__
14
15
#include "
lidar/Base.h
"
16
#include "
lidar/Stream.h
"
17
#include <stdio.h>
18
19
LT_BEGIN_LIDAR_NAMESPACE
20
24
#define METADATA_KEY_FileSourceID "FileSourceID"
25
#define METADATA_KEY_ProjectID "ProjectID"
26
#define METADATA_KEY_SystemID "SystemID"
27
#define METADATA_KEY_GeneratingSoftware "GeneratingSoftware"
28
#define METADATA_KEY_FileCreationDate "FileCreationDate"
29
#define METADATA_KEY_PointRecordsByReturnCount "PointRecordsByReturnCount"
30
#define METADATA_KEY_PreCompressionPointCount "PreCompressionPointCount"
31
#define METADATA_KEY_LASBBox "LAS_BoundingBox"
32
40
enum
MetadataDataType
41
{
42
// don't change the values they are serialized
43
// all values must be less then 1 << 16
44
45
METADATA_DATATYPE_INVALID
= 0,
47
METADATA_DATATYPE_STRING
= 1,
49
METADATA_DATATYPE_BLOB
= 2,
51
METADATA_DATATYPE_REAL_ARRAY
= 3
52
};
53
64
class
Metadata
65
{
66
SIMPLE_OBJECT(
Metadata
);
67
public
:
68
~Metadata
(
void
);
69
Metadata
(
void
);
70
76
size_t
getNumRecords
(
void
)
const
;
77
86
bool
has
(
const
char
*key)
const
;
87
101
void
get
(
size_t
idx,
const
char
*&key,
const
char
*&description,
102
MetadataDataType
&datatype,
103
const
void
*&value,
size_t
&length)
const
;
118
bool
get
(
const
char
*key,
const
char
*&description,
119
MetadataDataType
&datatype,
120
const
void
*&value,
size_t
&length)
const
;
121
129
size_t
getKeyIndex
(
const
char
*key)
const
;
130
137
const
char
*
getKey
(
size_t
idx)
const
;
138
145
const
char
*
getDescription
(
size_t
idx)
const
;
146
153
MetadataDataType
getDataType
(
size_t
idx)
const
;
154
161
const
void
*
getValue
(
size_t
idx)
const
;
162
170
size_t
getValueLength
(
size_t
idx)
const
;
171
184
void
add
(
const
char
*key,
const
char
*description,
185
MetadataDataType
datatype,
186
const
void
*value,
size_t
length);
194
void
add
(
const
Metadata
&meta);
195
201
void
remove
(void);
202
210
void
remove
(
size_t
idx);
211
219
void
remove
(
const
char
*key);
220
226
void
sort
(
void
);
227
233
void
read
(
StreamReader
&stream);
234
240
void
write
(
StreamWriter
&stream)
const
;
241
249
void
dump
(FILE *file)
const
;
250
251
protected
:
252
struct
Record;
253
class
RecordStore;
254
255
RecordStore *
m_records
;
256
};
257
258
LT_END_LIDAR_NAMESPACE
259
#endif // __LIDAR_METADATA_H__
LizardTech