Exemple #1
0
        public Connection get_connection_to_next(ISubfigure connected_subfigure)
        {
            Connection connection = connections_attachment.transform.
                                    GetComponentsInChildren <Connection>().
                                    First(connection => connection.destination == connected_subfigure);

            return(connection);
        }
Exemple #2
0
 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);
     }
 }
Exemple #3
0
 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);
     }
 }
Exemple #4
0
 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);
     }
 }
Exemple #5
0
        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);
        }
Exemple #6
0
        // 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);
            }
        }
Exemple #8
0
 public bool is_connected(ISubfigure subfigure)
 {
     return(_previous.Contains(subfigure) || _next.Contains(subfigure));
 }
Exemple #9
0
 public void remove_previous(ISubfigure subfigure)
 {
     _previous.Remove(subfigure);
 }
Exemple #10
0
 public void append_previous(ISubfigure subfigure)
 {
     _previous.Add(subfigure);
 }
Exemple #11
0
 public void disconnect_from_next(ISubfigure disconnectable)
 {
     disconnectable.remove_previous(this);
     _next.Remove(disconnectable);
 }
Exemple #12
0
 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);
Exemple #15
0
 public Mapped_node(ISubfigure source, ISubfigure target)
 {
     this.source = source;
     this.target = target;
 }
Exemple #16
0
        public void map_node(ISubfigure source, ISubfigure target)
        {
            Mapped_node mapped_node = new Mapped_node(source, target);

            mapped_nodes.Add(mapped_node);
        }