19 static inline void pack(
const double pos[3],
float pospack[4])
22 tmp[0] = floor(pos[0]);
23 tmp[1] = floor(pos[1]);
24 tmp[2] = floor(pos[2]);
26 double frac = floor((pos[0] - tmp[0]) * 256.0) +
27 (floor((pos[1] - tmp[1]) * 256.0) * 256.0) +
28 (floor((pos[2] - tmp[2]) * 256.0)) * 65536.0;
30 pospack[0] =
static_cast<float>(tmp[0]);
31 pospack[1] =
static_cast<float>(tmp[1]);
32 pospack[2] =
static_cast<float>(tmp[2]);
33 pospack[3] =
static_cast<float>(frac);
37 static inline void unpack(
const float pospack[4],
double pos[3] )
39 double frac = pospack[3];
40 pos[2] = floor(frac / 65536.0);
41 frac -= pos[2] * 65536.0;
45 pos[1] = floor(frac / 256.0);
46 frac -= pos[1] * 256.0;
50 pos[0] = frac / 256.0;
static void unpack(const float pospack[4], double pos[3])
Unpack 3 doubles from 4 floats.
Definition: DtCoordinatePack.h:37
The pack class packs 3 doubles into 4 floats.
Definition: DtCoordinatePack.h:14
#define DT_DLL_VRVGRAPHICS
Contains DLL export macros.
Definition: vrvGraphics.h:19
static void pack(const double pos[3], float pospack[4])
Pack 3 doubles into 4 floats.
Definition: DtCoordinatePack.h:19