public static void ParseToObject()
        {
            LoadObjFileHandler Obj = new LoadObjFileHandler("cube.obj");

            Console.WriteLine("Result: " + Obj.LoadObj().ToString());

            SimpleWaveFrontService _WaveService = new SimpleWaveFrontService(Obj);

            _WaveService.LookForVertexs();
            _WaveService.LookForNormals();
            _WaveService.LookForTextureVertex();
            _WaveService.LookForFaces(1);

            SimpleWaveFront waveFront   = _WaveService.WaveFront;
            var             vertexs     = waveFront.Vertexs;
            var             normals     = waveFront.Normal;
            var             textVertexs = waveFront.TexVertexs;
            var             faces       = waveFront.Faces;

            var i = 1;

            foreach (var face in faces)
            {
                Console.WriteLine($"\n\nFace {i}");
                Console.WriteLine("Vertexs:");
                face.VertIndicies.ForEach(a => Console.Write(a + ", "));
                Console.WriteLine("\nNormals:");
                face.NormIndicies.ForEach(a => Console.Write(a + ", "));
                Console.WriteLine("\nTextureVertexs:");
                face.TexIndicies.ForEach(a => Console.Write(a + ", "));

                i++;
            }
        }
Пример #2
0
                    public void LookForFaces_IsFindingFaces2TypeFromRawText_FoundProperFaces()
                    {
                        SimpleWaveFrontService waveService = new SimpleWaveFrontService(obj);

                        var facesIndicies = waveService.LookForFaces(2);

                        bool CompareResult =
                            (util.Compare(facesIndicies[0], new Face()
                        {
                            VertIndicies = new List <int>()
                            {
                                6, 4, 0
                            },
                        }) == 1)
                            &&
                            (util.Compare(facesIndicies[1], new Face()
                        {
                            VertIndicies = new List <int>()
                            {
                                1, 3, 4
                            },
                        }) == 1);

                        Assert.True(CompareResult);
                    }
        public static void Interpolation()
        {
            LoadObjFileHandler Obj = new LoadObjFileHandler("cube.obj");

            Console.WriteLine("Result: " + Obj.LoadObj().ToString());

            SimpleWaveFrontService _WaveService = new SimpleWaveFrontService(Obj);

            _WaveService.LookForVertexs();
            _WaveService.LookForNormals();
            _WaveService.LookForTextureVertex();
            _WaveService.LookForFaces(1);

            SimpleWaveFront waveFront   = _WaveService.WaveFront;
            var             vertexs     = waveFront.Vertexs;
            var             normals     = waveFront.Normal;
            var             textVertexs = waveFront.TexVertexs;
            var             faces       = waveFront.Faces;

            var i = 1;

            foreach (var face in faces)
            {
                Console.WriteLine($"\n\nFace {i}");

                Console.WriteLine("Vertexs:");
                face.VertIndicies.ForEach(a =>
                {
                    Console.WriteLine($"{a}. x={vertexs[a].XAxis}, y={vertexs[a].YAxis}, z={vertexs[a].ZAxis}");
                });

                Console.WriteLine("\nNormals:");
                face.NormIndicies.ForEach(a =>
                {
                    Console.WriteLine($"{a}. x={normals[a].XAxis}, y={normals[a].YAxis}, z={normals[a].ZAxis}");
                });

                Console.WriteLine("\nTextureVertexs:");
                face.VertIndicies.ForEach(a =>
                {
                    Console.WriteLine($"{a}. x={textVertexs[a].XAxis}, y={textVertexs[a].YAxis}");
                });

                i++;
            }
        }
Пример #4
0
                public void LookForVertexes_IsFindingVertexesFromRawText_FoundProperVertexs()
                {
                    SimpleWaveFrontService waveService = new SimpleWaveFrontService(obj);

                    var vertexs = waveService.LookForVertexs();

                    bool CompareResult = (util.Compare(vertexs[0], new Vertex()
                    {
                        XAxis = 45, YAxis = -1, ZAxis = -1
                    }) == 1 &&
                                          util.Compare(vertexs[1], new Vertex()
                    {
                        XAxis = 1, YAxis = -22, ZAxis = 1
                    }) == 1);

                    Assert.True(CompareResult);
                }
Пример #5
0
                    public void LookForNomals_IsFindingNormalsFromRawText_FoundProperNormals()
                    {
                        SimpleWaveFrontService waveService = new SimpleWaveFrontService(obj);

                        var normals = waveService.LookForNormals();

                        bool CompareResult =
                            (util.Compare(normals[0], new Normal()
                        {
                            XAxis = 0, YAxis = -1, ZAxis = 0
                        }) == 1) &&
                            (util.Compare(normals[1], new Normal()
                        {
                            XAxis = 0, YAxis = 1, ZAxis = 0
                        }) == 1);

                        Assert.True(CompareResult);
                    }
Пример #6
0
                    public void LookForTextureVertex_IsFindingTexVertexFromRawText_FoundProperTextVertexs()
                    {
                        SimpleWaveFrontService waveService = new SimpleWaveFrontService(obj);

                        var texVerts = waveService.LookForTextureVertex();

                        bool CompareResult =
                            (util.Compare(texVerts[0], new TextureVertex()
                        {
                            XAxis = 0.5f, YAxis = 0.2f
                        }) == 1) &&
                            (util.Compare(texVerts[1], new TextureVertex()
                        {
                            XAxis = 0.35f, YAxis = 0.4f
                        }) == 1);

                        Assert.True(CompareResult);
                    }
        public static void FindTextureVertexs()
        {
            LoadObjFileHandler Obj = new LoadObjFileHandler("cube.obj");

            Console.WriteLine("Result: " + Obj.LoadObj().ToString());

            SimpleWaveFrontService _WaveService = new SimpleWaveFrontService(Obj);

            List <TextureVertex> texVerts = new List <TextureVertex>();

            texVerts = _WaveService.LookForTextureVertex();

            var i = 1;

            Console.WriteLine("Founded Vertexes: \n");
            foreach (var texVert in texVerts)
            {
                Console.WriteLine($"{i}. x={texVert.XAxis}, y={texVert.YAxis}");
                i++;
            }
        }
        public static void FindNormals()
        {
            LoadObjFileHandler Obj = new LoadObjFileHandler("cube.obj");

            Console.WriteLine("Result: " + Obj.LoadObj().ToString());

            SimpleWaveFrontService _WaveService = new SimpleWaveFrontService(Obj);

            List <Normal> normals = new List <Normal>();

            normals = _WaveService.LookForNormals();

            var i = 1;

            Console.WriteLine("Founded Vertexes: \n");
            foreach (var normlas in normals)
            {
                Console.WriteLine($"{i}. x={normlas.XAxis}, y={normlas.YAxis}, z={normlas.ZAxis}");
                i++;
            }
        }
        public static void FindVertexs()
        {
            LoadObjFileHandler Obj = new LoadObjFileHandler("cube.obj");

            Console.WriteLine("Result: " + Obj.LoadObj().ToString());

            SimpleWaveFrontService _WaveService = new SimpleWaveFrontService(Obj);

            List <Vertex> vertexs = new List <Vertex>();

            vertexs = _WaveService.LookForVertexs();

            var i = 1;

            Console.WriteLine("Founded Vertexes: \n");
            foreach (var vertex in vertexs)
            {
                Console.WriteLine($"{i}. x={vertex.XAxis}, y={vertex.YAxis}, z={vertex.ZAxis}");
                i++;
            }
        }
Пример #10
0
        static void Main(string[] args)
        {
            //Presentation.FindVertexs();
            //Presentation.ParseToObject();

            //Presentation.Interpolation();

            string name_ = "ZROBOT";

            for (var i = 0; i <= 5; i++)
            {
                work(name_ + i);
            }
            work("ZROBOT");

            void work(string name)
            {
                LoadObjFileHandler Obj = new LoadObjFileHandler(name + ".obj");

                Console.WriteLine("File Loaded: " + Obj.LoadObj().ToString());

                SimpleWaveFrontService _WaveService = new SimpleWaveFrontService(Obj);

                FileStreamHandler FileNormal   = new FileStreamHandler(name + "Normals.txt");
                FileStreamHandler FileVertex   = new FileStreamHandler(name + "Vertex.txt");
                FileStreamHandler FileFaces    = new FileStreamHandler(name + "Faces.txt");
                FileStreamHandler FileTextures = new FileStreamHandler("Textures.txt");
                FileStreamHandler Stats        = new FileStreamHandler(name + "Stats.txt");

                _WaveService.LookForVertexs();
                _WaveService.LookForNormals();
                //_WaveService.LookForTextureVertex();
                _WaveService.LookForFaces(2);

                SimpleWaveFront waveFront = _WaveService.WaveFront;

                var vertexs     = waveFront.Vertexs;
                var normals     = waveFront.Normal;
                var textVertexs = waveFront.TexVertexs;
                var faces       = waveFront.Faces;

                #region normals
                Console.WriteLine("\nNomals:\n");
                StringBuilder nr = new StringBuilder();
                foreach (var norm in normals)
                {
                    //Console.Write($"{norm.XAxis}, {norm.YAxis}, {norm.ZAxis}, | ");
                    nr.Append($"{norm.XAxis}, {norm.YAxis}, {norm.ZAxis}, ");
                }
                FileNormal.AppendTextToFIle(nr.ToString());
                Console.WriteLine("\n" + String.Concat(Enumerable.Repeat("_", 120)));
                #endregion


                Console.WriteLine("\nVertex:\n");
                StringBuilder sb = new StringBuilder();
                foreach (var vert in vertexs)
                {
                    //Console.Write($"{vert.XAxis}, {vert.YAxis}, {vert.ZAxis}, | ");
                    //sb.Append($"{{ {vert.XAxis}, {vert.YAxis}, {vert.ZAxis} }}, ");
                    sb.Append($"{vert.XAxis} {vert.YAxis} {vert.ZAxis} ");
                }
                FileVertex.AppendTextToFIle(sb.ToString());
                Console.WriteLine("\n" + String.Concat(Enumerable.Repeat("_", 120)));

                #region texture
                //Console.WriteLine("\nVerTexture:\n");
                //foreach (var tVert in textVertexs)
                //{
                //    Console.Write($"{tVert.XAxis}, {tVert.YAxis} | ");
                //    FileTextures.AppendTextToFIle($"{tVert.XAxis} {tVert.YAxis} ");
                //}
                //Console.WriteLine("\n" + String.Concat(Enumerable.Repeat("_", 120)));
                #endregion


                Console.WriteLine("\nIndicies:\n");
                StringBuilder sa = new StringBuilder();
                foreach (var face in faces)
                {
                    face.VertIndicies.ForEach(a =>
                    {
                        //Console.Write($"{a}, ");
                        //sa.Append(a.ToString() + ", ");
                        sa.Append(a.ToString() + " ");
                    });
                    // Console.Write(" | ");
                }
                FileFaces.AppendTextToFIle(sa.ToString());
                Console.WriteLine("\n" + String.Concat(Enumerable.Repeat("_", 120)) + "\n");

                Stats.AppendTextToFIle($"Vertex: {(vertexs.Count * 3).ToString()} \n");
                Stats.AppendTextToFIle($"Indicies: {(faces.Count * 3).ToString()}");
                Stats.AppendTextToFIle($"Normals: {(normals.Count * 3).ToString()}");
            }
        }