Esempio n. 1
0
        public static bool DeleteNode(this ShipPathData Data, BezierNodeData nodeToDelete)
        {
            if (Data.Nodes.Count <= 2)
            {
                return(false);
            }

            int idx = Data.Nodes.IndexOf(nodeToDelete);

            if (idx >= 0)
            {
                Data.Nodes.RemoveAt(idx);
            }

            return(true);
        }
Esempio n. 2
0
        public static BezierNodeData AddNode(this ShipPathData Data, BezierNodeData afterNode)
        {
            int idx = Data.Nodes.IndexOf(afterNode);

            if (idx >= 0)
            {
                BezierNodeData nextNode = afterNode.GetNextNode();
                float          midX     = (afterNode.worldX + nextNode.worldX) / 2;
                float          midY     = (afterNode.worldY + nextNode.worldY) / 2;
                BezierNodeData newNode  = new BezierNodeData()
                {
                    worldX = midX, worldY = midY, rotation = 0, shipPath = Data                                            /*, mainForm.currentProject*/
                };
                Data.Nodes.Insert(idx + 1, newNode);
            }

            return(null);
        }
Esempio n. 3
0
        public static ShipPathData SetFrom(this ShipPathData Data, MainForm mainForm, float worldX, float worldY)
        {
            float nodeSize = BezierNodeEx.GetBezierNodeSize(mainForm.currentProject);

            Data.Nodes.Add(new BezierNodeData()
            {
                worldX = worldX - nodeSize * 2, worldY = worldY + nodeSize, rotation = 0, shipPath = Data, controlPointsDistance = BezierNodeEx.GetBezierNodeSize(mainForm.currentProject)
            });
            Data.Nodes.Add(new BezierNodeData()
            {
                worldX = worldX, worldY = worldY, rotation = 0, shipPath = Data, controlPointsDistance = BezierNodeEx.GetBezierNodeSize(mainForm.currentProject)
            });
            Data.Nodes.Add(new BezierNodeData()
            {
                worldX = worldX + nodeSize * 2, worldY = worldY + nodeSize, rotation = 0, shipPath = Data, controlPointsDistance = BezierNodeEx.GetBezierNodeSize(mainForm.currentProject)
            });
            Data.PathId = mainForm.currentProject.GenerateNewShipPathId();

            return(Data);
        }
 public EditShipPath(ShipPathData TargetPath)
 {
     this.TargetPath = TargetPath;
     InitializeComponent();
 }