16 return pointFormat >= 6;
84 return LasScalarField::Id::ExtendedReturnNumber;
96 return LasScalarField::Id::ExtendedNumberOfReturns;
118 return LasScalarField::Id::ExtendedClassification;
159 return LasScalarField::Id::ExtendedScanAngle;
164 return LasScalarField::Id::ExtendedScannerChannel;
178 throw std::logic_error(
"Unknown name");
186 return Range::ForType<uint16_t>();
206 return Range::ForType<int8_t>();
208 return Range::ForType<uint8_t>();
210 return Range::ForType<uint16_t>();
214 return Range(-30'000.0, 30'000.0);
220 return Range::ForType<uint8_t>();
226 return Range::ForType<uint16_t>();
229 Q_ASSERT_X(
false, __FUNCTION__,
"Unhandled las scalar field range");
230 return Range::ForType<ScalarType>();
247 std::vector<LasScalarField> scalarFields;
248 scalarFields.reserve(16);
250 if (pointFormatId >= 0 && pointFormatId <= 5)
265 else if (pointFormatId >= 6 && pointFormatId <= 10)
268 scalarFields.emplace_back(LasScalarField::Id::ExtendedReturnNumber);
269 scalarFields.emplace_back(LasScalarField::Id::ExtendedNumberOfReturns);
270 scalarFields.emplace_back(LasScalarField::Id::ExtendedScannerChannel);
273 scalarFields.emplace_back(LasScalarField::Id::ExtendedClassification);
278 scalarFields.emplace_back(LasScalarField::Id::ExtendedScanAngle);
293 scalarFields.shrink_to_fit();
static constexpr bool IsPointFormatExtended(unsigned pointFormat)
static bool Warning(const char *format,...)
Prints out a formatted warning message in console.
A scalar field associated to display-related parameters.
bool HasNearInfrared(unsigned pointFormatId)
Returns whether the point format support Near Infrared.
bool HasGpsTime(unsigned pointFormatId)
Returns whether the point format supports Gps Time.
constexpr const char * ScanDirectionFlag
constexpr const char * WithheldFlag
constexpr const char * EdgeOfFlightLine
constexpr const char * ScanAngle
constexpr const char * SyntheticFlag
constexpr const char * NumberOfReturns
constexpr const char * OverlapFlag
constexpr const char * UserData
constexpr const char * Classification
constexpr const char * ScannerChannel
constexpr const char * KeypointFlag
constexpr const char * ReturnNumber
constexpr const char * ScanAngleRank
constexpr const char * NearInfrared
constexpr const char * GpsTime
constexpr const char * Intensity
constexpr const char * PointSourceId
static Range ForBitCount(uint8_t numBits)
static std::vector< LasScalarField > ForPointFormat(unsigned pointFormatId)
const char * name() const
static LasScalarField::Range ValueRange(LasScalarField::Id id)
Returns the range of value the given field (ID) supports.
@ ExtendedNumberOfReturns
static constexpr const char * NameFromId(LasScalarField::Id id)
Returns the name that correspond to the given LasScalarField::Id variant.
static LasScalarField::Id IdFromName(const char *name, unsigned targetPointFormat)