@@ -586,7 +586,7 @@ def step(self, dt: float) -> None:
586586
587587 self ._post_step_callbacks .clear ()
588588
589- def set_collision_callback (
589+ def on_collision (
590590 self ,
591591 collision_type_a : Optional [int ] = None ,
592592 collision_type_b : Optional [int ] = None ,
@@ -643,38 +643,31 @@ def set_collision_callback(
643643 else :
644644 ch = self ._handlers [key ]
645645
646- if begin == Space .do_nothing :
646+ # to avoid circular dep
647+ from . import empty_callback
648+
649+ if begin == empty_callback :
647650 ch .begin = None
648651 elif begin != None :
649652 ch .begin = begin
650653 ch .data ["begin" ] = data
651- if pre_solve == Space . do_nothing :
654+ if pre_solve == empty_callback :
652655 ch .pre_solve = None
653656 elif pre_solve != None :
654657 ch .pre_solve = pre_solve
655658 ch .data ["pre_solve" ] = data
656- if post_solve == Space . do_nothing :
659+ if post_solve == empty_callback :
657660 ch .post_solve = None
658661 elif post_solve != None :
659662 ch .post_solve = post_solve
660663 ch .data ["post_solve" ] = data
661- if separate == Space . do_nothing :
664+ if separate == empty_callback :
662665 ch .separate = None
663666 elif separate != None :
664667 ch .separate = separate
665668 ch .data ["separate" ] = data
666669 return
667670
668- @staticmethod
669- def do_nothing (arbiter : Arbiter , space : "Space" , data : Any ) -> None :
670- """The default do nothing method used for the collision callbacks.
671-
672- Can be used to reset a collsion callback to its original do nothing
673- function. Note that its more efficient to use this method than to
674- define your own do nothing method.
675- """
676- return
677-
678671 def add_post_step_callback (
679672 self ,
680673 callback_function : Callable [
@@ -989,16 +982,19 @@ def __getstate__(self) -> _State:
989982 d ["special" ].append (("shapes" , list (self .shapes )))
990983 d ["special" ].append (("constraints" , list (self .constraints )))
991984
985+ # to avoid circular dep
986+ from . import empty_callback
987+
992988 handlers = []
993989 for k , v in self ._handlers .items ():
994990 h : dict [str , Any ] = {}
995- if v ._begin != Space . do_nothing :
991+ if v ._begin != empty_callback :
996992 h ["_begin" ] = v ._begin
997- if v ._pre_solve != Space . do_nothing :
993+ if v ._pre_solve != empty_callback :
998994 h ["_pre_solve" ] = v ._pre_solve
999- if v ._post_solve != Space . do_nothing :
995+ if v ._post_solve != empty_callback :
1000996 h ["_post_solve" ] = v ._post_solve
1001- if v ._separate != Space . do_nothing :
997+ if v ._separate != empty_callback :
1002998 h ["_separate" ] = v ._separate
1003999 handlers .append ((k , h ))
10041000
@@ -1061,7 +1057,7 @@ def __setstate__(self, state: _State) -> None:
10611057 if "_separate" in hd :
10621058 separate = hd ["_separate" ]
10631059 if k2 == None :
1064- self .set_collision_callback (
1060+ self .on_collision (
10651061 None ,
10661062 None ,
10671063 begin = begin ,
@@ -1070,7 +1066,7 @@ def __setstate__(self, state: _State) -> None:
10701066 separate = separate ,
10711067 )
10721068 elif isinstance (k2 , tuple ):
1073- self .set_collision_callback (
1069+ self .on_collision (
10741070 k2 [0 ],
10751071 k2 [1 ],
10761072 begin = begin ,
@@ -1079,7 +1075,7 @@ def __setstate__(self, state: _State) -> None:
10791075 separate = separate ,
10801076 )
10811077 else :
1082- self .set_collision_callback (
1078+ self .on_collision (
10831079 k2 ,
10841080 None ,
10851081 begin = begin ,
0 commit comments