Set the value of a field in a point. \param dim Dimension to set. \param type PDAL type of data pointed to by \val \param val Pointer to data to set. */
| 386 | \param val Pointer to data to set. |
| 387 | */ |
| 388 | inline void PointRef::setField(Dimension::Id dim, |
| 389 | Dimension::Type type, const void *val) |
| 390 | { |
| 391 | Everything e; |
| 392 | |
| 393 | memcpy(&e, val, Dimension::size(type)); |
| 394 | switch (type) |
| 395 | { |
| 396 | case Dimension::Type::Float: |
| 397 | setField(dim, e.f); |
| 398 | break; |
| 399 | case Dimension::Type::Double: |
| 400 | setField(dim, e.d); |
| 401 | break; |
| 402 | case Dimension::Type::Signed8: |
| 403 | setField(dim, e.s8); |
| 404 | break; |
| 405 | case Dimension::Type::Signed16: |
| 406 | setField(dim, e.s16); |
| 407 | break; |
| 408 | case Dimension::Type::Signed32: |
| 409 | setField(dim, e.s32); |
| 410 | break; |
| 411 | case Dimension::Type::Signed64: |
| 412 | setField(dim, e.s64); |
| 413 | break; |
| 414 | case Dimension::Type::Unsigned8: |
| 415 | setField(dim, e.u8); |
| 416 | break; |
| 417 | case Dimension::Type::Unsigned16: |
| 418 | setField(dim, e.u16); |
| 419 | break; |
| 420 | case Dimension::Type::Unsigned32: |
| 421 | setField(dim, e.u32); |
| 422 | break; |
| 423 | case Dimension::Type::Unsigned64: |
| 424 | setField(dim, e.u64); |
| 425 | break; |
| 426 | case Dimension::Type::None: |
| 427 | break; |
| 428 | } |
| 429 | } |
| 430 | |
| 431 | /** |
| 432 | Convert a PointRef to metadata. |