void
avtStateRecorderIntegralCurve::AnalyzeStep( avtIVPStep& step, 
                                            avtIVPField* field )
{
    if (history.size() == 0)
    {
        // Record the first position of the step.
        RecordStep( field, step, step.GetT0() );
    }

    if (CheckForTermination(step, field))
        status.SetTerminationMet();

    // These must be called after CheckForTermination, because 
    // CheckForTermination will modify the step if it goes beyond the
    // termination criteria.  (Example: streamlines will split a step if it
    // is terminating by distance.)

    time = step.GetT1();
    distance += step.GetLength();

    RecordStep( field, step, step.GetT1() );
}