U

UndoEdit (FCurve)

Introduced

3.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();

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



Autodesk Softimage v7.5