public void SetEndPosition(float x, float y) { IPosition_Connected_Edit p = FindPosition(x, y, mapAry[(int)x, (int)y]); if (p != null) { endPosition = p; } }
public void SetStartPosition(float x, float y) { IPosition_Connected_Edit p = FindPosition(x, y); if (p != null) { startPosition = p; } }
public void RemovePosition_Connected(IPosition_Connected p) { IPositionSet_Connected_AdjacencyEdit adjSet = ((IPosition_Connected_Edit)p).GetAdjacencyPositionSetEdit(); adjSet.InitToTraverseSet(); while (adjSet.NextPosition()) { IPosition_Connected_Edit adj = adjSet.GetPosition_Connected_Edit(); adj.GetAdjacencyPositionSetEdit().RemoveAdjacency(p); adjSet.RemoveAdjacency(adj); } list.Remove(p); }
public void Clear() { startPosition = null; endPosition = null; list.Clear(); for (int i = 0; i < width; i++) { for (int j = 0; j < height; j++) { mapAry[i, j].Clear(); } } }
public IPosition_Connected_Edit FindPosition(float x, float y, List <IPosition_Connected_Edit> l) { IPosition_Connected_Edit position = null; foreach (IPosition_Connected_Edit p in l) { if (Math.Abs(p.GetX() - x) < float.Epsilon && Math.Abs(p.GetY() - y) < float.Epsilon) { position = p; break; } } return(position); }
public bool PutPositionIntoArray(IPosition_Connected_Edit p) { float x = p.GetX(), y = p.GetY(); if (InBound(x, y)) { mapAry[(int)x, (int)y].Add(p); return(true); } else { return(false); } }
public bool IsConnected(IPosition_Connected_Edit p1, IPosition_Connected_Edit p2) { if (p1 != null && p2 != null) { IPositionSet_Connected_AdjacencyEdit adjSet = p1.GetAdjacencyPositionSetEdit(); adjSet.InitToTraverseSet(); while (adjSet.NextPosition()) { if (p2.Equals(adjSet.GetPosition_Connected_Edit())) { return(true); } } } return(false); }
public void RemovePosition(float x, float y) { IPosition_Connected_Edit p = FindPosition(x, y); if (p != null) { mapAry[(int)x, (int)y].Remove(p); list.Remove(p); IPositionSet_Connected_AdjacencyEdit adjSet = p.GetAdjacencyPositionSetEdit(); adjSet.InitToTraverseSet(); while (adjSet.NextPosition()) { IPosition_Connected_Edit adj = adjSet.GetPosition_Connected_Edit(); adj.GetAdjacencyPositionSetEdit().RemoveAdjacency(p); adjSet.RemoveAdjacency(adj); } } }
private void panel1_MouseMove(object sender, MouseEventArgs e) { int x = e.X / blockSize, y = e.Y / blockSize; toolStripLabel1.Text = "(" + Convert.ToString(x) + "," + Convert.ToString(y) + ") (" + Convert.ToString(e.X) + "," + Convert.ToString(e.Y) + ")"; if (x0 != x || y0 != y) { using (Graphics g = panel1.CreateGraphics()) { if (x0 >= 0 && y0 >= 0) { refreshBlock(x0, y0); if (Math.Abs(x1 - x0) <= 1 && Math.Abs(y1 - y0) <= 1) { DrawSelectedNode(); } IPosition_Connected_Edit p1 = map.GetStartPosition(), p2 = map.GetEndPosition(); if ((p1 != null && Math.Abs(p1.GetX() - x0) <= 1 && Math.Abs(p1.GetY() - y0) <= 1) || (p2 != null && Math.Abs(p2.GetX() - x0) <= 1 && Math.Abs(p2.GetY() - y0) <= 1)) { DrawStartEndNode(); } if (path != null) { foreach (IPosition_Connected p in path) { if (Math.Abs(p.GetX() - x0) <= 1 && Math.Abs(p.GetY() - y0) <= 1) { DrawPathNode(p); } } } } g.DrawRectangle(selectBoxPen, x * blockSize, y * blockSize, blockSize, blockSize); } x0 = x; y0 = y; } }
public void ClearStartPosition() { startPosition = null; }
public void SetStartPosition(IPosition_Connected p) { startPosition = (IPosition_Connected_Edit)p; }