public Element Decompress(ulong cval) { if (!cached) { CacheValues(); } if (_trsType == TRSType.Scale && uniformAxes != UniformAxes.NonUniform) { float val = ucrusher.Decompress((uint)cval); return(new Vector3(val, val, val)); } else if (_trsType == TRSType.Quaternion) { //Debug.Log("We should not see this! Quats should be getting called to DecompressToQuat"); return(qcrusher.Decompress(cval)); } else { // Issue log error for trying to write more than 64 bits to the ulong buffer FloatCrusherUtilities.CheckBitCount(cache_TotalBits[0], 64); int bitposition = 0; return(new Vector3( cache_xEnabled ? (xcrusher.ReadAndDecompress(ref cval, ref bitposition)) : 0, cache_yEnabled ? (ycrusher.ReadAndDecompress(ref cval, ref bitposition)) : 0, cache_zEnabled ? (zcrusher.ReadAndDecompress(ref cval, ref bitposition)) : 0 )); } }