Пример #1
0
        public override void Visit(NConnector component)
        {
            resolver.Connector  = component;
            resolver.StartPoint = component.Model.StartPoint;
            resolver.EndPoint   = component.Model.EndPoint;

            resolver.RebuildGraph();
            resolver.Resolve();
        }
Пример #2
0
        public override void Visit(NBox component)
        {
            component.IsCloseEnough = false;

            for (int i = 0; i < component.ConnectPoints.Length; i++)
            {
                double d = NMathHelper.Distance(SelectedPoint, component.ConnectPoints[i]);
                if (d <= NConfig.CONNECT_DISTANCE)
                {
                    component.IsCloseEnough = true;
                    if (Connect)
                    {
                        if (Connector.Model.StartPoint == SelectedPoint)
                        {
                            Connector.StartBox            = component;
                            Connector.Model.StartBoxIndex = i;
                            Connector.Model.StartBoxID    = component.Model.ID;
                        }
                        else
                        {
                            Connector.EndBox            = component;
                            Connector.Model.EndBoxIndex = i;
                            Connector.Model.EndBoxID    = component.Model.ID;
                        }
                        SelectedPoint.Set(component.ConnectPoints[i]);


                        PathResolver.Connector  = Connector;
                        PathResolver.StartPoint = Connector.Model.StartPoint;
                        PathResolver.EndPoint   = Connector.Model.EndPoint;

                        PathResolver.RebuildGraph();
                        PathResolver.Resolve();

                        return;
                    }
                }
            }
        }