diff --git a/src/dynamic_graph/entity.py b/src/dynamic_graph/entity.py index 42edb39df789d9983f0241b85df7944bab1452ca..f3e7e12871dc53011c571c201cc7c5d92b9aac58 100644 --- a/src/dynamic_graph/entity.py +++ b/src/dynamic_graph/entity.py @@ -5,6 +5,32 @@ """ import wrap, signal_base +entityList = [] + +def initEntity(self, name): + """ + Common constructor of Entity classes + """ + Entity.__init__(self, self.class_name, name) + +def updateEntityClasses(): + entityTypeList = wrap.factory_get_entity_class_list() + for e in entityTypeList: + class metacls(type): + def __new__(mcs, name, bases, dict): + return type.__new__(mcs, name, bases, dict) + + # Create new class + a = metacls(e, (Entity,), {}) + # Store class name in class member + a.class_name = e + print ("new class %s"%e) + # set class constructor + setattr(a, '__init__', initEntity) + # Store new class in dictionary with class name + globals()[e] = a + + class Entity (object) : """ This class binds dynamicgraph::Entity C++ class