cubicHermite method

Vector3D cubicHermite(
  1. Vector3D tangent1,
  2. Vector3D v2,
  3. Vector3D tangent2,
  4. double amount,
)

Implementation

Vector3D cubicHermite(Vector3D tangent1, Vector3D v2, Vector3D tangent2, double amount) {
  final p2 = amount*amount;
  final p3 = amount*amount*amount;

  return .vec3(
    (2*p3 - 3*p2 + 1)*x + (p3 - 2*p2 + amount)*tangent1.x + (-2*p3 + 3*p2)*v2.x + (p3 - p2)*tangent2.x,
    (2*p3 - 3*p2 + 1)*y + (p3 - 2*p2 + amount)*tangent1.y + (-2*p3 + 3*p2)*v2.y + (p3 - p2)*tangent2.y,
    (2*p3 - 3*p2 + 1)*z + (p3 - 2*p2 + amount)*tangent1.z + (-2*p3 + 3*p2)*v2.z + (p3 - p2)*tangent2.z,
  );
}