예제 #1
0
        bool IsInterpolatorIsEmpty(NovaVector3Interpolator 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);
        }
예제 #2
0
        bool DumpInterpolator(string name, string property, NovaVector3Interpolator interpolator, NovaScene scene, List <BabylonAnimation> animations)
        {
            if (interpolator.Ready && !IsInterpolatorIsEmpty(interpolator))
            {
                var fps = scene.AnimationFramerate < 1 ? 30 : scene.AnimationFramerate;
                var babylonAnimation = new BabylonAnimation {
                    name = name, property = property, dataType = BabylonAnimation.DataType.Vector3, framePerSecond = fps
                };

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

                babylonAnimation.loopBehavior = interpolator.LoopAfter;

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

            return(false);
        }
예제 #3
0
        bool DumpInterpolator(string name, string property, NovaVector3Interpolator interpolator, NovaScene scene, List<BabylonAnimation> animations)
        {
            if (interpolator.Ready && !IsInterpolatorIsEmpty(interpolator))
            {
                var fps = scene.AnimationFramerate < 1 ? 30 : scene.AnimationFramerate;
                var babylonAnimation = new BabylonAnimation { name = name, property = property, dataType = BabylonAnimation.DataType.Vector3, framePerSecond = fps };

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

                babylonAnimation.loopBehavior = interpolator.LoopAfter;

                animations.Add(babylonAnimation);
                return true;
            }

            return false;
        }
예제 #4
0
        bool IsInterpolatorIsEmpty(NovaVector3Interpolator 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;
        }