@@ -22,10 +22,12 @@ def checkName(context : Sofa.Core.Node, name):
2222 name = findName (name , names )
2323 return name
2424
25+ def is_prefab (typeSpecifier ):
26+ return isinstance (typeSpecifier , type ) and issubclass (typeSpecifier , BasePrefab )
2527
2628 # Check if a name is provided, if not, use the one of the class
2729 params = kwargs .copy ()
28- if isinstance (typeName , type ) and issubclass ( typeName , BasePrefab ): #Only for prefabs
30+ if is_prefab (typeName ): #Only for prefabs
2931 if len (params .keys ()) > 1 or (len (params .keys ()) == 1 and "parameters" not in params ):
3032 raise RuntimeError ("Invalid argument, a prefab takes only the \" parameters\" kwargs as input" )
3133
@@ -43,13 +45,13 @@ def checkName(context : Sofa.Core.Node, name):
4345 else :
4446 raise RuntimeError ("Invalid argument " , typeName )
4547
46- if isinstance (typeName , type ) and issubclass ( typeName , BasePrefab ) and len (params .keys ()) == 1 :
48+ if is_prefab (typeName ) and len (params .keys ()) == 1 :
4749 params ["parameters" ].name = checkName (self , params ["parameters" ].name )
4850 else :
4951 params ["name" ] = checkName (self , params ["name" ])
5052
5153 # Dispatch the creation to either addObject or addChild
52- if isinstance (typeName , type ) and issubclass ( typeName , BasePrefab ):
54+ if is_prefab (typeName ):
5355 pref = self .addChild (typeName (** params ))
5456 pref .init ()
5557 elif isinstance (typeName , Sofa .Core .Node ):
0 commit comments