cubicHermiteSpline method

Q cubicHermiteSpline(
  1. Q outTangent1,
  2. Q q2,
  3. Q inTangent2,
  4. double t,
)

Implementation

Q cubicHermiteSpline(
  Q outTangent1,
  Q q2,
  Q inTangent2,
  double t,
) {
  final t2 = t*t;
  final t3 = t2*t;
  final h00 = 2*t3 - 3*t2 + 1;
  final h10 = t3 - 2*t2 + t;
  final h01 = -2*t3 + 3*t2;
  final h11 = t3 - t2;

  Q p0 = scale(h00);
  Q m0 = outTangent1.scale(h10);
  Q p1 = q2.scale(h01);
  Q m1 = inTangent2.scale(h11);

  return p0.add(m0).add(p1).add(m1).normalize();
}