Esempio n. 1
0
int unpackFloatVec3FromSignedTwoByteFixed(const unsigned char* sourceBuffer, glm::vec3& destination, int radix) {
    const unsigned char* startPosition = sourceBuffer;
    sourceBuffer += unpackFloatScalarFromSignedTwoByteFixed((int16_t*) sourceBuffer, &(destination.x), radix);
    sourceBuffer += unpackFloatScalarFromSignedTwoByteFixed((int16_t*) sourceBuffer, &(destination.y), radix);
    sourceBuffer += unpackFloatScalarFromSignedTwoByteFixed((int16_t*) sourceBuffer, &(destination.z), radix);
    return sourceBuffer - startPosition;
}
Esempio n. 2
0
int Referential::unpack(const unsigned char* sourceBuffer) {
    const unsigned char* startPosition = sourceBuffer;
    _type = (Type)*sourceBuffer++;
    if (_type < 0 || _type >= NUM_TYPES) {
        _type = UNKNOWN;
    }
    memcpy(&_version, sourceBuffer, sizeof(_version));
    sourceBuffer += sizeof(_version);
    
    sourceBuffer += unpackFloatVec3FromSignedTwoByteFixed(sourceBuffer, _translation, 0);
    sourceBuffer += unpackOrientationQuatFromBytes(sourceBuffer, _rotation);
    sourceBuffer += unpackFloatScalarFromSignedTwoByteFixed((const int16_t*) sourceBuffer, &_scale, 0);
    return sourceBuffer - startPosition;
}