11__all__ = ["core" ,"entities" ,"geometries" ,"materials" ,"collision" ,"visual" ]
22
33import Sofa .Core
4+
45def __genericAdd (self : Sofa .Core .Node , typeName , ** kwargs ):
56 def findName (cname , names ):
67 """Compute a working unique name in the node"""
@@ -13,35 +14,32 @@ def findName(cname, names):
1314
1415 # Check if a name is provided, if not, use the one of the class
1516 params = kwargs .copy ()
16- isNode = False
17- if "name" not in params :
18- if isinstance (typeName , str ):
19- params ["name" ] = typeName
20- isNode = True
21- elif isinstance (typeName , type ) and issubclass (typeName , Sofa .Core .Node ):
22- params ["name" ] = "Node"
23- isNode = True
24- elif isinstance (typeName , Sofa .Core .Node ):
25- params ["name" ] = "Node"
26- isNode = True
27- elif isinstance (typeName , type ) and issubclass (typeName , Sofa .Core .Object ):
28- params ["name" ] = typeName .name .value
29- elif isinstance (typeName , type ) and issubclass (typeName , Sofa .Core .ObjectDeclaration ):
30- params ["name" ] = typeName .__name__
31- else :
32- raise RuntimeError ("Invalid argument " , typeName )
17+ # if "name" not in params:
18+ # if isinstance(typeName, str):
19+ # params["name"] = typeName
20+ # elif isinstance(typeName, type) and issubclass(typeName, Sofa.Core.Node):
21+ # params["name"] = typeName.__name__
22+ # elif isinstance(typeName, Sofa.Core.Node):
23+ # params["name"] = "Node"
24+ # elif isinstance(typeName, type) and issubclass(typeName, Sofa.Core.Object):
25+ # params["name"] = typeName.name.value
26+ # elif isinstance(typeName, type) and issubclass(typeName, Sofa.Core.ObjectDeclaration):
27+ # params["name"] = typeName.__name__
28+ # else:
29+ # raise RuntimeError("Invalid argument ", typeName)
3330
34- # Check if the name already exists, if this happens, create a new one.
35- if params ["name" ] in self .children or params ["name" ] in self .objects :
36- names = {node .name .value for node in self .children }
37- names = names .union ({object .name .value for object in self .objects })
38- params ["name" ] = findName (params ["name" ], names )
31+ # # Check if the name already exists, if this happens, create a new one.
32+ # if params["name"] in self.children or params["name"] in self.objects:
33+ # names = {node.name.value for node in self.children}
34+ # names = names.union({object.name.value for object in self.objects})
35+ # params["name"] = findName(params["name"], names)
3936
4037 # Dispatch the creation to either addObject or addChild
41- if isinstance (typeName , type ) and issubclass (typeName , Sofa .Core .Node ):
42- pref = self .addChild (typeName (params ["name" ]))
38+ if isinstance (typeName , type ) and issubclass (typeName , core .basePrefab .BasePrefab ):
39+ pref = self .addChild (typeName (** params ))
40+ pref .init ()
4341 elif isinstance (typeName , Sofa .Core .Node ):
44- pref = self .addChild (typeName )
42+ pref = self .addChild (typeName ( ** params ) )
4543 elif isinstance (typeName , type ) and issubclass (typeName , Sofa .Core .Object ):
4644 pref = self .addObject (typeName (** params ))
4745 elif isinstance (typeName , type ) and issubclass (typeName , Sofa .Core .ObjectDeclaration ):
0 commit comments