ChangeEnvironment DynamicsOperator

Introduced

5.0

Description

Changes the rigid body dynamics engine (from physX to ODE or vice-versa) for the specified environment.

Scripting Syntax

    ChangeEnvironmentDynamicsOperator( [InputEnvironment], [DynamicsEngine] )

Parameters

Parameter | Type | Description
InputEnvironment | SimulationEnvironment | Environment for which we want to change the rigid body dynamics engine Default Value: Current active environment
DynamicsEngine | siRBDEngine | The dynamics engine to which you want to switch the specified environment Default Value: siPhysXEngine

Examples

JScript Example

    /*
       This example illustrates how to create a simple RigidBody simulation
       and then switch the dynamics engine
    */
    var oCone = ActiveSceneRoot.AddGeometry("cone","MeshSurface");
    var oModel = ActiveSceneRoot.AddModel();
    oModel.Name = "Model";
    var oGrid = oModel.AddGeometry("grid","MeshSurface");
    // Move the cone
    oCone.posy.value = 6.0;

    // Modify the grid
    oGrid.ulength.value = 24;
    oGrid.vlength.value = 24;
    oGrid.subdivu.value = 24;
    oGrid.subdivv.value = 24;

    // The following line creates the SimulationEnvironment object.
    CreatePassiveRigidBody( oGrid );
    CreateActiveRigidBody( oCone );
    CreateForce( "Gravity" );

    var oEnvironment = ActiveProject.ActiveScene.ActiveSimulationEnvironment;

    // Switch the rigid body dynamics engine to PhyX by NVIDIA
    ChangeEnvironmentDynamicsOperator(  oEnvironment, siPhysXEngine);
    // Results of running this script:
    //  * If the currently used engine is the same as the one specified in
    //    the command, there is no output.
    //  * Otherwise the following output will be echoed (as appropriate):
    //    //INFO : Switched to physX
    //    or
    //    //INFO : Switched to ODE

    // Simulate
    for(i =0 ; i < 100 ; i++)
    {
       NextFrame();
       Refresh();
    }

    // Switch the rigid body dynamics engine to ODE
    ChangeEnvironmentDynamicsOperator( oEnvironment, siOpenDynamicsEngine);

    // Simulate again
    FirstFrame();
    Refresh();
    for(i =0 ; i < 100 ; i++)
    {
       NextFrame();
       Refresh();
    }

See Also

CreateActiveRigidBody | CreatePassiveRigidBody | RemoveRigidBody | AttachRigidBodies

Autodesk Softimage v7.5