graphics/SFC_Objects.py
changeset 162 e746ff4aa8be
parent 154 203c4acdaf27
child 165 e464a4e4e06d
equal deleted inserted replaced
161:6af49f77fa2b 162:e746ff4aa8be
    63         self.Input = None
    63         self.Input = None
    64         self.Output = None
    64         self.Output = None
    65         self.Action = None
    65         self.Action = None
    66     
    66     
    67     # Make a clone of this SFC_Step
    67     # Make a clone of this SFC_Step
    68     def Clone(self, id = None, name = "Step", pos = None):
    68     def Clone(self, parent, id = None, name = "Step", pos = None):
    69         step = SFC_Step(self.Parent, name, self.Initial, id)
    69         step = SFC_Step(parent, name, self.Initial, id)
    70         step.SetSize(self.Size[0], self.Size[1])
    70         step.SetSize(self.Size[0], self.Size[1])
    71         if pos is not None:
    71         if pos is not None:
    72             step.SetPosition(pos.x, pos.y)
    72             step.SetPosition(pos.x, pos.y)
    73         if self.Input:
    73         if self.Input:
    74             step.Input = self.Input.Clone(step)
    74             step.Input = self.Input.Clone(step)
   507         self.Output = None
   507         self.Output = None
   508         if self.Type == "connection":
   508         if self.Type == "connection":
   509             self.Condition = None
   509             self.Condition = None
   510     
   510     
   511     # Make a clone of this SFC_Transition
   511     # Make a clone of this SFC_Transition
   512     def Clone(self, id = None, pos = None):
   512     def Clone(self, parent, id = None, pos = None):
   513         transition = SFC_Transition(self.Parent, self.Type, self.Condition, self.Priority, id)
   513         transition = SFC_Transition(parent, self.Type, self.Condition, self.Priority, id)
   514         transition.SetSize(self.Size[0], self.Size[1])
   514         transition.SetSize(self.Size[0], self.Size[1])
   515         if pos is not None:
   515         if pos is not None:
   516             transition.SetPosition(pos.x, pos.y)
   516             transition.SetPosition(pos.x, pos.y)
   517         transition.Input = self.Input.Clone(transition)
   517         transition.Input = self.Input.Clone(transition)
   518         transition.Output = self.Output.Clone(transition)
   518         transition.Output = self.Output.Clone(transition)
   876     def __del__(self):
   876     def __del__(self):
   877         self.Inputs = []
   877         self.Inputs = []
   878         self.Outputs = []
   878         self.Outputs = []
   879     
   879     
   880     # Make a clone of this SFC_Divergence
   880     # Make a clone of this SFC_Divergence
   881     def Clone(self, id = None, pos = None):
   881     def Clone(self, parent, id = None, pos = None):
   882         divergence = SFC_Divergence(self.Parent, self.Type, max(len(self.Inputs), len(self.Outputs)), id)
   882         divergence = SFC_Divergence(parent, self.Type, max(len(self.Inputs), len(self.Outputs)), id)
   883         divergence.SetSize(self.Size[0], self.Size[1])
   883         divergence.SetSize(self.Size[0], self.Size[1])
   884         if pos is not None:
   884         if pos is not None:
   885             divergence.SetPosition(pos.x, pos.y)
   885             divergence.SetPosition(pos.x, pos.y)
   886         divergence.Inputs = [input.Clone(divergence) for input in self.Inputs]
   886         divergence.Inputs = [input.Clone(divergence) for input in self.Inputs]
   887         divergence.Outputs = [output.Clone(divergence) for output in self.Outputs]
   887         divergence.Outputs = [output.Clone(divergence) for output in self.Outputs]
  1290     # Destructor
  1290     # Destructor
  1291     def __del__(self):
  1291     def __del__(self):
  1292         self.Input = None
  1292         self.Input = None
  1293     
  1293     
  1294     # Make a clone of this SFC_Jump
  1294     # Make a clone of this SFC_Jump
  1295     def Clone(self, id = None, pos = None):
  1295     def Clone(self, parent, id = None, pos = None):
  1296         jump = SFC_Jump(self.Parent, self.Target, id)
  1296         jump = SFC_Jump(parent, self.Target, id)
  1297         jump.SetSize(self.Size[0], self.Size[1])
  1297         jump.SetSize(self.Size[0], self.Size[1])
  1298         if pos is not None:
  1298         if pos is not None:
  1299             jump.SetPosition(pos.x, pos.y)
  1299             jump.SetPosition(pos.x, pos.y)
  1300         jump.Input = self.Input.Clone(jump)
  1300         jump.Input = self.Input.Clone(jump)
  1301         return jump
  1301         return jump
  1499     # Destructor
  1499     # Destructor
  1500     def __del__(self):
  1500     def __del__(self):
  1501         self.Input = None
  1501         self.Input = None
  1502     
  1502     
  1503     # Make a clone of this SFC_ActionBlock
  1503     # Make a clone of this SFC_ActionBlock
  1504     def Clone(self, id = None, pos = None):
  1504     def Clone(self, parent, id = None, pos = None):
  1505         actions = [action.copy() for action in self.Actions]
  1505         actions = [action.copy() for action in self.Actions]
  1506         action_block = SFC_ActionBlock(self.Parent, actions, id)
  1506         action_block = SFC_ActionBlock(parent, actions, id)
  1507         action_block.SetSize(self.Size[0], self.Size[1])
  1507         action_block.SetSize(self.Size[0], self.Size[1])
  1508         if pos is not None:
  1508         if pos is not None:
  1509             action_block.SetPosition(pos.x, pos.y)
  1509             action_block.SetPosition(pos.x, pos.y)
  1510         action_block.Input = self.Input.Clone(action_block)
  1510         action_block.Input = self.Input.Clone(action_block)
  1511         return action_block
  1511         return action_block