   How do I move all points on a spline in the following situation?
  Currently I am updating all my points on a spline using a movement vector derived from the code below: // Destination node always remains the same Vector3 node = Vector3.Zero; Vector3 position_Start = spline_CatmullRom.point_List[node_Index]; // Set final position to current object position Vector3 position_Final = position_Start; // Find the direction to the next node based on the object's position Vector3 node_Direction_To = node - position_Start; // Distance must be calculated from NON normalised direction float node_Distance_To = node_Direction_To.LengthSquared(); // Now normalise the direction to the next node (for smooth movement) node_Direction_To.Normalize(); // Calculate the final position based on direction to the next node and object's speed position_Final += node_Direction_To * speed * dt;The interpolated points on the spline can then be updated as follows:   public void MoveSpline(Vector3 vector_Movement)   {  for (int i = 0; i < point_List.Count; i++)  { point_List += vector_Movement;  }   }Where "node_Direction_To * speed * dt" is the movement vector.The problem arises when I have to account for the speed over shooting the distance between the current interpolated point on the spline and the next interpolated point. // Calculate the distance travelled this frame float object_Distance_Travelled = (position_Final - position_Start).LengthSquared(); // If the distance from the object's original position to its new position is greater than the distance to the next node // [I.e. The object has overshot the node by a certain distance] while (object_Distance_Travelled > node_Distance_To) {// If the final node has not been reachedif (node_Index + 1 < spline_CatmullRom.point_List.Count){    float object_Distance_Remaining = (float)Math.Sqrt(object_Distance_Travelled) - (float)Math.Sqrt(node_Distance_To);    //Console.WriteLine("Overshot node " + node_Index + " by " + object_Distance_Remaining);    // Set position to current node    position_Start = spline_CatmullRom.point_List[node_Index];    // Get the next node    node = spline_CatmullRom.point_List[++node_Index];    // Find the direction to the next node based on the object's position    node_Direction_To = node - position_Start;    node_Distance_To = node_Direction_To.LengthSquared();    node_Direction_To.Normalize();    // Set final position to current object position    position_Final = position_Start;    // Calculate new final position based on the distance remaining    position_Final += object_Distance_Remaining * node_Direction_To;    // Calculate the distance travelled this frame    // If the distance has overshot the next node then this process will begin again    object_Distance_Travelled = (position_Final - position_Start).LengthSquared();}else{    position_Final = spline_CatmullRom.point_List[node_Index];    finished = true;    break;} }I can create the final position of one node, but how do I obtain the correct movement vector for the spline in the above scenario?Thanks.   