|
FUNCTION check_continuous_edges (edges : LIST [0:?] OF UNIQUE edge_curve) : BOOLEAN; LOCAL i : INTEGER ; next_vertex : vertex ; END_LOCAL ; IF ( SIZEOF ( edges ) = 1 ) THEN RETURN ( TRUE ) ; END_IF ; 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 ) ; END_IF ; END_IF ; IF ( SIZEOF ( edges ) = 2 ) THEN RETURN ( TRUE ) ; END_IF ; 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 ) ; END_IF ; END_IF ; END_REPEAT ; RETURN ( TRUE ) ; END_FUNCTION; -- check_continuous_edges |
|
public class FCheck_continuous_edges public static Value run(SdaiContext _context, Value edges) |