/// <summary> /// Testet Randverbreiterung; Funktioniert nicht mit null Werten... /// </summary> /// <param name="voxelmodell"></param> public static void randverbreiterungtesten(Voxelmodell voxelmodell) { Voxelmodell voxelmodell1 = voxelmodell; voxelmodell1.randVerbreiterung(1); using (StreamWriter file = new StreamWriter(Path.Combine(Directory.GetCurrentDirectory(), "randverbreiterung1.txt"))) { file.WriteLine("#Randverbreiterung mit 1"); foreach (Voxel v in voxelmodell1.getVoxelmatrix()) { if (v != null) { file.WriteLine(v.getKoords()[0].ToString() + " " + v.getKoords()[1].ToString() + " " + v.getKoords()[2].ToString() + " " + Convert.ToInt16(v.getModellrand()).ToString()); } } } Voxelmodell voxelmodell2 = voxelmodell; voxelmodell1.randVerbreiterung(2); using (StreamWriter file = new StreamWriter(Path.Combine(Directory.GetCurrentDirectory(), "randverbreiterung2.txt"))) { file.WriteLine("#Randverbreiterung mit 1"); foreach (Voxel v in voxelmodell1.getVoxelmatrix()) { if (v != null) { file.WriteLine(v.getKoords()[0].ToString() + " " + v.getKoords()[1].ToString() + " " + v.getKoords()[2].ToString() + " " + Convert.ToInt16(v.getModellrand()).ToString()); } } } Voxelmodell voxelmodell3 = voxelmodell; voxelmodell1.randVerbreiterung(3); using (StreamWriter file = new StreamWriter(Path.Combine(Directory.GetCurrentDirectory(), "randverbreiterung3.txt"))) { file.WriteLine("#Randverbreiterung mit 1"); foreach (Voxel v in voxelmodell1.getVoxelmatrix()) { if (v != null) { file.WriteLine(v.getKoords()[0].ToString() + " " + v.getKoords()[1].ToString() + " " + v.getKoords()[2].ToString() + " " + Convert.ToInt16(v.getModellrand()).ToString()); } } } }
/// <summary> /// Testet Die Mustereinprägung in das Modell. Eingestellt auf 5*5*5 Muster. /// </summary> /// <param name="voxelmodell"></param> public static void testeMuster(int infillDensity, String infillType, int offset) { int x = 20, y = 20, z = 5;//Skaliert Linear ~14Sek für 1000000 Voxel; List <List <Voxel> > schichten = new List <List <Voxel> >(); Voxel[,,] bb = new Voxel[x, y, z]; for (ushort i = 0; i < x; i++) { schichten.Add(new List <Voxel>()); } for (ushort i = 0; i < x; i++) { for (ushort j = 0; j < y; j++) { for (ushort k = 0; k < z; k++) { Voxel v = new Voxel(false, false, i, j, k); bb[i, j, k] = v; schichten[i].Add(v); } } } double infill = x * y * z; double counter = 0; Voxelmodell voxelmodell1 = new Voxelmodell(0, bb, schichten);; voxelmodell1.InsertInfill(infillDensity, infillType, offset); Voxel[,,] matrix = voxelmodell1.getVoxelmatrix(); using (StreamWriter file = new StreamWriter(Path.Combine(Directory.GetCurrentDirectory(), "mustererzeugung.txt"))) { file.WriteLine("#Muster mit %2 test"); for (int i = 0; i < x; i++) { for (int j = 0; j < y; j++) { for (int k = 0; k < z; k++) { string c; if (matrix[i, j, k] == null) { c = "0"; //markiert leerer voxel } else { c = "1"; //voxel file.WriteLine(i + " " + j + " " + k + " " + c); counter++; } } } } Console.WriteLine((counter / infill)); Console.ReadKey(); } }
/// <summary> /// Testet Die Mustereinprägung in das Modell. Eingestellt auf 5*5*5 Muster. /// </summary> /// <param name="voxelmodell"></param> public static void testeMuster() { int x = 30, y = 30, z = 30; List <List <Voxel> > schichten = new List <List <Voxel> >(); schichten.Add(new List <Voxel>()); Voxel[,,] bb = new Voxel[x, y, z]; for (ushort i = 0; i < x; i++) { for (ushort j = 0; j < x; j++) { for (ushort k = 0; k < x; k++) { Voxel v = new Voxel(false, false, i, j, k); bb[i, j, k] = v; schichten[0].Add(v); } } } Voxelmodell voxelmodell1 = new Voxelmodell(0, bb, schichten);; voxelmodell1.InsertInfill(); Voxel[,,] matrix = voxelmodell1.getVoxelmatrix(); using (StreamWriter file = new StreamWriter(Path.Combine(Directory.GetCurrentDirectory(), "mustererzeugung.txt"))) { file.WriteLine("#Muster mit %2 test"); for (int i = 0; i < x; i++) { for (int j = 0; j < y; j++) { for (int k = 0; k < z; k++) { string c; if (matrix[i, j, k] == null) { c = "0"; //markiert leerer voxel } else { c = "1"; //leerer voxel file.WriteLine(i + " " + j + " " + k + " " + c); } } } } } }