Overview Schemas Index

KINEMATIC_STRUCTURE_SCHEMA (jsdai.SKinematic_structure_schema)


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

public class FConnected_in_simple_loop
          public static Value run(SdaiContext _context, Value relation_1, Value relation_2)