40 #ifndef PCL_IO_PLY_BYTE_ORDER_H
41 #define PCL_IO_PLY_BYTE_ORDER_H
55 #if defined (PLY_BIG_ENDIAN) || defined (PLY_LITTLE_ENDIAN)
59 #if (defined (__powerpc) || defined (__powerpc__) || defined (__POWERPC__) || defined (__ppc__) || defined (_M_PPC) || defined (__ARCH_PPC))
60 # define PLY_BIG_ENDIAN
61 #elif (defined (i386) || defined (__i386__) || defined (__i386) || defined (_M_IX86) || defined (_X86_) || defined (__THW_INTEL__) || defined (__I86__) || defined (__INTEL__)) \
62 || (defined (__amd64__) || defined (__amd64) || defined (__x86_64__) || defined (__x86_64) || defined (_M_X64) || defined (ANDROID) || defined (__arm__) || defined (__aarch64__))
63 # define PLY_LITTLE_ENDIAN
72 #if defined (PLY_BIG_ENDIAN)
74 #elif defined (PLY_LITTLE_ENDIAN)
83 #undef PLY_LITTLE_ENDIAN
85 template <std::
size_t N>
94 std::swap (bytes[0], bytes[1]);
100 std::swap (bytes[0], bytes[3]);
101 std::swap (bytes[1], bytes[2]);
107 std::swap (bytes[0], bytes[7]);
108 std::swap (bytes[1], bytes[6]);
109 std::swap (bytes[2], bytes[5]);
110 std::swap (bytes[3], bytes[4]);
113 template <
typename T>
116 swap_byte_order<sizeof (T)> (
reinterpret_cast<char*
> (&value));
123 #endif // PLY_BYTE_ORDER_H