Exemplo n.º 1
0
        public void LoadTgcMeshFromObjOk()
        {
            var     tgcObjLoader = new TGCObjLoader();
            TgcMesh tgcMesh      = tgcObjLoader.LoadTgcMeshFromObj(_fullobjpath, 0);

            Assert.NotNull(tgcMesh);
        }
Exemplo n.º 2
0
        public void ProcessLineThrowWithBadAction()
        {
            var tgcObjLoader = new TGCObjLoader();
            var line         = "badAction Blender v2.79 (sub 0) OBJ File: ''";

            Assert.That(() => { tgcObjLoader.ProccesLine(line); }, Throws.InvalidOperationException);
        }
Exemplo n.º 3
0
        public void LoadTgcMeshFromObjwithOutMaterialsOk()
        {
            var     tgcObjLoader = new TGCObjLoader();
            TgcMesh tgcMesh      = tgcObjLoader.LoadTgcMeshFromObj(_fullobjpathmeshcolorsolo, 0);

            Assert.NotNull(tgcMesh);
        }
Exemplo n.º 4
0
        public void ProcessLineReturnWithSpaceBlanck()
        {
            var tgcObjLoader = new TGCObjLoader();
            var line         = "        ";

            tgcObjLoader.ProccesLine(line);
            Assert.AreEqual(tgcObjLoader.ObjMeshContainer.ListObjMesh.Count, 0);
        }
Exemplo n.º 5
0
        public void LoadObjFromFileOk()
        {
            var tgcObjLoader = new TGCObjLoader();

            tgcObjLoader.LoadObjFromFile(_fullobjpath);
            Assert.Greater(tgcObjLoader.ObjMeshContainer.ListObjMesh.Count, 0);
            Assert.AreEqual(tgcObjLoader.ObjMeshContainer.VertexListV.Count, 8);
        }
Exemplo n.º 6
0
        public void FilterByKeyWordOk()
        {
            var    tgcObjLoader = new TGCObjLoader();
            var    lines        = File.ReadAllLines(_fullobjpath);
            string mtllib       = tgcObjLoader.FilterByKeyword(lines, "mtllib")[0];

            Assert.AreEqual(mtllib, "mtllib cubotexturacaja.mtl");
        }
Exemplo n.º 7
0
        public void GetListOfMaterialsWithWhiteSpaceOk()
        {
            var tgcObjLoader = new TGCObjLoader();
            var lines        = File.ReadAllLines(_fullobjpathmeshcontextura);

            tgcObjLoader.GetListOfMaterials(lines, _fullobjpathmeshcontextura);
            Assert.AreEqual(tgcObjLoader.ListMtllib.First(), "tgcito con textura.mtl");
        }
Exemplo n.º 8
0
        public void GetListOfMaterialsWithNameOk()
        {
            var tgcObjLoader = new TGCObjLoader();
            var lines        = File.ReadAllLines(_fullobjpath);

            tgcObjLoader.GetListOfMaterials(lines, _fullobjpath);
            Assert.AreEqual(tgcObjLoader.ListMtllib.First(), "cubotexturacaja.mtl");
        }
Exemplo n.º 9
0
        public void GetListOfMaterialsOk()
        {
            var tgcObjLoader = new TGCObjLoader();
            var lines        = File.ReadAllLines(_fullobjpath);

            tgcObjLoader.GetListOfMaterials(lines, _fullobjpath);
            Assert.Greater(tgcObjLoader.ListMtllib.Count, 0);
        }
Exemplo n.º 10
0
        public void ProcessLineReturnWithFirstCaracterHastag()
        {
            var tgcObjLoader = new TGCObjLoader();
            var line         = "# Blender v2.79 (sub 0) OBJ File: ''";

            tgcObjLoader.ProccesLine(line);
            Assert.AreEqual(tgcObjLoader.ObjMeshContainer.ListObjMesh.Count, 0);
        }
Exemplo n.º 11
0
        public void ProcessLineReturnWithEmptyLine()
        {
            var tgcObjLoader = new TGCObjLoader();
            var line         = String.Empty;

            tgcObjLoader.ProccesLine(line);
            Assert.AreEqual(tgcObjLoader.ObjMeshContainer.ListObjMesh.Count, 0);
        }
Exemplo n.º 12
0
        public void ProccesLineNewObjet()
        {
            var tgcObjLoader = new TGCObjLoader();
            var line         = "o Cube";

            tgcObjLoader.ProccesLine(line);
            Assert.AreEqual(tgcObjLoader.ObjMeshContainer.ListObjMesh.First().Name, "Cube");
        }
Exemplo n.º 13
0
        public void CreateMeshOnlyColor()
        {
            TGCObjLoader tgcObjLoader = new TGCObjLoader();

            tgcObjLoader.LoadObjFromFile(_fullobjpathmeshcolorsolo);
            _resObjMesh = tgcObjLoader.ObjMeshContainer.ListObjMesh.First();
            MeshBuilder meshBuilder = new MeshBuilder().AddDxMesh(_resObjMesh.FaceTriangles.Count).ChargeBuffer(tgcObjLoader.ObjMeshContainer, 0);

            Assert.NotNull(meshBuilder.DxMesh);
        }
Exemplo n.º 14
0
        public void AddMultiMaterialToBuilderOk()
        {
            TGCObjLoader tgcObjLoader = new TGCObjLoader();

            tgcObjLoader.LoadObjFromFile(_fullobjpathmultimaterial);
            _resObjMesh = tgcObjLoader.ObjMeshContainer.ListObjMesh.First();
            MeshBuilder meshBuilder = new MeshBuilder()
                                      .AddMaterials(tgcObjLoader.ObjMaterialsLoader).ChargueMaterials();

            Assert.NotNull(meshBuilder.MeshMaterials);
        }
        public void LoadObjMaterialFromFileOk()
        {
            TGCObjLoader tgcObjLoader = new TGCObjLoader();
            var          lines        = File.ReadAllLines(_fullMaterialPath);

            tgcObjLoader.GetListOfMaterials(lines, _fullMaterialPath);
            ObjMaterialsLoader objMaterialLoader = new ObjMaterialsLoader();

            objMaterialLoader.LoadMaterialsFromFiles(_fullMaterialPath, tgcObjLoader.ListMtllib);
            Assert.NotNull(objMaterialLoader.ListObjMaterialMesh.First());
        }
Exemplo n.º 16
0
        public void GetTextureCountOk()
        {
            TGCObjLoader tgcObjLoader = new TGCObjLoader();

            tgcObjLoader.LoadObjFromFile(_fullobjpathmultimaterial);
            _resObjMesh = tgcObjLoader.ObjMeshContainer.ListObjMesh.First();
            MeshBuilder meshBuilder = new MeshBuilder()
                                      .AddMaterials(tgcObjLoader.ObjMaterialsLoader)
                                      .ChargueMaterials();

            Assert.AreEqual(meshBuilder.GetTextureCount(), 2);
        }
Exemplo n.º 17
0
        public void EnsureRightTypeRenderIsLoadedDiffuseMapBranch()
        {
            //TODO asegurar que si tiene material el tipo de render sea difuse map, o si tiene ligth map que sea difuse mas ligth map
            TGCObjLoader tgcObjLoader = new TGCObjLoader();

            tgcObjLoader.LoadObjFromFile(_fullobjpathmultimaterial);
            _resObjMesh = tgcObjLoader.ObjMeshContainer.ListObjMesh.First();
            MeshBuilder meshBuilder = new MeshBuilder()
                                      .AddMaterials(tgcObjLoader.ObjMaterialsLoader)
                                      .ChargueMaterials();

            Assert.AreEqual(meshBuilder.ChargueBufferStrategy.RenderType, TgcMesh.MeshRenderType.DIFFUSE_MAP);
        }
Exemplo n.º 18
0
        public void CreateMeshColorAndDifusseMap()
        {
            //TODO el test de cuando el mesh es color y difuse
            TGCObjLoader tgcObjLoader = new TGCObjLoader();

            tgcObjLoader.LoadObjFromFile(_fullobjpathmultimaterial);
            _resObjMesh = tgcObjLoader.ObjMeshContainer.ListObjMesh.First();
            MeshBuilder meshBuilder = new MeshBuilder()
                                      .AddMaterials(tgcObjLoader.ObjMaterialsLoader)
                                      .ChargueMaterials()
                                      .AddDxMesh(_resObjMesh.FaceTriangles.Count)
                                      .ChargeBuffer(tgcObjLoader.ObjMeshContainer, 0);

            Assert.NotNull(meshBuilder.DxMesh);
        }
Exemplo n.º 19
0
        public void BuildTgcMeshWithBoundingBoxOk()  //TODO el boundingbox no deberia estar acoplado al mesh
        {
            TGCObjLoader tgcObjLoader = new TGCObjLoader();

            tgcObjLoader.LoadObjFromFile(_fullobjpath);
            _resObjMesh = tgcObjLoader.ObjMeshContainer.ListObjMesh.First();
            TgcMesh tgcMesh = new MeshBuilder()
                              .AddMaterials(tgcObjLoader.ObjMaterialsLoader)
                              .AddDxMesh(_resObjMesh.FaceTriangles.Count)
                              .ChargeBuffer(tgcObjLoader.ObjMeshContainer, 0)
                              .SetEnable(true)
                              .AddAutotransform(true)
                              .SetHasBoundingBox(false)
                              .Build(_resObjMesh);

            Assert.NotNull(tgcMesh.BoundingBox);
        }
Exemplo n.º 20
0
        public void TgcMeshBuildWithTextureOk()
        {
            TGCObjLoader tgcObjLoader = new TGCObjLoader();

            tgcObjLoader.LoadObjFromFile(_fullobjpath);
            _resObjMesh = tgcObjLoader.ObjMeshContainer.ListObjMesh.First();
            TgcMesh tgcMesh = new MeshBuilder()
                              .AddMaterials(tgcObjLoader.ObjMaterialsLoader)
                              .ChargueMaterials()
                              .AddDxMesh(_resObjMesh.FaceTriangles.Count)
                              .ChargeBuffer(tgcObjLoader.ObjMeshContainer, 0)
                              .AddAutotransform(true)
                              .SetEnable(true)
                              .SetHasBoundingBox(true)
                              .Build(_resObjMesh);

            Assert.Greater(tgcMesh.Materials.Length, 0);
        }
Exemplo n.º 21
0
        public void TgcMeshBuildedCanSet()
        {
            TGCObjLoader tgcObjLoader = new TGCObjLoader();

            tgcObjLoader.LoadObjFromFile(_fullobjpath);
            _resObjMesh = tgcObjLoader.ObjMeshContainer.ListObjMesh.First();
            TgcMesh tgcMesh = new MeshBuilder()
                              .AddMaterials(tgcObjLoader.ObjMaterialsLoader)
                              .AddDxMesh(_resObjMesh.FaceTriangles.Count)
                              .ChargeBuffer(tgcObjLoader.ObjMeshContainer, 0)
                              .AddAutotransform(true)
                              .SetEnable(true)
                              .SetHasBoundingBox(false)
                              .Build(_resObjMesh);

            tgcMesh.Rotation = new TGCVector3(8.0f, 8.5f, 8.5f);
            Assert.AreEqual(tgcMesh.Rotation, new TGCVector3(8.0f, 8.5f, 8.5f));
        }
Exemplo n.º 22
0
        public override void Render()
        {
            PreRender();

            DrawText.drawText("Buscar y abrir un archivo obj solo o uno con mtl.", 0, 20, Color.OrangeRed);

            //Ver si cambio el mesh
            var selectedPath = MeshModifier.Value;

            if (CurrentPath != selectedPath)
            {
                //TODO si utilizo el mismo Builder falla porque no limpia el mtl viejo.
                TgcObjLoader = new TGCObjLoader();
                MeshDelObj   = TgcObjLoader.LoadTgcMeshFromObj(selectedPath, 0);
                CurrentPath  = selectedPath;
            }

            MeshDelObj.Render();

            PostRender();
        }