@@ -552,86 +552,79 @@ bool NumpyReader::loadPoint(PointRef& point, point_count_t position)
552552
553553 float flt (0.0 );
554554 double dbl (0.0 );
555- uint8_t uint8 (0 );
556- uint16_t uint16 (0 );
557- uint32_t uint32 (0 );
558- uint64_t uint64 (0 );
559- int8_t int8 (0 );
560- int16_t int16 (0 );
561- int32_t int32 (0 );
562- int64_t int64 (0 );
555+ uint8_t u8 (0 );
556+ uint16_t u16 (0 );
557+ uint32_t u32 (0 );
558+ uint64_t u64 (0 );
559+ int8_t i8 (0 );
560+ int16_t i16 (0 );
561+ int32_t i32 (0 );
562+ int64_t i64 (0 );
563563
564564 for (const Field& f : m_fields)
565565 {
566+ log ()->get (LogLevel::Debug) << " endian: " << f.m_byteorder << std::endl;
566567 if (f.m_byteorder == ' >' )
567568 extractor.switchToBigEndian ();
568569 else
569570 extractor.switchToLittleEndian ();
570571
571- if ( Dimension::base ( f.m_type ) == Dimension::BaseType::Floating )
572+ switch ( f.m_type )
572573 {
573- if (f.m_elsize == 4 )
574- {
574+ case Dimension::Type::Signed8:
575+ extractor >> i8 ;
576+ point.setField (f.m_id , i8 );
577+ break ;
578+
579+ case Dimension::Type::Signed16:
580+ extractor >> i16 ;
581+ point.setField (f.m_id , i16 );
582+ break ;
583+
584+ case Dimension::Type::Signed32:
585+ extractor >> i32 ;
586+ point.setField (f.m_id , i32 );
587+ break ;
588+
589+ case Dimension::Type::Signed64:
590+ extractor >> i64 ;
591+ point.setField (f.m_id , i64 );
592+ break ;
593+
594+ case Dimension::Type::Unsigned8:
595+ extractor >> u8 ;
596+ point.setField (f.m_id , u8 );
597+ break ;
598+
599+ case Dimension::Type::Unsigned16:
600+ extractor >> u16 ;
601+ point.setField (f.m_id , u16 );
602+ break ;
603+
604+ case Dimension::Type::Unsigned32:
605+ extractor >> u32 ;
606+ point.setField (f.m_id , u32 );
607+ break ;
608+
609+ case Dimension::Type::Unsigned64:
610+ extractor >> u64 ;
611+ point.setField (f.m_id , u64 );
612+ break ;
613+
614+ case Dimension::Type::Float:
575615 extractor >> flt;
576- point.setField < float > (f.m_id , flt);
577- }
578- else if (f. m_elsize == 8 )
579- {
616+ point.setField (f.m_id , flt);
617+ break ;
618+
619+ case Dimension::Type::Double:
580620 extractor >> dbl;
581- point.setField <double >(f.m_id , dbl);
621+ point.setField (f.m_id , dbl);
622+ break ;
623+
624+ default :
625+ // skip it
626+ extractor.skip (f.m_elsize );
582627
583- }
584- }
585- else if (Dimension::base (f.m_type ) == Dimension::BaseType::Signed)
586- {
587- if (f.m_elsize == 1 )
588- {
589- extractor >> int8;
590- point.setField <int8_t >(f.m_id , int8);
591- }
592- if (f.m_elsize == 2 )
593- {
594- extractor >> int16;
595- point.setField <int16_t >(f.m_id , int16);
596- }
597- if (f.m_elsize == 4 )
598- {
599- extractor >> int32;
600- point.setField <int32_t >(f.m_id , int32);
601- }
602- if (f.m_elsize == 8 )
603- {
604- extractor >> int64;
605- point.setField <int64_t >(f.m_id , int64);
606- }
607- }
608- else if (Dimension::base (f.m_type ) == Dimension::BaseType::Unsigned)
609- {
610- if (f.m_elsize == 1 )
611- {
612- extractor >> uint8;
613- point.setField <uint8_t >(f.m_id , uint8);
614- }
615- if (f.m_elsize == 2 )
616- {
617- extractor >> uint16;
618- point.setField <uint16_t >(f.m_id , uint16);
619- }
620- if (f.m_elsize == 4 )
621- {
622- extractor >> uint32;
623- point.setField <uint32_t >(f.m_id , uint32);
624- }
625- if (f.m_elsize == 8 )
626- {
627- extractor >> int64;
628- point.setField <uint64_t >(f.m_id , uint64);
629- }
630- }
631- else
632- {
633- // skip it
634- extractor.skip (f.m_elsize );
635628 }
636629
637630 }
0 commit comments