## FCurve.UndoEdit

### Introduced

v3.0

### Description

Undoes the bulk edits made to the fcurve and closes the current bulk edit.
Note: If you call UndoEdit when there is no bulk edit in progress, the method returns S_FALSE.

### C# Syntax

    FCurve.UndoEdit();

### Scripting Syntax

    FCurve.UndoEdit();

### Examples

#### JScript Example

    /*

    	This JScript example illustrates how to use the editing recording

    	feature of fcurves. This allows changes to be committed only after

    	all edits have been completed and undone if necessary.

    */

    // Create a null

    Application.NewScene( null, false );

    var nullobj = ActiveSceneRoot.AddNull();

    // Create an fcurve on the posx parameter from the null

    var fc = nullobj.posx.AddFCurve();

    // Define a random number of keys

    var nbkeys = Math.round( Math.random() * 100 );

    LogMessage( nbkeys );

    var arraysize = nbkeys * 2;

    var keys = new Array( 2 * nbkeys );

    var i = 0, empty;

    var offset = -50;

    for ( i=0; i<arraysize; i+=2 )

    {

    	keys[i] = offset + i;

    	keys[i+1] = ( Math.cos( (i + 1) / 10 ) * 50 );

    }

    // Set the keys on the fcurve

    fc.SetKeys(keys);

    // Begin recording changes to fcurve

    fc.BeginEdit();

    if ( fc.IsEditing() )

    {

    	LogMessage( "fcurve is recording changes" );

    }

    // Assign random values to keys

    for ( i=0; i<fc.GetNumKeys(); i++ )

    {

    	// Assign a randon value to keys

    	fc.Keys(i).Value = ( Math.random() * 100 ) - 50;

    }

    // If the number of keys if greater than 50 then undo all the

    // changes you just made

    nbkeys = fc.GetNumKeys();

    if ( nbkeys > 50 )

    {

    	LogMessage( "undoing changes" );

    	fc.UndoEdit();

    }

    nbkeys = fc.GetNumKeys();

    LogMessage( "total number of keys = " + nbkeys );

    // End editing (not necessary to call if changes were undone)

    fc.EndEdit();

    if ( !fc.IsEditing() )

    {

    	LogMessage( "fcurve has finished recording changes" );

    }

    // Outputs:

    //INFO : 29

    //INFO : fcurve is recording changes

    //INFO : total number of keys = 29

    //INFO : fcurve has finished recording changes

### See Also

FCurve.BeginEdit FCurve.EndEdit FCurve.IsEditing