bool IsInterpolatorIsEmpty(NovaFloatInterpolator interpolator)
        {
            for (int index = 0; index < interpolator.Datas.Length - 1; index++)
            {
                if (interpolator.Datas[index].Value != interpolator.Datas[index + 1].Value)
                {
                    return(false);
                }
            }

            return(true);
        }
        bool DumpInterpolator(string name, string property, NovaFloatInterpolator interpolator, NovaScene scene, List <BabylonAnimation> animations, float mult = 1.0f)
        {
            if (interpolator.Ready && !IsInterpolatorIsEmpty(interpolator))
            {
                var fps = scene.AnimationFramerate < 1 ? 30 : scene.AnimationFramerate;
                var babylonAnimation = new BabylonAnimation {
                    name = name, property = property, dataType = BabylonAnimation.DataType.Float, framePerSecond = fps
                };

                babylonAnimation.keys = interpolator.Datas.Select(value => new BabylonAnimationKey {
                    frame = value.Key / scene.AnimationKeyStep, values = new[] { value.Value *mult }
                }).ToArray();

                babylonAnimation.loopBehavior = interpolator.LoopAfter;

                animations.Add(babylonAnimation);
                return(true);
            }

            return(false);
        }
        bool DumpInterpolator(string name, string property, NovaFloatInterpolator interpolator, NovaScene scene, List<BabylonAnimation> animations, float mult = 1.0f)
        {
            if (interpolator.Ready && !IsInterpolatorIsEmpty(interpolator))
            {
                var fps = scene.AnimationFramerate < 1 ? 30 : scene.AnimationFramerate;
                var babylonAnimation = new BabylonAnimation { name = name, property = property, dataType = BabylonAnimation.DataType.Float, framePerSecond = fps };

                babylonAnimation.keys = interpolator.Datas.Select(value => new BabylonAnimationKey { frame = value.Key / scene.AnimationKeyStep, values = new[] { value.Value * mult } }).ToArray();

                babylonAnimation.loopBehavior = interpolator.LoopAfter;

                animations.Add(babylonAnimation);
                return true;
            }

            return false;
        }
        bool IsInterpolatorIsEmpty(NovaFloatInterpolator interpolator)
        {
            for (int index = 0; index < interpolator.Datas.Length - 1; index++)
            {
                if (interpolator.Datas[index].Value != interpolator.Datas[index + 1].Value)
                {
                    return false;
                }
            }

            return true;
        }