示例#1
0
 public Position(FVector3 basePosition, FVector3 intermediatePosition, FVector3 targetPosition, float baseTime,
                 float targetTime)
 {
     if (baseTime > targetTime)
     {
         throw new ArgumentException($"Base time {baseTime} cannot be larger than target time {targetTime}");
     }
     QuadraticReg(0.0f, 0.5f, 0.1f, basePosition.X, intermediatePosition.X, targetPosition.X,
                  out var xA, out var xB, out var xC);
     QuadraticReg(0.0f, 0.5f, 0.1f, basePosition.Y, intermediatePosition.Y, targetPosition.Y,
                  out var yA, out var yB, out var yC);
     QuadraticReg(0.0f, 0.5f, 0.1f, basePosition.Z, intermediatePosition.Z, targetPosition.Z,
                  out var zA, out var zB, out var zC);
     _a         = new FVector3(xA, yA, zA);
     _b         = new FVector3(xB, yB, zB);
     _c         = new FVector3(xC, yC, zC);
     Tween      = TweenType.Quadratic;
     BaseTime   = baseTime;
     TargetTime = targetTime;
 }
示例#2
0
 public static FVector3 Midpoint(FVector3 v, FVector3 w) => (v + w) / 2.0f;