Beispiel #1
0
        private static Dictionary <IAnimatedBehavior, List <TransitionCondition> > DecomposeMassiveIntoBehaviors(List <ManifestBinding> activityManifests)
        {
            Dictionary <IAnimatedBehavior, List <TransitionCondition> > representation = activityManifests
                                                                                         .Where(binding => binding.Manifest.Kind() == ManifestKind.Massive)
                                                                                         .SelectMany(binding =>
            {
                MassiveBlendManifest manifest = (MassiveBlendManifest)binding.Manifest;

                return(Permutation.All().Select(currentPermutation =>
                {
                    var animatedBehavior = MassiveBlendToAnimatedBehavior(manifest, currentPermutation);
                    return new KeyValuePair <IAnimatedBehavior, TransitionCondition.ActivityBoundTransitionCondition>(
                        animatedBehavior,
                        new TransitionCondition.ActivityBoundTransitionCondition(
                            binding.StageValue,
                            manifest.TransitionDuration(),
                            currentPermutation,
                            binding.LayerOrdinal
                            )
                        );
                }).ToList());
            })
                                                                                         .GroupBy(pair => pair.Key, pair => pair.Value)
                                                                                         .ToDictionary(x => (IAnimatedBehavior)x.Key, x => x.Cast <TransitionCondition>().ToList());

            return(representation);
        }
Beispiel #2
0
        static void Main(string[] args)
        {
            int    N = int.Parse(Console.ReadLine());
            string P = string.Join("", Console.ReadLine().Split().ToArray());
            string Q = string.Join("", Console.ReadLine().Split().ToArray());

            var p = Permutation <int> .All(Enumerable.Range(1, N));

            long resP  = 0;
            long resQ  = 0;
            long index = 0;

            foreach (var item in p)
            {
                string s = string.Join("", item);
                if (s == P)
                {
                    resP = index;
                }
                if (s == Q)
                {
                    resQ = index;
                }
                index++;
            }
            Console.WriteLine(Math.Abs(resP - resQ));
        }
Beispiel #3
0
        public static PermutationManifest FromNothing(AnimationClip defaultClip)
        {
            var poses = Permutation.All().ToDictionary(
                permutation => permutation,
                permutation => SingleAnimatedBehavior.Of(new QualifiedAnimation(defaultClip, new Qualification(false, QualifiedLimitation.None))));

            return(new PermutationManifest(poses, 0f));
        }