private static bool IsTooDense(KeyframeContainer <Vector4> key, KeyframeContainer <Vector4> previousKey, float sampleStep) { float delta = Mathf.Abs(key.time - previousKey.time); // epsilon is too small here, use a bigger threshold return((delta - sampleStep) < -1e-5f /*-std::numeric_limits<float>::epsilon()*/); }
private void AddToList(AnimationClipCurveData curveData, List <Curve> curves, int index) { var item = curves.Last(); if (item.path != curveData.path) { throw new FormatException(); } foreach (var key in curveData.curve.keys) { var keyData = item.keys.Find(x => Mathf.Abs(x.time - key.time) < float.Epsilon); if (keyData == null) { keyData = new KeyframeContainer <Vector4>(); keyData.time = key.time; item.keys.Add(keyData); } keyData.value[index] = key.value; keyData.inSlope[index] = key.inTangent; keyData.outSlope[index] = key.outTangent; } }