void avtStateRecorderIntegralCurve::RecordStep(const avtIVPField* field,
                                               const avtIVPStep& step,
                                               double t)
{
    avtVector p = step.GetP(t);

    /*
    //If the step is within tolerance of the previous step, just overwrite the last step
    //with this step.
    size_t nSamp = GetNumberOfSamples();
    if (nSamp > 1)
    {
        Sample prevSamp = GetSample(nSamp-1);
        if ((p-prevSamp.position).length2() < epsilon)
        {
            std::vector<double>::iterator m = history.begin() + (nSamp-1)*GetSampleStride();
            history.erase(m, history.end());
        }
    }
    */

    if( historyMask & SAMPLE_TIME )
        history.push_back( t );

    if( historyMask & SAMPLE_POSITION )
    {
        history.push_back( p.x );
        history.push_back( p.y );
        history.push_back( p.z );
    }
        
    if( historyMask & SAMPLE_VELOCITY )
    {
        avtVector v = step.GetV( t );
        history.push_back( v.x );
        history.push_back( v.y );
        history.push_back( v.z );
    }
        
    if( historyMask & SAMPLE_VORTICITY )
        history.push_back( field->ComputeVorticity( t, p ) );
        
    if( historyMask & SAMPLE_ARCLENGTH )
        history.push_back( distance );
        
    if( historyMask & SAMPLE_VARIABLE )
        history.push_back( field->ComputeScalarVariable( variableIndex, t, p ) );

    if( historyMask & SAMPLE_SECONDARY0 )
        history.push_back( field->ComputeScalarVariable( 0, t, p ) );
        
    if( historyMask & SAMPLE_SECONDARY1 )
        history.push_back( field->ComputeScalarVariable( 1, t, p ) );

    if( historyMask & SAMPLE_SECONDARY2 )
        history.push_back( field->ComputeScalarVariable( 2, t, p ) );

    if( historyMask & SAMPLE_SECONDARY3 )
        history.push_back( field->ComputeScalarVariable( 3, t, p ) );
        
    if( historyMask & SAMPLE_SECONDARY4 )
        history.push_back( field->ComputeScalarVariable( 4, t, p ) );

    if( historyMask & SAMPLE_SECONDARY5 )
        history.push_back( field->ComputeScalarVariable( 5, t, p ) );
}