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); }
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()); }