29#ifndef OSGANIMATION_PACKED_H
30#define OSGANIMATION_PACKED_H
52 pt[1] = (
m32bits >> 11) & 0x7ff;
54 result[0] = scale[0] * pt[0] + min[0];
55 result[1] = scale[1] * pt[1] + min[1];
56 result[2] = scale[2] * pt[2] + min[2];
65 m32bits = srci[0] + (srci[1] << 11) + (srci[2] << 22);
76 void analyze(
const std::vector<osg::Vec3>& src)
79 mMin.
set(FLT_MAX, FLT_MAX, FLT_MAX);
80 osg::Vec3 maxp(-FLT_MAX, -FLT_MAX, -FLT_MAX);
81 int nb = (int)src.size();
82 for(
int i = 0; i < nb; i++)
85 for(
int j = 0; j < 3; j++)
103 mScale[0] = diff[0] / 2047;
104 mScale[1] = diff[1] / 2047;
105 mScale[2] = diff[2] / 1023;
112 for(
int i = 0; i < (int)src.size(); i++)
void set(value_type x, value_type y, value_type z)
Definition Vec3f:67
T maximum(T lhs, T rhs)
Definition Math:85
T minimum(T lhs, T rhs)
Definition Math:78
void compress(const std::vector< osg::Vec3 > &src)
Definition Vec3Packed:108
std::vector< Vec3Packed > mVecCompressed
Definition Vec3Packed:71
void analyze(const std::vector< osg::Vec3 > &src)
Definition Vec3Packed:76
osg::Vec3 mScaleInv
Definition Vec3Packed:74
osg::Vec3 mScale
Definition Vec3Packed:73
osg::Vec3 mMin
Definition Vec3Packed:72
void uncompress(const osg::Vec3 &scale, const osg::Vec3 &min, osg::Vec3 &result) const
Definition Vec3Packed:48
unsigned int uint32_t
Definition Vec3Packed:43
Vec3Packed(uint32_t val)
Definition Vec3Packed:45
Vec3Packed()
Definition Vec3Packed:46
void compress(const osg::Vec3f &src, const osg::Vec3f &min, const osg::Vec3f &scaleInv)
Definition Vec3Packed:59
uint32_t m32bits
Definition Vec3Packed:44