Obsolete transition and rate, and add end time for relative motion node.
This commit is contained in:
@@ -132,8 +132,7 @@ namespace Cryville.Crtr {
|
||||
new MotionNode() {
|
||||
Id = 0,
|
||||
Time = new Vec1(0),
|
||||
Transition = TransitionType.Ease,
|
||||
Rate = new Vec1(1),
|
||||
EndTime = new Vec1(0),
|
||||
Value = init
|
||||
}
|
||||
};
|
||||
@@ -181,9 +180,8 @@ namespace Cryville.Crtr {
|
||||
cnode = new MotionNode {
|
||||
Id = node.Id,
|
||||
Time = new Vec1(0),
|
||||
Transition = TransitionType.Ease,
|
||||
Rate = new Vec1(1),
|
||||
Value = (Vector)Activator.CreateInstance(node.Value.GetType())
|
||||
EndTime = new Vec1(0),
|
||||
Value = (Vector)Activator.CreateInstance(AbsoluteValue.GetType())
|
||||
};
|
||||
}
|
||||
else {
|
||||
@@ -191,8 +189,7 @@ namespace Cryville.Crtr {
|
||||
RelativeNodes.RemoveAt(i);
|
||||
}
|
||||
if (node.Time != null) cnode.Time = node.Time;
|
||||
if (node.Transition != null) cnode.Transition = node.Transition;
|
||||
if (node.Rate != null) cnode.Rate = node.Rate;
|
||||
if (node.EndTime != null) cnode.EndTime = node.EndTime;
|
||||
if (node.Value != null) cnode.Value.ReplaceFrom(node.Value);
|
||||
|
||||
int i2 = RelativeNodes.BinarySearch(cnode);
|
||||
@@ -207,6 +204,7 @@ namespace Cryville.Crtr {
|
||||
/// <param name="reltime">The relative time.</param>
|
||||
/// <param name="result">The result.</param>
|
||||
/// <returns></returns>
|
||||
[Obsolete]
|
||||
public void GetValue<T>(float reltime, ref T result) where T : Vector {
|
||||
int i = BinarySearch(reltime);
|
||||
if (i >= 0) RelativeNodes[i].Value.CopyTo(result);
|
||||
@@ -243,7 +241,9 @@ namespace Cryville.Crtr {
|
||||
|
||||
public class MotionNode : IComparable<MotionNode> {
|
||||
public short Id = -1;
|
||||
public bool Reset;
|
||||
public Vec1 Time;
|
||||
public Vec1 EndTime;
|
||||
float CmpTime { get { return Time != null ? Time.Value : 0; } }
|
||||
[Obsolete]
|
||||
public TransitionType? Transition;
|
||||
@@ -255,8 +255,7 @@ namespace Cryville.Crtr {
|
||||
return new MotionNode() {
|
||||
Id = Id,
|
||||
Time = (Vec1)Time.Clone(),
|
||||
Transition = Transition,
|
||||
Rate = (Vec1)Rate.Clone(),
|
||||
EndTime = (Vec1)EndTime.Clone(),
|
||||
Value = Value.Clone()
|
||||
};
|
||||
}
|
||||
@@ -264,8 +263,7 @@ namespace Cryville.Crtr {
|
||||
public void CopyTo(MotionNode dest) {
|
||||
dest.Id = Id;
|
||||
Time.CopyTo(dest.Time);
|
||||
dest.Transition = Transition;
|
||||
Rate.CopyTo(dest.Rate);
|
||||
EndTime.CopyTo(dest.EndTime);
|
||||
Value.CopyTo(dest.Value);
|
||||
}
|
||||
|
||||
@@ -280,12 +278,10 @@ namespace Cryville.Crtr {
|
||||
var t = (Vector)result.Time;
|
||||
Time.LerpWith(start.Time, lerpedTime, ref t);
|
||||
}
|
||||
if (Transition == null) result.Transition = start.Transition;
|
||||
else result.Transition = Transition;
|
||||
if (Rate == null) result.Rate = start.Rate;
|
||||
if (EndTime == null) result.EndTime = start.EndTime;
|
||||
else {
|
||||
var t = (Vector)result.Rate;
|
||||
Rate.LerpWith(start.Rate, lerpedTime, ref t);
|
||||
var t = (Vector)result.EndTime;
|
||||
EndTime.LerpWith(start.EndTime, lerpedTime, ref t);
|
||||
}
|
||||
if (Value == null) result.Value = start.Value;
|
||||
else Value.LerpWith(start.Value, lerpedTime, ref result.Value);
|
||||
|
Reference in New Issue
Block a user