00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef GLOBAL_HPP
00026 #define GLOBAL_HPP
00027
00028 #include <boost/cstdint.hpp>
00029
00030 #ifdef __SUNPRO_CC
00031
00032 #else
00033 using boost::int32_t;
00034 using boost::uint32_t;
00035 using boost::int16_t;
00036 using boost::uint16_t;
00037 using boost::uint8_t;
00038 #endif
00039
00040 namespace mapnik
00041 {
00042
00043 #define int2net(A) (int16_t) (((uint16_t) ((uint8_t) (A)[1])) | \
00044 (((uint16_t) ((uint8_t) (A)[0])) << 8))
00045
00046 #define int4net(A) (int32_t) (((uint32_t) ((uint8_t) (A)[3])) | \
00047 (((uint32_t) ((uint8_t) (A)[2])) << 8) | \
00048 (((uint32_t) ((uint8_t) (A)[1])) << 16) | \
00049 (((uint32_t) ((uint8_t) (A)[0])) << 24))
00050
00051
00052 typedef uint8_t byte;
00053 #define float8net(V,M) do { double def_temp; \
00054 ((byte*) &def_temp)[0]=(M)[7]; \
00055 ((byte*) &def_temp)[1]=(M)[6]; \
00056 ((byte*) &def_temp)[2]=(M)[5]; \
00057 ((byte*) &def_temp)[3]=(M)[4]; \
00058 ((byte*) &def_temp)[4]=(M)[3]; \
00059 ((byte*) &def_temp)[5]=(M)[2]; \
00060 ((byte*) &def_temp)[6]=(M)[1]; \
00061 ((byte*) &def_temp)[7]=(M)[0]; \
00062 (V) = def_temp; } while(0)
00063 #define float4net(V,M) do { float def_temp; \
00064 ((byte*) &def_temp)[0]=(M)[3]; \
00065 ((byte*) &def_temp)[1]=(M)[2]; \
00066 ((byte*) &def_temp)[2]=(M)[1]; \
00067 ((byte*) &def_temp)[3]=(M)[0]; \
00068 (V)=def_temp; } while(0)
00069 }
00070
00071 #endif //GLOBAL_HPP