public void AddLine(String LineName, Model.TrickerStarNodeSoltDetail from, Model.TrickerStarNodeSoltDetail to)
        {
            Model.TrickerStarLineModel line = new TrickerStarLineModel()
            {
                LineName = LineName, From = from, To = to
            };

            TrickerStarFunctionNodeModel node_from_m = (TrickerStarFunctionNodeModel)m_FunctionNodeModels[line.From.NodeName];
            TrickerStarFunctionNodeModel node_to_m   = (TrickerStarFunctionNodeModel)m_FunctionNodeModels[line.To.NodeName];


            DeleteLine(node_from_m.OutputSlot[from.SlotIndex].LineName);
            DeleteLine(node_to_m.InputSlot[to.SlotIndex].LineName);
            node_from_m.OutputSlot[from.SlotIndex].LineName = line.LineName;
            node_to_m.InputSlot[to.SlotIndex].LineName      = line.LineName;


            line.From = node_from_m.OutputSlot[from.SlotIndex];
            line.To   = node_to_m.InputSlot[to.SlotIndex];

            var geo  = GenPathGeomentry(from, to);
            var path = GenPath(line.LineName, geo);


            m_FunctionNodeModels[line.From.NodeName] = node_from_m;
            m_FunctionNodeModels[line.To.NodeName]   = node_to_m;
            m_FunctionLineModels[line.LineName]      = line;
            m_FunctionLineViews[line.LineName]       = path;


            C_MAIN_CANVAS.Children.Add(path);
        }
        public void DeleteLine(String linename)
        {
            if (linename == null)
            {
                return;
            }
            if (m_FunctionLineModels.ContainsKey(linename))
            {
                Model.TrickerStarLineModel line = (TrickerStarLineModel)m_FunctionLineModels[linename];


                TrickerStarFunctionNodeModel node_from_m = (TrickerStarFunctionNodeModel)m_FunctionNodeModels[line.From.NodeName];
                TrickerStarFunctionNodeModel node_to_m   = (TrickerStarFunctionNodeModel)m_FunctionNodeModels[line.To.NodeName];


                node_from_m.OutputSlot[line.From.SlotIndex].LineName = null;
                node_to_m.InputSlot[line.To.SlotIndex].LineName      = null;
                m_FunctionNodeModels[line.From.NodeName]             = node_from_m;
                m_FunctionNodeModels[line.To.NodeName] = node_to_m;

                Windows.UI.Xaml.Shapes.Path t_path = m_FunctionLineViews[line.LineName] as Windows.UI.Xaml.Shapes.Path;
                C_MAIN_CANVAS.Children.Remove(t_path);

                m_FunctionLineModels.Remove(linename);
                m_FunctionLineViews.Remove(linename);
            }
            else
            {
            }
        }
Beispiel #3
0
        private void NODE_OnNodeClose(String name)
        {
            if (name == null)
            {
                return;
            }
            if (!m_FunctionNodeModels.ContainsKey(name))
            {
                return;
            }
            TrickerStarFunctionNodeModel node_m = (TrickerStarFunctionNodeModel)m_FunctionNodeModels[name];
            TrickerStarFunctionNode      node_v = (TrickerStarFunctionNode)m_FunctionNodeViews[name];

            foreach (var item in node_m.InputSlot)
            {
                DeleteLine(item.LineName);
            }
            foreach (var item in node_m.OutputSlot)
            {
                DeleteLine(item.LineName);
            }
            m_FunctionNodeModels.Remove(name);
            m_FunctionNodeViews.Remove(name);
            C_MAIN_CANVAS.Children.Remove(node_v);
            m_SelectedFunctionNodeModels.Clear();
            m_FromSlot = null;
            m_ToSlot   = null;
        }
Beispiel #4
0
 void UnselectNodes()
 {
     foreach (object node_str in m_SelectedFunctionNodeModels.Keys)
     {
         TrickerStarFunctionNodeModel node_m = (TrickerStarFunctionNodeModel)m_SelectedFunctionNodeModels[node_str];
         TrickerStarFunctionNode      node_v = (TrickerStarFunctionNode)m_FunctionNodeViews[node_str];
         node_v.Select(false);
         Canvas.SetZIndex(node_v, 4);
     }
 }
        public PathGeometry  GenPathGeomentry(Model.TrickerStarNodeSoltDetail from, Model.TrickerStarNodeSoltDetail to)
        {
            TrickerStarFunctionNodeModel node_from_m = (TrickerStarFunctionNodeModel)m_FunctionNodeModels[from.NodeName];
            TrickerStarFunctionNodeModel node_to_m   = (TrickerStarFunctionNodeModel)m_FunctionNodeModels[to.NodeName];
            TrickerStarFunctionNode      node_from_v = (TrickerStarFunctionNode)m_FunctionNodeViews[from.NodeName];
            TrickerStarFunctionNode      node_to_v   = (TrickerStarFunctionNode)m_FunctionNodeViews[to.NodeName];

            Point Line_from = new Point(node_from_m.Pos.X, node_from_m.Pos.Y), Line_to = new Point(node_to_m.Pos.X, node_to_m.Pos.Y);

            node_from_v.InvalidateMeasure();
            Line_from.X += node_from_v.ActualWidth;
            Line_from.Y += from.SlotIndex * 48 + 96;
            Line_to.Y   += to.SlotIndex * 48 + 96;
            Line_from.X -= 16;
            Line_to.X   += 16;


            var pathGeometry1 = new PathGeometry();

            var pathFigureCollection1 = new PathFigureCollection();

            var pathFigure1 = new PathFigure();

            pathFigure1.IsClosed = false;

            pathFigure1.StartPoint = new Windows.Foundation.Point(Line_from.X, Line_from.Y);

            pathFigureCollection1.Add(pathFigure1);

            pathGeometry1.Figures = pathFigureCollection1;



            var pathSegmentCollection1 = new PathSegmentCollection();

            var pathSegment1 = new BezierSegment();

            pathSegment1.Point1 = new Point(Line_from.X + 100, Line_from.Y);

            pathSegment1.Point2 = new Point(Line_to.X - 100, Line_to.Y);

            pathSegment1.Point3 = new Point(Line_to.X, Line_to.Y);

            pathSegmentCollection1.Add(pathSegment1);



            pathFigure1.Segments = pathSegmentCollection1;



            return(pathGeometry1);
        }
Beispiel #6
0
        private void Node_PointerMoved(object sender, PointerRoutedEventArgs e)
        {
            m_ActiveElementType = ACTIVE_ELEMENT_TYPE.NODE;


            if (m_Pressed && m_ActiveElementType == ACTIVE_ELEMENT_TYPE.NODE)
            {
                e.Handled = true;
                var t = this.m_OldTranslation;



                t.X  = (float)(e.GetCurrentPoint(this).Position.X - m_OldPoint.X);
                t.X /= C_MAINSCROLLVIEWER.ZoomFactor;

                t.Y  = (float)(e.GetCurrentPoint(this).Position.Y - m_OldPoint.Y);
                t.Y /= C_MAINSCROLLVIEWER.ZoomFactor;



                m_OldPoint = e.GetCurrentPoint(this).Position;



                m_OldTranslation = t;

                foreach (object node in m_SelectedFunctionNodeModels.Keys)
                {
                    TrickerStarFunctionNodeModel node_m = (TrickerStarFunctionNodeModel)m_SelectedFunctionNodeModels[node];
                    TrickerStarFunctionNode      node_v = (TrickerStarFunctionNode)m_FunctionNodeViews[node];
                    node_v.Translation         = new System.Numerics.Vector3((float)(node_v.Translation.X + t.X), (float)(node_v.Translation.Y + t.Y), node_v.Translation.Z);
                    node_m.Pos.X               = node_v.Translation.X;
                    node_m.Pos.Y               = node_v.Translation.Y;
                    m_FunctionNodeModels[node] = node_m;

                    foreach (var linename_i in node_m.InputSlot)
                    {
                        RefreshLine(linename_i.LineName);
                    }
                    foreach (var linename_o in node_m.OutputSlot)
                    {
                        RefreshLine(linename_o.LineName);
                    }
                }
            }
        }
        public void RefreshLine(String linename)
        {
            if (linename == null)
            {
                return;
            }
            if (m_FunctionLineModels.ContainsKey(linename))
            {
                Model.TrickerStarLineModel line = (TrickerStarLineModel)m_FunctionLineModels[linename];


                TrickerStarFunctionNodeModel node_from_m = (TrickerStarFunctionNodeModel)m_FunctionNodeModels[line.From.NodeName];
                TrickerStarFunctionNodeModel node_to_m   = (TrickerStarFunctionNodeModel)m_FunctionNodeModels[line.To.NodeName];

                Windows.UI.Xaml.Shapes.Path t_path = m_FunctionLineViews[line.LineName] as Windows.UI.Xaml.Shapes.Path;
                var geo = GenPathGeomentry(line.From, line.To);
                t_path.Data = geo;
            }
            else
            {
            }
        }