graphics/FBD_Objects.py
changeset 112 317148fc1225
parent 103 26c10e28ee3a
child 118 0c53d6a36013
equal deleted inserted replaced
111:0ec40799ba11 112:317148fc1225
    50         self.RefreshNameSize()
    50         self.RefreshNameSize()
    51         self.Colour = wx.BLACK
    51         self.Colour = wx.BLACK
    52         self.Pen = wx.BLACK_PEN
    52         self.Pen = wx.BLACK_PEN
    53         self.SetType(type, extension, inputs, connectors)
    53         self.SetType(type, extension, inputs, connectors)
    54     
    54     
       
    55     # Make a clone of this FBD_Block
       
    56     def Clone(self, id = None, name = "", pos = None):
       
    57         block = FBD_Block(self.Parent, self.Type, name, id, self.Extension)
       
    58         block.SetSize(self.Size[0], self.Size[1])
       
    59         if pos is not None:
       
    60             block.SetPosition(pos.x, pos.y)
       
    61         block.Inputs = [input.Clone(block) for input in self.Inputs]
       
    62         block.Outputs = [output.Clone(block) for output in self.Outputs]
       
    63         return block
       
    64     
    55     # Destructor
    65     # Destructor
    56     def __del__(self):
    66     def __del__(self):
    57         self.Inputs = []
    67         self.Inputs = []
    58         self.Outputs = []
    68         self.Outputs = []
    59     
    69     
   135             if position.x == self.Pos.x + output_pos.x and position.y == self.Pos.y + output_pos.y:
   145             if position.x == self.Pos.x + output_pos.x and position.y == self.Pos.y + output_pos.y:
   136                 return output
   146                 return output
   137         return None
   147         return None
   138     
   148     
   139     def GetInputTypes(self):
   149     def GetInputTypes(self):
   140         return tuple([input.GetType() for input in self.Inputs])
   150         return tuple([input.GetType(True) for input in self.Inputs])
   141     
   151     
   142     def SetOutputValues(self, values):
   152     def SetOutputValues(self, values):
   143         for output in self.Outputs:
   153         for output in self.Outputs:
   144             output.SetValue(values.get(ouput.getName(), None))
   154             output.SetValue(values.get(ouput.getName(), None))
   145     
   155     
   349         self.Input = None
   359         self.Input = None
   350         self.Output = None
   360         self.Output = None
   351         self.RefreshNameSize()
   361         self.RefreshNameSize()
   352         self.SetType(type, value_type)
   362         self.SetType(type, value_type)
   353     
   363     
       
   364     # Make a clone of this FBD_Variable
       
   365     def Clone(self, id = None, pos = None):
       
   366         variable = FBD_Variable(self.Parent, self.Type, self.Name, self.ValueType, id)
       
   367         variable.SetSize(self.Size[0], self.Size[1])
       
   368         if pos is not None:
       
   369             variable.SetPosition(pos.x, pos.y)
       
   370         variable.Input = self.Input.Clone(variable)
       
   371         variable.Output = self.Output.Clone(variable)
       
   372         return variable
       
   373     
   354     # Destructor
   374     # Destructor
   355     def __del__(self):
   375     def __del__(self):
   356         self.Input = None
   376         self.Input = None
   357         self.Output = None
   377         self.Output = None
   358     
   378     
   538         self.RefreshNameSize()
   558         self.RefreshNameSize()
   539     
   559     
   540     # Destructor
   560     # Destructor
   541     def __del__(self):
   561     def __del__(self):
   542         self.Connector = None
   562         self.Connector = None
       
   563     
       
   564     # Make a clone of this FBD_Connector
       
   565     def Clone(self, id = None, pos = None):
       
   566         connection = FBD_Connector(self.Parent, self.Type, self.Name, id)
       
   567         connection.SetSize(self.Size[0], self.Size[1])
       
   568         if pos is not None:
       
   569             connection.SetPosition(pos.x, pos.y)
       
   570         connection.Connector = self.Connector.Clone(connection)
       
   571         return connection
   543     
   572     
   544     # Unconnect connector
   573     # Unconnect connector
   545     def Clean(self):
   574     def Clean(self):
   546         if self.Connector:
   575         if self.Connector:
   547             self.Connector.UnConnect(delete = True)
   576             self.Connector.UnConnect(delete = True)