30 if (vlr.record_length_after_header < 2)
37 if (vlr.record_id == 2111)
39 wkt =
"Math Transform WKT: ";
41 else if (vlr.record_id == 2112)
43 wkt =
"Coordinate System WKT: ";
51 wkt += QByteArray(
reinterpret_cast<const char*
>(vlr.data), vlr.record_length_after_header).trimmed();
58 const std::vector<LasExtraScalarField>& extraScalarFields)
73 QByteArray projectUUID;
74 projectUUID.reserve(16);
75 projectUUID.append(
reinterpret_cast<const char*
>(&header.project_ID_GUID_data_1), 4);
76 projectUUID.append(
reinterpret_cast<const char*
>(&header.project_ID_GUID_data_2), 2);
77 projectUUID.append(
reinterpret_cast<const char*
>(&header.project_ID_GUID_data_3), 2);
78 projectUUID.append(
reinterpret_cast<const char*
>(&header.project_ID_GUID_data_4), 8);
79 assert(projectUUID.size() == 16);
82 if (header.system_identifier[0] != 0)
87 if (header.number_of_variable_length_records > 0)
114 QByteArray byteArray = value.toByteArray();
115 if (byteArray.size() != 16)
121 const char* bufferData = byteArray.data();
124 header.project_ID_GUID_data_1 = *(
const laszip_U32*)bufferData;
127 header.project_ID_GUID_data_2 = *(
const laszip_U16*)bufferData;
130 header.project_ID_GUID_data_3 = *(
const laszip_U16*)bufferData;
133 memcpy(header.project_ID_GUID_data_4, bufferData, 8);
146 if (value.canConvert<
LasVlr>())
148 vlr = value.value<
LasVlr>();
158 bool hasScaleMetaData =
false;
160 if (hasScaleMetaData)
163 if (hasScaleMetaData)
168 return hasScaleMetaData;
173 bool hasOffsetMetaData =
false;
175 if (hasOffsetMetaData)
178 if (hasOffsetMetaData)
183 return hasOffsetMetaData;
208 version.minorVersion = versionMinor;
209 version.pointFormat = pointFormatId;
215 outGlobalEncoding = 0;
223 if (globalEncoding > 65535)
225 CVLog::Warning(
"[LAS] Invalid global encoding value: " + QString::number(globalEncoding));
227 outGlobalEncoding =
static_cast<uint16_t
>(globalEncoding);
laszip_vlr laszip_vlr_struct
static bool Warning(const char *format,...)
Prints out a formatted warning message in console.
void setMetaData(const QString &key, const QVariant &data)
Sets a meta-data element.
QVariant getMetaData(const QString &key) const
Returns a given associated meta data.
bool hasMetaData(const QString &key) const
Returns whether a meta-data element with the given key exists or not.
A 3D cloud and its associated features (color, normals, scalar fields, etc.)
std::vector< laszip_vlr_struct > vlrs
std::vector< LasExtraScalarField > extraScalarFields