Object Hierarchy | Related C++ Class: ActionDelta
ActionDelta
v6.0
The ActionDelta object tracks changes made on a parameter that
is part of a reference model. Every ActionDelta contains one or
more ActionDeltaItems, each of
which represents a single change, or modification, to a referenced
parameter. Each ActionDelta object has a specific type (see
siModificationDeltaType)
and each ActionDeltaItem it contains is of the same type.
ActionDeltas are stored in the Delta
(ActionDeltaCollection)
and are accessible via the Delta.ActionDeltas property. To add a
new ActionDelta to an existing Delta object, use the Delta.AddAction method.
| AddConstraintItem | AddExpressionItem | AddFCurveItem | AddStaticValueItem |
IsClassOf
![]() |
IsEqualTo
![]() |
RemoveAllItems | RemoveItem |
/*
This example demonstrates how to add an ActionDeltaItem of type siModificationDeltaConstraint to a ActionDelta.
*/
NewScene (null, false);
// Create a reference model from a cube
var oRoot = Application.ActiveProject.ActiveScene.Root;
var oCube = oRoot.AddGeometry("Cube","MeshSurface");
var emdlFileRefModel = XSIUtils.BuildPath(Application.InstallationPath(siProjectPath), "Models", "MyModel.emdl");
CreateModelAndConvertToRef(oCube, emdlFileRefModel );
// Create a cone
var oCone = oRoot.AddGeometry("Cone","MeshSurface");
Translate(oCone, 3.20, 0.00, 1.65, siRelative, siView, siObj, siXYZ, null, null, null, null, null, null, null, null, null, 0, null);
// Add the Delta object
var oDelta = AddDelta(oCube.Model);
// Add an action of type siModificationDeltaConstraint
var oActionDelta = oDelta.AddAction(siModificationDeltaConstraint);
// Add the fcurve item
var oActionDeltaItems = oActionDelta.AddConstraintItem("Position",oCube,oCone);
for(var i=0; i<oActionDeltaItems.Count; i++) {
Application.LogMessage ( " The item " + oActionDeltaItems(i).Name + " is active: " + oActionDeltaItems(i).Mute );
}
// Apply modification
oDelta.Apply();
// Output of above script:
//INFO : The item cube.kine.global.sclx is active: true
//INFO : The item cube.kine.global.scly is active: true
//INFO : The item cube.kine.global.sclz is active: true
//INFO : The item cube.kine.global.rotx is active: true
//INFO : The item cube.kine.global.roty is active: true
//INFO : The item cube.kine.global.rotz is active: true
//INFO : The item cube.kine.global.posx is active: false
//INFO : The item cube.kine.global.posy is active: false
//INFO : The item cube.kine.global.posz is active: false
|
/*
This example demonstrates how to get the type of the item.
*/
NewScene (null, false);
// Create a reference model from a cube
var oRoot = Application.ActiveProject.ActiveScene.Root;
var oCube = oRoot.AddGeometry("Cube","MeshSurface");
var emdlFileRefModel = XSIUtils.BuildPath(Application.InstallationPath(siProjectPath), "Models", "MyModel.emdl");
CreateModelAndConvertToRef(oCube, emdlFileRefModel );
// Add the Delta object
var oDelta = AddDelta(oCube.Model);
// Add an action of type siModificationDeltaStaticValue
var oDeltaAction = oDelta.AddAction(siModificationDeltaStaticValue)
// Add a static value item
oDeltaAction.AddStaticValueItem ( oCube + ".kine.global.posx", 10 );
// Get the first ActionDeltaItem in the first ActionDelta
var oActionDelta = oDelta.ActionDeltas(0);
// Print the type
Application.LogMessage(oActionDelta.Type);
// Output of above script:
//INFO : siModificationDeltaStaticValue
|