FUNCTION check_continuous_edges
(* SCHEMA Ap210_electronic_assembly_interconnect_and_packaging_design_mim_lf; *)
FUNCTION check_continuous_edges
(edges: LIST [0:?] OF UNIQUE edge_curve) : BOOLEAN;
LOCAL
i : INTEGER;
next_vertex : vertex;
END_LOCAL;
-- first check whether there is only one edge in the list: in this
-- case there is no connectivity to be checked.
IF (SIZEOF(edges) = 1)
THEN RETURN(TRUE);
END_IF;
-- otherwise, establish the matching vertices of edges 1 and 2 in
-- the list, and determine the vertex of edge 2 to which edge 3,
-- must be connected, if there are more than two edges in the list.
IF ((edges[2].edge_start :=: edges[1].edge_end)
XOR (edges[2].edge_start :=: edges[1].edge_start))
THEN next_vertex := edges[2].edge_end;
ELSE
IF ((edges[2].edge_end :=: edges[1].edge_end)
XOR (edges[2].edge_end :=: edges[1].edge_start))
THEN next_vertex := edges[2].edge_start;
ELSE RETURN(FALSE); -- no match between any vertices of edges 1 and 2
END_IF;
END_IF;
-- exit if there are only two edges and they are connected
IF (SIZEOF(edges) = 2)
THEN RETURN(TRUE);
END_IF;
-- otherwise, check that any remaining edges are connected in list order.
REPEAT i := 3 TO HIINDEX(edges);
IF (edges[i].edge_start :=: next_vertex)
THEN next_vertex := edges[i].edge_end;
ELSE
IF (edges[i].edge_end :=: next_vertex)
THEN next_vertex := edges[i].edge_start;
ELSE RETURN(FALSE); -- no match is found.
END_IF;
END_IF;
END_REPEAT;
RETURN(TRUE);
END_FUNCTION;
Referenced By
Defintion check_continuous_edges is references by the following definitions:
[Top Level Definitions] [Exit]Generated by STEP Tools® EXPRESS to HTML Converter
2012-03-27T17:15:33-04:00