示例#1
0
        public void LoadObjFromFileOk()
        {
            var _tgcObjLoader = new TgcObjLoader();

            _tgcObjLoader.LoadObjFromFile(_fullobjpath);
            Assert.True(_tgcObjLoader.ObjMeshContainer.ListObjMesh.Count > 0);
            Assert.True(_tgcObjLoader.ObjMeshContainer.VertexListV.Count == 8);
        }
示例#2
0
        public void CreateMaterialIdsArrayOk()
        {
            TgcObjLoader _tgcObjLoader = new TgcObjLoader();

            _tgcObjLoader.LoadObjFromFile(_fullobjpathmultimaterial);
            resObjMesh = _tgcObjLoader.ObjMeshContainer.ListObjMesh.First();
            Assert.True(resObjMesh.FaceTrianglesList.Count == resObjMesh.CreateMaterialIdsArray().Length);
        }
示例#3
0
        public void IndexMaterialIdsArrayOk()
        {
            TgcObjLoader _tgcObjLoader = new TgcObjLoader();

            _tgcObjLoader.LoadObjFromFile(_fullobjpathmultimaterial);
            resObjMesh = _tgcObjLoader.ObjMeshContainer.ListObjMesh.First();
            int[] materialIds = resObjMesh.CreateMaterialIdsArray();
            Assert.True(materialIds[15810] == 0);
            Assert.True(materialIds[17010] == 1);
        }
示例#4
0
        public void CreateMeshOnlyColor()
        {
            TgcObjLoader _tgcObjLoader = new TgcObjLoader();

            _tgcObjLoader.LoadObjFromFile(_fullobjpathmeshcolorsolo);
            resObjMesh = _tgcObjLoader.ObjMeshContainer.ListObjMesh.First();
            MeshBuilder meshBuilder = new MeshBuilder().AddDxMesh(resObjMesh.FaceTrianglesList.Count).ChargeBuffer(_tgcObjLoader.ObjMeshContainer, 0);

            Assert.NotNull(meshBuilder.GetInstaceDxMesh());
        }
示例#5
0
        public void CreateInstanceDxMeshWithNumberFacesOK()
        {
            TgcObjLoader _tgcObjLoader = new TgcObjLoader();

            _tgcObjLoader.LoadObjFromFile(_fullobjpath);
            resObjMesh = _tgcObjLoader.ObjMeshContainer.ListObjMesh.First();
            MeshBuilder auxMeshBuilder = new MeshBuilder()
                                         .AddDxMesh(resObjMesh.FaceTrianglesList.Count);

            Assert.True(auxMeshBuilder.GetInstaceDxMesh().NumberFaces == resObjMesh.FaceTrianglesList.Count);
        }
示例#6
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);
        }
示例#7
0
        public void EnsureRightTypeRenderIsLoadedOnlyColorBranch()
        {
            //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(_fullobjpathmeshcolorsolo);
            resObjMesh = _tgcObjLoader.ObjMeshContainer.ListObjMesh.First();
            MeshBuilder meshBuilder = new MeshBuilder()
                                      .AddDxMesh(resObjMesh.FaceTrianglesList.Count);

            Assert.True(meshBuilder.ChargueBufferStrategy.RenderType == TgcMesh.MeshRenderType.VERTEX_COLOR);
        }
示例#8
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.True(meshBuilder.GetTextureCount() == 2);
        }
示例#9
0
        public void CreateDxMeshWithVertexLimit()
        {
            // 21845 * 3 = 65535
            // Int range 0 to 65535

            TgcObjLoader _tgcObjLoader = new TgcObjLoader();

            _tgcObjLoader.LoadObjFromFile(_fullobjpathmeshcolorsolo);
            resObjMesh = _tgcObjLoader.ObjMeshContainer.ListObjMesh.First();
            MeshBuilder meshBuilder = new MeshBuilder().AddDxMesh(21844);

            Assert.NotNull(meshBuilder.GetInstaceDxMesh());
        }
示例#10
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.True(meshBuilder.ChargueBufferStrategy.RenderType == TgcMesh.MeshRenderType.DIFFUSE_MAP);
        }
示例#11
0
        public void CheckIndexBufferIsChargedOk()
        {
            //TODO verificar que el idexbuffer se cargo .
            TgcObjLoader _tgcObjLoader = new TgcObjLoader();

            _tgcObjLoader.LoadObjFromFile(_fullobjpathmultimaterial);
            resObjMesh = _tgcObjLoader.ObjMeshContainer.ListObjMesh.First();
            MeshBuilder meshBuilder = new MeshBuilder()
                                      .AddMaterials(_tgcObjLoader.ObjMaterialsLoader)
                                      .ChargueMaterials()
                                      .AddDxMesh(resObjMesh.FaceTrianglesList.Count)
                                      .ChargeBuffer(_tgcObjLoader.ObjMeshContainer, 0);

            Assert.True(meshBuilder.GetInstaceDxMesh().IndexBuffer.SizeInBytes > 0);
        }
示例#12
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.FaceTrianglesList.Count)
                                      .ChargeBuffer(_tgcObjLoader.ObjMeshContainer, 0);

            Assert.NotNull(meshBuilder.GetInstaceDxMesh());
        }
示例#13
0
        public void BuildTgcMeshWithEnableTrueOk()
        {
            TgcObjLoader _tgcObjLoader = new TgcObjLoader();

            _tgcObjLoader.LoadObjFromFile(_fullobjpath);
            resObjMesh = _tgcObjLoader.ObjMeshContainer.ListObjMesh.First();
            TgcMesh tgcMesh = new MeshBuilder()
                              .AddMaterials(_tgcObjLoader.ObjMaterialsLoader)
                              .AddDxMesh(resObjMesh.FaceTrianglesList.Count)
                              .ChargeBuffer(_tgcObjLoader.ObjMeshContainer, 0)
                              .SetEnable(true)
                              .Build(resObjMesh);

            Assert.True(tgcMesh.Enabled);
        }
示例#14
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.FaceTrianglesList.Count)
                              .ChargeBuffer(_tgcObjLoader.ObjMeshContainer, 0)
                              .SetEnable(true)
                              .AddAutotransform(true)
                              .SetHasBoundingBox(false)
                              .Build(resObjMesh);

            Assert.NotNull(tgcMesh.BoundingBox);
        }
示例#15
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.FaceTrianglesList.Count)
                              .ChargeBuffer(_tgcObjLoader.ObjMeshContainer, 0)
                              .AddAutotransform(true)
                              .SetEnable(true)
                              .SetHasBoundingBox(true)
                              .Build(resObjMesh);

            Assert.True(tgcMesh.Materials.Length > 0);
        }
示例#16
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.FaceTrianglesList.Count)
                              .ChargeBuffer(_tgcObjLoader.ObjMeshContainer, 0)
                              .AddAutotransform(true)
                              .SetEnable(true)
                              .SetHasBoundingBox(false)
                              .Build(resObjMesh);

            tgcMesh.Rotation = new TGCVector3(8.0f, 8.5f, 8.5f);
            Assert.True(tgcMesh.Rotation.Equals(new TGCVector3(8.0f, 8.5f, 8.5f)));
        }