/// <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());
                    }
                }
            }
        }
Exemplo n.º 2
0
        /// <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);
                            }
                        }
                    }
                }
            }
        }