Beispiel #1
0
        private bool IsHomogeneousTime()
        {
            if (keys != null)
            {
                int  currentTime = 0;
                bool first       = true;
                foreach (VisibleKey vk in keys.Values)
                {
                    Key key = vk.Target.GetKey(vk.ParameterIndex, vk.Time);
                    if (first)
                    {
                        currentTime = KeyGroup.Quant(key.Time);
                        first       = false;
                    }
                    else
                    {
                        if (KeyGroup.Quant(key.Time) != currentTime)
                        {
                            return(false);
                        }
                    }
                }
                return(true);
            }

            return(false);
        }
Beispiel #2
0
        public void SetKeyFrame(double time, Key.KeyType keyIn)
        {
            if (Target == null)
            {
                return;
            }
            int qt = KeyGroup.Quant(time);

            CurrentParameters = Target.GetParams();

            ParameterNames.Clear();
            ParameterNames.AddRange(Target.GetParamNames());

            ParameterTypes.Clear();
            ParameterTypes.AddRange(Target.GetParamTypes());

            if (KeyFrames.Count != ParameterNames.Count)
            {
                KeyFrames.Clear();
                for (int i = 0; i < ParameterNames.Count; i++)
                {
                    KeyGroup kf = new KeyGroup();
                    kf.ParameterName = ParameterNames[i];
                    KeyFrames.Add(kf);
                }
            }

            for (int i = 0; i < ParameterNames.Count; i++)
            {
                Key key = new Key(time, CurrentParameters[i], keyIn, ParameterTypes[i]);
                if (KeyFrames[i].Keys.ContainsKey(qt))
                {
                    KeyFrames[i].Keys[qt].Value = CurrentParameters[i];
                }
                else
                {
                    KeyFrames[i].Keys.Add(qt, key);
                }
            }
        }
 public static string GetIndexKey(AnimationTarget target, int parameterIndex, double time)
 {
     return(target.TargetID + "\t" + parameterIndex.ToString() + "\t" + KeyGroup.Quant(time).ToString());
 }