public Connection get_connection_to_next(ISubfigure connected_subfigure) { Connection connection = connections_attachment.transform. GetComponentsInChildren <Connection>(). First(connection => connection.destination == connected_subfigure); return(connection); }
public void connext_to_next(ISubfigure next_subfigure) { _next.Add(next_subfigure); next_subfigure.append_previous(this); if (next_subfigure is Subfigure unity_subfigure) { create_connection_arrow_to(unity_subfigure); } }
public void disconnect_from_next(ISubfigure disconnectable) { disconnectable.remove_previous(this); _next.Remove(disconnectable); if (disconnectable is Subfigure unity_subfigure) { delete_connection_arrow_to(unity_subfigure); } }
private void remove_exsessive_connections( ISubfigure start_subfigure, IReadOnlyList <ISubfigure> excessive_next_subfigures ) { foreach (ISubfigure excessive_next in excessive_next_subfigures) { start_subfigure.disconnect_from_next(excessive_next); } }
private IList <Stencil_mapping> map_stencil_onto_target( IStencil stencil, IFigure_representation target ) { IList <Stencil_mapping> potential_mappings = map_first_nodes(stencil, target); for (int i_node = 1; i_node < stencil.get_subfigures().Count; i_node++) { ISubfigure subfigure = stencil.get_subfigures()[i_node]; //map_next_node(potential_mappings, subfigure, target); } return(potential_mappings); }
// public IFigure add_sequential_representation_for_pair( // IFigure figure, // IFigure beginning, // IFigure ending // ) { // var subfigures = get_sequence_of_subfigures_from( // beginning, ending // ); // return add_sequential_representation(figure, subfigures); // } public IFigure add_sequential_representation( IFigure figure, IReadOnlyList <IFigure> subfigures ) { var representation = figure.create_representation(); ISubfigure previous = null; foreach (IFigure child_figure in subfigures) { ISubfigure next = representation.create_subfigure(child_figure); previous?.connext_to_next(next); previous = next; } figure.set_lowlevel_sequence(subfigures.ToList()); return(figure); }
private void add_next_subfigure( IFigure_appearance appended_figure ) { ISubfigure new_subfigure = representation.create_subfigure(appended_figure.figure); new_subfigure.id = (last_subfigure_id++).ToString(); appearance_to_subfigure.Add(appended_figure, new_subfigure); if (ended_subfigures.Any()) { foreach (ISubfigure ended_subfigure in ended_subfigures) { ended_subfigure.connext_to_next(new_subfigure); } } else { representation.add_first_subfigures(new_subfigure); } }
public bool is_connected(ISubfigure subfigure) { return(_previous.Contains(subfigure) || _next.Contains(subfigure)); }
public void remove_previous(ISubfigure subfigure) { _previous.Remove(subfigure); }
public void append_previous(ISubfigure subfigure) { _previous.Add(subfigure); }
public void disconnect_from_next(ISubfigure disconnectable) { disconnectable.remove_previous(this); _next.Remove(disconnectable); }
public void connext_to_next(ISubfigure next_subfigure) { _next.Add(next_subfigure); next_subfigure.append_previous(this); }
private void attach_subfigure(ISubfigure subfigure) { subfigure.parent = this; subfigures.Add(subfigure); }
public void add_first_subfigures(ISubfigure subfigure) => first_subfigures.Add(subfigure);
public Mapped_node(ISubfigure source, ISubfigure target) { this.source = source; this.target = target; }
public void map_node(ISubfigure source, ISubfigure target) { Mapped_node mapped_node = new Mapped_node(source, target); mapped_nodes.Add(mapped_node); }