diff --git a/bindings/Modules/tests/SofaDeformable/SpringForceField.py b/bindings/Modules/tests/SofaDeformable/SpringForceField.py index 052f335e5..20a71fb97 100644 --- a/bindings/Modules/tests/SofaDeformable/SpringForceField.py +++ b/bindings/Modules/tests/SofaDeformable/SpringForceField.py @@ -5,9 +5,9 @@ def create_scene(root): - root.addObject("RequiredPlugin", name="Sofa.Component.Topology.Container.Grid") - root.addObject("RequiredPlugin", name="Sofa.Component.StateContainer") - root.addObject("RequiredPlugin", name="Sofa.Component.SolidMechanics.Spring") + root.addObject("RequiredPlugin", pluginName="Sofa.Component.Topology.Container.Grid") + root.addObject("RequiredPlugin", pluginName="Sofa.Component.StateContainer") + root.addObject("RequiredPlugin", pluginName="Sofa.Component.SolidMechanics.Spring") # Create a simple plane having 3x3 nodes and a size of 3x3 on the yz plane centered on (-0.5,0,0). root.addChild('plane_1') diff --git a/bindings/Modules/tests/SofaLinearSolver/matrix_access.py b/bindings/Modules/tests/SofaLinearSolver/matrix_access.py index d69a0f9ce..8738b4ed5 100644 --- a/bindings/Modules/tests/SofaLinearSolver/matrix_access.py +++ b/bindings/Modules/tests/SofaLinearSolver/matrix_access.py @@ -9,12 +9,12 @@ def simulate_beam(self, linear_solver_template): loop = root.addObject('DefaultAnimationLoop') - root.addObject('RequiredPlugin', name='Sofa.Component.ODESolver.Backward') - root.addObject('RequiredPlugin', name='Sofa.Component.LinearSolver.Direct') - root.addObject('RequiredPlugin', name='Sofa.Component.Engine.Select') - root.addObject('RequiredPlugin', name='Sofa.Component.Constraint.Projective') - root.addObject('RequiredPlugin', name='Sofa.Component.SolidMechanics.FEM.Elastic') - root.addObject('RequiredPlugin', name='Sofa.Component.Mass') + root.addObject('RequiredPlugin', pluginName='Sofa.Component.ODESolver.Backward') + root.addObject('RequiredPlugin', pluginName='Sofa.Component.LinearSolver.Direct') + root.addObject('RequiredPlugin', pluginName='Sofa.Component.Engine.Select') + root.addObject('RequiredPlugin', pluginName='Sofa.Component.Constraint.Projective') + root.addObject('RequiredPlugin', pluginName='Sofa.Component.SolidMechanics.FEM.Elastic') + root.addObject('RequiredPlugin', pluginName='Sofa.Component.Mass') root.addObject('EulerImplicitSolver', rayleighStiffness="0.1", rayleighMass="0.1") linear_solver = root.addObject('SparseLDLSolver', name='linear_solver', template=linear_solver_template) diff --git a/bindings/Sofa/tests/Core/Base.py b/bindings/Sofa/tests/Core/Base.py index faf9446dc..8622140d8 100644 --- a/bindings/Sofa/tests/Core/Base.py +++ b/bindings/Sofa/tests/Core/Base.py @@ -5,7 +5,7 @@ def create_scene(rootName="root"): root = Sofa.Core.Node(rootName) - root.addObject("RequiredPlugin", name="Sofa.Component.StateContainer") + root.addObject("RequiredPlugin", pluginName="Sofa.Component.StateContainer") return root class Test(unittest.TestCase): diff --git a/bindings/Sofa/tests/Core/BaseData.py b/bindings/Sofa/tests/Core/BaseData.py index bd3cdf0f5..f4a797beb 100644 --- a/bindings/Sofa/tests/Core/BaseData.py +++ b/bindings/Sofa/tests/Core/BaseData.py @@ -93,7 +93,7 @@ def testValue(self, test): def create_scene(rootName="root"): root = Sofa.Core.Node(rootName) - root.addObject("RequiredPlugin", name="Sofa.Component.StateContainer") + root.addObject("RequiredPlugin", pluginName="Sofa.Component.StateContainer") return root class Test(unittest.TestCase): diff --git a/bindings/Sofa/tests/Core/BaseLink.py b/bindings/Sofa/tests/Core/BaseLink.py index fcdeb8e1b..df485408b 100644 --- a/bindings/Sofa/tests/Core/BaseLink.py +++ b/bindings/Sofa/tests/Core/BaseLink.py @@ -6,9 +6,9 @@ def create_scene(rootName="root"): root = Sofa.Core.Node(rootName) - root.addObject("RequiredPlugin", name="Sofa.Component.StateContainer") - root.addObject("RequiredPlugin", name="Sofa.Component.SolidMechanics.Spring") - root.addObject("RequiredPlugin", name="Sofa.Component.Mapping.Linear") + root.addObject("RequiredPlugin", pluginName="Sofa.Component.StateContainer") + root.addObject("RequiredPlugin", pluginName="Sofa.Component.SolidMechanics.Spring") + root.addObject("RequiredPlugin", pluginName="Sofa.Component.Mapping.Linear") return root class Test(unittest.TestCase): diff --git a/bindings/Sofa/tests/Core/BaseObject.py b/bindings/Sofa/tests/Core/BaseObject.py index d4edb4b5a..cfb936a0b 100644 --- a/bindings/Sofa/tests/Core/BaseObject.py +++ b/bindings/Sofa/tests/Core/BaseObject.py @@ -5,8 +5,8 @@ def create_scene(rootName="root"): root = Sofa.Core.Node(rootName) - root.addObject("RequiredPlugin", name="Sofa.Component.StateContainer") - root.addObject("RequiredPlugin", name="Sofa.Component.Topology.Container.Constant") + root.addObject("RequiredPlugin", pluginName="Sofa.Component.StateContainer") + root.addObject("RequiredPlugin", pluginName="Sofa.Component.Topology.Container.Constant") return root class Test(unittest.TestCase): diff --git a/bindings/Sofa/tests/Core/Events.py b/bindings/Sofa/tests/Core/Events.py index 2281f0280..55d234cf2 100644 --- a/bindings/Sofa/tests/Core/Events.py +++ b/bindings/Sofa/tests/Core/Events.py @@ -39,8 +39,8 @@ class Test(unittest.TestCase): def test_events(self): """Test the BuildConstraintSystem and SolveConstraintSystem events.""" node = Sofa.Core.Node("root") - node.addObject("RequiredPlugin", name="Sofa.Component.AnimationLoop") - node.addObject("RequiredPlugin", name="Sofa.Component.Constraint.Lagrangian.Solver") + node.addObject("RequiredPlugin", pluginName="Sofa.Component.AnimationLoop") + node.addObject("RequiredPlugin", pluginName="Sofa.Component.Constraint.Lagrangian.Solver") node.addObject("FreeMotionAnimationLoop", name="loop") node.addObject("BlockGaussSeidelConstraintSolver", name="constraintSolver") controller = node.addObject( MyController() ) diff --git a/bindings/Sofa/tests/Core/ForceField.py b/bindings/Sofa/tests/Core/ForceField.py index da429b64c..ba48b357c 100644 --- a/bindings/Sofa/tests/Core/ForceField.py +++ b/bindings/Sofa/tests/Core/ForceField.py @@ -42,10 +42,10 @@ def createParticle(node, node_name, use_implicit_scheme, use_iterative_solver): def rssffScene(use_implicit_scheme=True, use_iterative_solver=True): node = Sofa.Core.Node("root") node.addObject('DefaultAnimationLoop') - node.addObject("RequiredPlugin", name="Sofa.Component.StateContainer") - node.addObject("RequiredPlugin", name="Sofa.Component.LinearSolver") - node.addObject("RequiredPlugin", name="Sofa.Component.ODESolver") - node.addObject("RequiredPlugin", name="Sofa.Component.Mass") + node.addObject("RequiredPlugin", pluginName="Sofa.Component.StateContainer") + node.addObject("RequiredPlugin", pluginName="Sofa.Component.LinearSolver") + node.addObject("RequiredPlugin", pluginName="Sofa.Component.ODESolver") + node.addObject("RequiredPlugin", pluginName="Sofa.Component.Mass") node.gravity = [0, -10, 0] createParticle(node, "particle", use_implicit_scheme, use_iterative_solver) @@ -108,14 +108,14 @@ def simulate_beam(linear_solver_template): root.addObject('DefaultAnimationLoop') - root.addObject('RequiredPlugin', name='Sofa.Component.Constraint.Projective') - root.addObject('RequiredPlugin', name='Sofa.Component.Engine.Select') - root.addObject('RequiredPlugin', name='Sofa.Component.LinearSolver.Direct') - root.addObject('RequiredPlugin', name='Sofa.Component.Mass') - root.addObject('RequiredPlugin', name='Sofa.Component.ODESolver.Backward') - root.addObject('RequiredPlugin', name='Sofa.Component.SolidMechanics.FEM.Elastic') - root.addObject('RequiredPlugin', name='Sofa.Component.StateContainer') - root.addObject('RequiredPlugin', name='Sofa.Component.Topology.Container.Grid') + root.addObject('RequiredPlugin', pluginName='Sofa.Component.Constraint.Projective') + root.addObject('RequiredPlugin', pluginName='Sofa.Component.Engine.Select') + root.addObject('RequiredPlugin', pluginName='Sofa.Component.LinearSolver.Direct') + root.addObject('RequiredPlugin', pluginName='Sofa.Component.Mass') + root.addObject('RequiredPlugin', pluginName='Sofa.Component.ODESolver.Backward') + root.addObject('RequiredPlugin', pluginName='Sofa.Component.SolidMechanics.FEM.Elastic') + root.addObject('RequiredPlugin', pluginName='Sofa.Component.StateContainer') + root.addObject('RequiredPlugin', pluginName='Sofa.Component.Topology.Container.Grid') root.addObject('EulerImplicitSolver', rayleighStiffness="0.1", rayleighMass="0.1") root.addObject('SparseLDLSolver', template=linear_solver_template) diff --git a/bindings/Sofa/tests/Core/Mass.py b/bindings/Sofa/tests/Core/Mass.py index 5de8bb5a3..4255c1a5b 100644 --- a/bindings/Sofa/tests/Core/Mass.py +++ b/bindings/Sofa/tests/Core/Mass.py @@ -15,14 +15,14 @@ def simulate_beam(linear_solver_template): root.addObject('DefaultAnimationLoop') - root.addObject('RequiredPlugin', name='Sofa.Component.StateContainer') - root.addObject('RequiredPlugin', name='Sofa.Component.ODESolver.Backward') - root.addObject('RequiredPlugin', name='Sofa.Component.LinearSolver.Direct') - root.addObject('RequiredPlugin', name='Sofa.Component.Engine.Select') - root.addObject('RequiredPlugin', name='Sofa.Component.Constraint.Projective') - root.addObject('RequiredPlugin', name='Sofa.Component.SolidMechanics.FEM.Elastic') - root.addObject('RequiredPlugin', name='Sofa.Component.Mass') - root.addObject('RequiredPlugin', name='Sofa.Component.Topology.Container.Grid') + root.addObject('RequiredPlugin', pluginName='Sofa.Component.StateContainer') + root.addObject('RequiredPlugin', pluginName='Sofa.Component.ODESolver.Backward') + root.addObject('RequiredPlugin', pluginName='Sofa.Component.LinearSolver.Direct') + root.addObject('RequiredPlugin', pluginName='Sofa.Component.Engine.Select') + root.addObject('RequiredPlugin', pluginName='Sofa.Component.Constraint.Projective') + root.addObject('RequiredPlugin', pluginName='Sofa.Component.SolidMechanics.FEM.Elastic') + root.addObject('RequiredPlugin', pluginName='Sofa.Component.Mass') + root.addObject('RequiredPlugin', pluginName='Sofa.Component.Topology.Container.Grid') root.addObject('EulerImplicitSolver', rayleighStiffness="0.1", rayleighMass="0.1") root.addObject('SparseLDLSolver', template=linear_solver_template) diff --git a/bindings/Sofa/tests/Simulation/Node.py b/bindings/Sofa/tests/Simulation/Node.py index 57d5e4b18..b3ca553d6 100644 --- a/bindings/Sofa/tests/Simulation/Node.py +++ b/bindings/Sofa/tests/Simulation/Node.py @@ -41,7 +41,7 @@ def test_kwargs_constructor(self): def test_GetAttr(self): root = Sofa.Core.Node("rootNode") - root.addObject("RequiredPlugin", name="Sofa.Component.StateContainer") + root.addObject("RequiredPlugin", pluginName="Sofa.Component.StateContainer", name="Sofa.Component.StateContainer") c = root.addChild("child1") self.assertTrue(c is not None) self.assertTrue(root.child1 is not None) @@ -52,7 +52,7 @@ def test_GetAttr(self): def test_init(self): root = Sofa.Core.Node("rootNode") - root.addObject("RequiredPlugin", name="Sofa.Component.StateContainer") + root.addObject("RequiredPlugin", pluginName="Sofa.Component.StateContainer") c = root.addChild("child1") c = c.addObject("MechanicalObject", name="MO", position=[0.0,1.0,2.0]*100) root.init() @@ -94,7 +94,7 @@ def test_removeChild(self): def test_createObjectWithParam(self): root = Sofa.Core.Node("rootNode") - root.addObject("RequiredPlugin", name="Sofa.Component.StateContainer") + root.addObject("RequiredPlugin", pluginName="Sofa.Component.StateContainer") root.addObject("MechanicalObject", name="mechanical", position=[[0,0,0],[1,1,1],[2,2,2]]) def test_children_property(self): @@ -124,7 +124,7 @@ def test_parents_property(self): def test_objects_property(self): root = Sofa.Core.Node("rootNode") - root.addObject("RequiredPlugin", name="Sofa.Component.StateContainer") + root.addObject("RequiredPlugin", pluginName="Sofa.Component.StateContainer") child = root.addChild(Sofa.Core.Node("child1")) child.addObject("MechanicalObject", name="name1") child.addObject("MechanicalObject", name="name2") @@ -134,7 +134,7 @@ def test_objects_property(self): def test_objects_property_contains_method(self): root = Sofa.Core.Node("rootNode") - root.addObject("RequiredPlugin", name="Sofa.Component.StateContainer") + root.addObject("RequiredPlugin", pluginName="Sofa.Component.StateContainer") child = root.addChild(Sofa.Core.Node("child1")) child.addObject("MechanicalObject", name="name1") child.addObject("MechanicalObject", name="name2") @@ -146,7 +146,7 @@ def test_objects_property_contains_method(self): def test_objects_property_remove_at_method(self): root = Sofa.Core.Node("rootNode") - root.addObject("RequiredPlugin", name="Sofa.Component.StateContainer") + root.addObject("RequiredPlugin", pluginName="Sofa.Component.StateContainer") child = root.addChild(Sofa.Core.Node("child1")) child.addObject("MechanicalObject", name="name1") child.addObject("MechanicalObject", name="name2") @@ -166,7 +166,7 @@ def test_data_property(self): def test_getItem(self): root = Sofa.Core.Node("root") - root.addObject("RequiredPlugin", name="Sofa.Component.StateContainer") + root.addObject("RequiredPlugin", pluginName="Sofa.Component.StateContainer") node1 = root.addChild('node1') object1 = root.addObject("MechanicalObject", name="object1") node2 = node1.addChild('node2') @@ -208,20 +208,20 @@ def test_getLink(self): def test_hasObjectWithFastPath(self): root = Sofa.Core.Node("root") - root.addObject("RequiredPlugin", name="Sofa.Component.StateContainer") + root.addObject("RequiredPlugin", pluginName="Sofa.Component.StateContainer", name="Sofa.Component.StateContainer") self.assertTrue(root.hasObject("Sofa.Component.StateContainer")) self.assertFalse(root.hasObject("NonExistingObjectName")) def test_hasObjectWithDefaultPythonFunction(self): root = Sofa.Core.Node("root") - root.addObject("RequiredPlugin", name="Sofa.Component.StateContainer") + root.addObject("RequiredPlugin", pluginName="Sofa.Component.StateContainer", name="Sofa.Component.StateContainer") self.assertTrue(hasattr(root, "Sofa.Component.StateContainer")) self.assertFalse(hasattr(root, "NonExistingObjectName")) def test_removeObject(self): root = Sofa.Core.Node("root") - root.addObject("RequiredPlugin", name="Sofa.Component.StateContainer") + root.addObject("RequiredPlugin", pluginName="Sofa.Component.StateContainer") child = root.addChild(Sofa.Core.Node("child1")) obj1 = child.addObject("MechanicalObject", name="obj1") @@ -271,29 +271,29 @@ def test_detachFromGraph(self): def test_getMass(self): root = Sofa.Core.Node("root") - root.addObject("RequiredPlugin", name="Sofa.Component.StateContainer") + root.addObject("RequiredPlugin", pluginName="Sofa.Component.StateContainer") root.addObject("MechanicalObject") m = root.addObject("UniformMass", name="mass", vertexMass=0.1) self.assertEqual(m,root.getMass()) def test_getForceField(self): root = Sofa.Core.Node("root") - root.addObject("RequiredPlugin", name="Sofa.Component.MechanicalLoad") - root.addObject("RequiredPlugin", name="Sofa.Component.StateContainer") + root.addObject("RequiredPlugin", pluginName="Sofa.Component.MechanicalLoad") + root.addObject("RequiredPlugin", pluginName="Sofa.Component.StateContainer") root.addObject("MechanicalObject") ff = root.addObject('ConstantForceField', template="Vec3d", name="cff2") self.assertEqual(ff, root.getForceField(0)) def test_getMechanicalState(self): root = Sofa.Core.Node("root") - root.addObject("RequiredPlugin", name="Sofa.Component.StateContainer") + root.addObject("RequiredPlugin", pluginName="Sofa.Component.StateContainer") c = root.addObject("MechanicalObject") self.assertEqual(c, root.getMechanicalState()) def test_getMechanicalMapping(self): root = Sofa.Core.Node("root") - root.addObject("RequiredPlugin", name="Sofa.Component.StateContainer") - root.addObject("RequiredPlugin", name="Sofa.Component.Mapping.Linear") + root.addObject("RequiredPlugin", pluginName="Sofa.Component.StateContainer") + root.addObject("RequiredPlugin", pluginName="Sofa.Component.Mapping.Linear") root.addObject("MechanicalObject", name="t1") root.addObject("MechanicalObject", name="t2") mm = root.addObject("BarycentricMapping", input="@/t1", output="@/t2") diff --git a/bindings/Sofa/tests/Types/Vec3.py b/bindings/Sofa/tests/Types/Vec3.py index e2064c029..851029218 100644 --- a/bindings/Sofa/tests/Types/Vec3.py +++ b/bindings/Sofa/tests/Types/Vec3.py @@ -5,7 +5,7 @@ def create_scene(rootName="root"): root = Sofa.Core.Node(rootName) - root.addObject("RequiredPlugin", name="Sofa.Component.StateContainer") + root.addObject("RequiredPlugin", pluginName="Sofa.Component.StateContainer") return root class Test(unittest.TestCase): diff --git a/bindings/Sofa/tests/bench_datacontainer.py b/bindings/Sofa/tests/bench_datacontainer.py index 5da558422..64cfc838b 100644 --- a/bindings/Sofa/tests/bench_datacontainer.py +++ b/bindings/Sofa/tests/bench_datacontainer.py @@ -9,7 +9,7 @@ rawcpy = numpy.zeros((1000000,3), dtype=numpy.float64) root = Sofa.Core.Node("root") -root.addObject("RequiredPlugin", name="Sofa.Component.StateContainer") +root.addObject("RequiredPlugin", pluginName="Sofa.Component.StateContainer") obj = root.createObject("MechanicalObject", name="test", position=rawcpy.tolist()) it=10 diff --git a/bindings/Sofa/tests/benchmark.py b/bindings/Sofa/tests/benchmark.py index fca8e5581..e2aa42b58 100644 --- a/bindings/Sofa/tests/benchmark.py +++ b/bindings/Sofa/tests/benchmark.py @@ -15,7 +15,7 @@ aList = rawcpy.tolist() root = Sofa.Core.Node("root") -root.addObject("RequiredPlugin", name="Sofa.Component.StateContainer") +root.addObject("RequiredPlugin", pluginName="Sofa.Component.StateContainer") obj = root.createObject("MechanicalObject", name="test", position=aList) obj.position = aList diff --git a/bindings/Sofa/tests/dataaccess.py b/bindings/Sofa/tests/dataaccess.py index 7b6dd48b9..5fd1cf046 100644 --- a/bindings/Sofa/tests/dataaccess.py +++ b/bindings/Sofa/tests/dataaccess.py @@ -20,7 +20,7 @@ def oldSofa(obj): aList = zeros.tolist() root = Sofa.Core.Node("root") -root.addObject("RequiredPlugin", name="Sofa.Component.StateContainer") +root.addObject("RequiredPlugin", pluginName="Sofa.Component.StateContainer") obj = root.createObject("MechanicalObject", name="test", position=aList) print("A counter: ", obj.position.getCounter()) obj.position += ones diff --git a/examples/access_energy.py b/examples/access_energy.py index 07fe88e8d..1c80b3a81 100644 --- a/examples/access_energy.py +++ b/examples/access_energy.py @@ -5,28 +5,28 @@ def createScene(rootNode, dt=0.01, m=1, g=1, L=100, mu=0): # rootNode - rootNode.addObject('RequiredPlugin', name='Sofa.Component.Collision.Detection.Algorithm') - rootNode.addObject('RequiredPlugin', name='Sofa.Component.Collision.Detection.Intersection') - rootNode.addObject('RequiredPlugin', name='Sofa.Component.Collision.Geometry') - rootNode.addObject('RequiredPlugin', name='Sofa.Component.Collision.Response.Contact') - rootNode.addObject('RequiredPlugin', name='Sofa.Component.IO.Mesh') - rootNode.addObject('RequiredPlugin', name='Sofa.Component.LinearSolver.Iterative') - rootNode.addObject('RequiredPlugin', name='Sofa.Component.Mapping.Linear') - rootNode.addObject('RequiredPlugin', name='Sofa.Component.Mass') - rootNode.addObject('RequiredPlugin', name='Sofa.Component.ODESolver.Backward') - rootNode.addObject('RequiredPlugin', name='Sofa.Component.SolidMechanics.Spring') - rootNode.addObject('RequiredPlugin', name='Sofa.Component.StateContainer') - rootNode.addObject('RequiredPlugin', name='Sofa.Component.Topology.Container.Constant') - rootNode.addObject('RequiredPlugin', name='Sofa.Component.Topology.Container.Grid') - rootNode.addObject('RequiredPlugin', name='Sofa.GL.Component.Rendering3D') - rootNode.addObject('RequiredPlugin', name='Sofa.Component.AnimationLoop') - rootNode.addObject('RequiredPlugin', name='Sofa.Component.Constraint.Lagrangian.Correction') - rootNode.addObject('RequiredPlugin', name='Sofa.Component.LinearSolver.Direct') - rootNode.addObject('RequiredPlugin', name='Sofa.Component.Mapping.NonLinear') - rootNode.addObject('RequiredPlugin', name='Sofa.Component.Topology.Container.Dynamic') - rootNode.addObject('RequiredPlugin', name='Sofa.Component.Constraint.Lagrangian.Solver') # Needed to Use components [GenericConstraintSolver] - rootNode.addObject('RequiredPlugin', name='Sofa.Component.LinearSystem') # Needed to Use components [MatrixLinearSystem] - rootNode.addObject('RequiredPlugin', name='MultiThreading') # Needed to Use components [ParallelBVHNarrowPhase,ParallelBruteForceBroadPhase] + rootNode.addObject('RequiredPlugin', pluginName='Sofa.Component.Collision.Detection.Algorithm') + rootNode.addObject('RequiredPlugin', pluginName='Sofa.Component.Collision.Detection.Intersection') + rootNode.addObject('RequiredPlugin', pluginName='Sofa.Component.Collision.Geometry') + rootNode.addObject('RequiredPlugin', pluginName='Sofa.Component.Collision.Response.Contact') + rootNode.addObject('RequiredPlugin', pluginName='Sofa.Component.IO.Mesh') + rootNode.addObject('RequiredPlugin', pluginName='Sofa.Component.LinearSolver.Iterative') + rootNode.addObject('RequiredPlugin', pluginName='Sofa.Component.Mapping.Linear') + rootNode.addObject('RequiredPlugin', pluginName='Sofa.Component.Mass') + rootNode.addObject('RequiredPlugin', pluginName='Sofa.Component.ODESolver.Backward') + rootNode.addObject('RequiredPlugin', pluginName='Sofa.Component.SolidMechanics.Spring') + rootNode.addObject('RequiredPlugin', pluginName='Sofa.Component.StateContainer') + rootNode.addObject('RequiredPlugin', pluginName='Sofa.Component.Topology.Container.Constant') + rootNode.addObject('RequiredPlugin', pluginName='Sofa.Component.Topology.Container.Grid') + rootNode.addObject('RequiredPlugin', pluginName='Sofa.GL.Component.Rendering3D') + rootNode.addObject('RequiredPlugin', pluginName='Sofa.Component.AnimationLoop') + rootNode.addObject('RequiredPlugin', pluginName='Sofa.Component.Constraint.Lagrangian.Correction') + rootNode.addObject('RequiredPlugin', pluginName='Sofa.Component.LinearSolver.Direct') + rootNode.addObject('RequiredPlugin', pluginName='Sofa.Component.Mapping.NonLinear') + rootNode.addObject('RequiredPlugin', pluginName='Sofa.Component.Topology.Container.Dynamic') + rootNode.addObject('RequiredPlugin', pluginName='Sofa.Component.Constraint.Lagrangian.Solver') # Needed to Use components [GenericConstraintSolver] + rootNode.addObject('RequiredPlugin', pluginName='Sofa.Component.LinearSystem') # Needed to Use components [MatrixLinearSystem] + rootNode.addObject('RequiredPlugin', pluginName='MultiThreading') # Needed to Use components [ParallelBVHNarrowPhase,ParallelBruteForceBroadPhase] rootNode.addObject('FreeMotionAnimationLoop') rootNode.addObject('CollisionPipeline', verbose='0', depth='10', draw='0')