@@ -203,6 +203,28 @@ def test_managed_collisions(self):
203203 manager1 .collide (manager3 , cdata , fcl .defaultCollisionCallback )
204204 self .assertTrue (cdata .result .is_collision )
205205
206+ def test_updates (self ):
207+ manager = fcl .DynamicAABBTreeCollisionManager ()
208+
209+ objs = [fcl .CollisionObject (self .geometry ['sphere' ]),
210+ fcl .CollisionObject (self .geometry ['sphere' ], fcl .Transform (np .array ([0.0 , 0.0 , - 5.0 ])))]
211+
212+ manager .registerObjects (objs )
213+ manager .setup ()
214+
215+ self .assertTrue (len (manager .getObjects ()) == 2 )
216+
217+ # Many-to-many, internal
218+ cdata = fcl .CollisionData (self .crequest , fcl .CollisionResult ())
219+ manager .collide (cdata , fcl .defaultCollisionCallback )
220+ self .assertFalse (cdata .result .is_collision )
221+
222+ objs [1 ].setTranslation (np .array ([0.0 , 0.0 , - 0.3 ]))
223+ cdata = fcl .CollisionData (self .crequest , fcl .CollisionResult ())
224+ manager .update (objs [1 ])
225+ manager .collide (cdata , fcl .defaultCollisionCallback )
226+ self .assertTrue (cdata .result .is_collision )
227+
206228 def test_managed_distances (self ):
207229 manager1 = fcl .DynamicAABBTreeCollisionManager ()
208230 manager2 = fcl .DynamicAABBTreeCollisionManager ()
0 commit comments