MCPcopy Create free account
hub / github.com/PDAL/PDAL / setField

Method setField

pdal/PointView.hpp:508–564  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

506
507template<typename T>
508void PointView::setField(Dimension::Id dim, PointId idx, T val)
509{
510 const Dimension::Detail *dd = layout()->dimDetail(dim);
511
512 Everything e;
513 bool ok = true;
514 switch (dd->type())
515 {
516 case Dimension::Type::Float:
517 ok = Utils::numericCast(val, e.f);
518 break;
519 case Dimension::Type::Double:
520 ok = Utils::numericCast(val, e.d);
521 break;
522 case Dimension::Type::Signed8:
523 ok = Utils::numericCast(val, e.s8);
524 break;
525 case Dimension::Type::Signed16:
526 ok = Utils::numericCast(val, e.s16);
527 break;
528 case Dimension::Type::Signed32:
529 ok = Utils::numericCast(val, e.s32);
530 break;
531 case Dimension::Type::Signed64:
532 ok = Utils::numericCast(val, e.s64);
533 break;
534 case Dimension::Type::Unsigned8:
535 ok = Utils::numericCast(val, e.u8);
536 break;
537 case Dimension::Type::Unsigned16:
538 ok = Utils::numericCast(val, e.u16);
539 break;
540 case Dimension::Type::Unsigned32:
541 ok = Utils::numericCast(val, e.u32);
542 break;
543 case Dimension::Type::Unsigned64:
544 ok = Utils::numericCast(val, e.u64);
545 break;
546 case Dimension::Type::None:
547 return;
548 }
549 if (ok)
550 {
551 if (idx == m_index.size())
552 addPoint();
553 m_pointTable.setFieldInternal(dim, tableId(idx), &e);
554 }
555 else
556 {
557 std::ostringstream oss;
558 oss << "Unable to set data and convert as requested: ";
559 oss << Dimension::name(dim) << ":" << Utils::typeidName<T>() <<
560 "(" << (double)val << ") -> " <<
561 Dimension::interpretationName(dd->type());
562 throw pdal_error(oss.str());
563 }
564}
565

Callers

nothing calls this directly

Calls 10

numericCastFunction · 0.85
addPointFunction · 0.85
tableIdFunction · 0.85
interpretationNameFunction · 0.85
strMethod · 0.80
layoutFunction · 0.70
nameFunction · 0.70
typeMethod · 0.45
sizeMethod · 0.45
setFieldInternalMethod · 0.45

Tested by

no test coverage detected