1212SofaRuntime .importPlugin ("Sofa.GL.Component" )
1313
1414def createScene (rootNode ):
15+
16+ rootNode .bbox = [[- 1 , - 1 , - 1 ],[1 ,1 ,1 ]]
17+
18+ rootNode .addObject ("RequiredPlugin" , pluginName = [ 'Sofa.Component.AnimationLoop' ,
19+ 'Sofa.Component.Collision.Detection.Algorithm' ,
20+ 'Sofa.Component.Collision.Detection.Intersection' ,
21+ 'Sofa.Component.Collision.Geometry' ,
22+ 'Sofa.Component.Collision.Response.Contact' ,
23+ 'Sofa.Component.Constraint.Lagrangian.Correction' ,
24+ 'Sofa.Component.Constraint.Lagrangian.Solver' ,
25+ 'Sofa.Component.IO.Mesh' ,
26+ 'Sofa.Component.LinearSolver.Iterative' ,
27+ 'Sofa.Component.Mapping.NonLinear' ,
28+ 'Sofa.Component.Mass' ,
29+ 'Sofa.Component.ODESolver.Backward' ,
30+ 'Sofa.Component.StateContainer' ,
31+ 'Sofa.Component.Topology.Container.Constant' ,
32+ 'Sofa.Component.Visual' ,
33+ 'Sofa.GL.Component.Rendering3D'
34+ ])
35+
1536 rootNode .addObject ("VisualGrid" , nbSubdiv = 10 , size = 1000 )
1637
1738 rootNode .findData ('gravity' ).value = [0.0 ,- 981.0 ,0.0 ];
@@ -24,12 +45,12 @@ def createScene(rootNode):
2445
2546 #Collision function
2647
27- rootNode .addObject ('DefaultPipeline ' )
48+ rootNode .addObject ('CollisionPipeline ' )
2849 rootNode .addObject ('FreeMotionAnimationLoop' )
2950 rootNode .addObject ('GenericConstraintSolver' , tolerance = "1e-6" , maxIterations = "1000" )
30- rootNode .addObject ('BruteForceDetection' )
31- rootNode .addObject ('RuleBasedContactManager ' , responseParams = "mu=" + str ( 0.0 ), name = 'Response' ,
32- response = 'FrictionContactConstraint' )
51+ rootNode .addObject ('BruteForceBroadPhase' , name = "BroadPhase" )
52+ rootNode .addObject ('BVHNarrowPhase ' , name = "NarrowPhase" )
53+ rootNode . addObject ( 'RuleBasedContactManager' , responseParams = "mu=" + str ( 0.0 ), name = 'Response' , response = 'FrictionContactConstraint' )
3354 rootNode .addObject ('LocalMinDistance' , alarmDistance = 10 , contactDistance = 5 , angleCone = 0.01 )
3455
3556 ### Mechanical model
@@ -46,7 +67,7 @@ def createScene(rootNode):
4667
4768 floor .addObject ('UniformMass' , name = "mass" , vertexMass = [totalMass , volume , inertiaMatrix [:]])
4869 floorCollis = floor .addChild ('collision' )
49- floorCollis .addObject ('MeshObjLoader ' , name = "loader" , filename = "mesh/floor.obj" ,
70+ floorCollis .addObject ('MeshOBJLoader ' , name = "loader" , filename = "mesh/floor.obj" ,
5071 triangulate = "true" , scale = 5.0 )
5172 floorCollis .addObject ('MeshTopology' , src = "@loader" )
5273 floorCollis .addObject ('MechanicalObject' )
@@ -58,7 +79,7 @@ def createScene(rootNode):
5879
5980 #### visualization
6081 floorVisu = floor .addChild ("VisualModel" )
61- floorVisu .loader = floorVisu .addObject ('MeshObjLoader ' , name = "loader" ,
82+ floorVisu .loader = floorVisu .addObject ('MeshOBJLoader ' , name = "loader" ,
6283 filename = "mesh/floor.obj" )
6384 floorVisu .addObject ('OglModel' , name = "model" , src = "@loader" , scale3d = [5.0 ]* 3 ,
6485 color = [1. , 1. , 0. ], updateNormals = False )
@@ -75,7 +96,7 @@ def createScene(rootNode):
7596 sphere .addObject ('CGLinearSolver' , name = 'Solver' , iterations = 25 , tolerance = 1e-5 , threshold = 1e-5 )
7697
7798 collision = sphere .addChild ('collision' )
78- collision .addObject ('MeshObjLoader ' , name = "loader" , filename = "mesh/ball.obj" ,
99+ collision .addObject ('MeshOBJLoader ' , name = "loader" , filename = "mesh/ball.obj" ,
79100 triangulate = "true" , scale = 45.0 )
80101
81102 collision .addObject ('MeshTopology' , src = "@loader" )
@@ -89,7 +110,7 @@ def createScene(rootNode):
89110
90111 #### visualization
91112 sphereVisu = sphere .addChild ("VisualModel" )
92- sphereVisu .loader = sphereVisu .addObject ('MeshObjLoader ' , name = "loader" ,
113+ sphereVisu .loader = sphereVisu .addObject ('MeshOBJLoader ' , name = "loader" ,
93114 filename = "mesh/ball.obj" )
94115 sphereVisu .addObject ('OglModel' , name = "model" , src = "@loader" , scale3d = [50 ]* 3 ,
95116 color = [0. , 1. , 0. ], updateNormals = False )
0 commit comments