private void selectGrainButton_Click(object sender, EventArgs e) { if (dualPhaseMouseClickOn) { for (int i = 0; i < board.GetLength(0); i++) { for (int j = 0; j < board.GetLength(1); j++) { if (structureGrains.TryGetValue(board[i, j].Grain, out Grain newGrain)) { board[i, j] = new DrawableCell(i, j, cellSize, newGrain); } else if (!board[i, j].Grain.IsInclusion()) { board[i, j] = new DrawableCell(i, j, cellSize); } } } DrawGrains(); ResetState(); dualPhaseMouseClickOn = false; selectGrainButton.Text = "Select grains"; } else { dualPhaseMouseClickOn = true; selectGrainButton.Text = "Done"; } }
private void ClearGrains() { for (var i = 0; i < board.GetLength(0); i++) { for (var j = 0; j < board.GetLength(1); j++) { board[i, j] = new DrawableCell(i, j, cellSize); } } DrawGrains(); }
public DrawableCell[,] Import(string path, int cellsize) { var bitmap = new Bitmap(Image.FromFile(path, true)); var board = new DrawableCell[bitmap.Width, bitmap.Height]; for (var i = 0; i < board.GetLength(0); i++) { for (var j = 0; j < board.GetLength(1); j++) { board[i, j] = new DrawableCell(i, j, cellsize, DrawableCell.GetGrain(bitmap.GetPixel(i, j))); } } return(board); }
public DrawableCell[,] Import(string path, int cellsize) { var content = File.ReadAllLines(path); var header = content.First().Split('\t'); var board = new DrawableCell[int.Parse(header[0]), int.Parse(header[1])]; for (int i = 1; i < content.Length; i++) { var lineSplit = content[i].Split('\t'); int x = int.Parse(lineSplit[0]); int y = int.Parse(lineSplit[1]); int grainId = int.Parse(lineSplit[2]); board[x, y] = new DrawableCell(x, y, cellsize, new Grain(grainId)); } return(board); }