--- a/graphics/SFC_Objects.py Thu Apr 21 15:15:57 2011 +0200
+++ b/graphics/SFC_Objects.py Thu Apr 21 16:06:33 2011 +0200
@@ -261,22 +261,17 @@
return self.Output
if self.Action and name == self.Action.GetName():
return self.Action
+ connectors = []
# Test input connector if it exists
if self.Input:
- input_pos = self.Input.GetRelPosition()
- if position.x == self.Pos.x + input_pos.x and position.y == self.Pos.y + input_pos.y:
- return self.Input
+ connectors.append(self.Input)
# Test output connector if it exists
if self.Output:
- output_pos = self.Output.GetRelPosition()
- if position.x == self.Pos.x + output_pos.x and position.y == self.Pos.y + output_pos.y:
- return self.Output
+ connectors.append(self.Output)
# Test action connector if it exists
if self.Action:
- action_pos = self.Action.GetRelPosition()
- if position.x == self.Pos.x + action_pos.x and position.y == self.Pos.y + action_pos.y:
- return self.Action
- return None
+ connectors.append(self.Action)
+ return self.FindNearestConnector(position, connectors)
# Returns action step connector
def GetActionConnector(self):
@@ -759,20 +754,10 @@
return self.Output
if self.Type == "connection" and name == self.Condition.GetName():
return self.Condition
- # Test input connector
- input_pos = self.Input.GetRelPosition()
- if position.x == self.Pos.x + input_pos.x and position.y == self.Pos.y + input_pos.y:
- return self.Input
- # Test output connector
- output_pos = self.Output.GetRelPosition()
- if position.x == self.Pos.x + output_pos.x and position.y == self.Pos.y + output_pos.y:
- return self.Output
+ connectors = [self.Input, self.Output]
if self.Type == "connection":
- # Test condition connector
- condition_pos = self.Condition.GetRelPosition()
- if position.x == self.Pos.x + condition_pos.x and position.y == self.Pos.y + condition_pos.y:
- return self.Condition
- return None
+ connectors.append(self.Connection)
+ return self.FindNearestConnector(position, connectors)
# Returns the transition condition connector
def GetConditionConnector(self):
@@ -1228,17 +1213,7 @@
for output in self.Outputs:
if name == output.GetName():
return output
- # Test input connector
- for input in self.Inputs:
- input_pos = input.GetPosition(False)
- if position.x == input_pos.x and position.y == input_pos.y:
- return input
- # Test output connector
- for output in self.Outputs:
- output_pos = output.GetPosition(False)
- if position.x == output_pos.x and position.y == output_pos.y:
- return output
- return None
+ return self.FindNearestConnector(position, self.Inputs + self.Outputs)
# Returns input and output divergence connectors
def GetConnectors(self):