FUNCTION connected_in_simple_loop
(relation_1 : joint_logical_relationship, relation_2 : joint_logical_relationship) : BOOLEAN;
LOCAL next_jlr_in_loop_set : SET [1:?] OF joint_logical_relationship; END_LOCAL;
IF ((relation_1.loop:<>: relation_2.loop) OR (relation_1 :=: relation_2)) THEN RETURN (FALSE); ELSE IF (relation_1.next_joint_logical_structure :=: relation_2.previous_joint_logical_structure) THEN RETURN (TRUE); ELSE next_jlr_in_loop_set := QUERY (relation <* bag_to_set (USEDIN (relation_1.next_joint_logical_structure, 'KINEMATIC_STRUCTURE_SCHEMA.JOINT_LOGICAL_RELATIONSHIP.' + 'PREVIOUS_JOINT_LOGICAL_STRUCTURE')) | relation.loop :=: relation_1.loop); IF (SIZEOF(next_jlr_in_loop_set) <> 1) THEN RETURN (FALSE); ELSE RETURN (connected_in_simple_loop(next_jlr_in_loop_set [1], relation_2)); END_IF; END_IF; END_IF; END_FUNCTION; -- connected_in_simple_loop
|