예제 #1
0
 private void CheckMeshLimitVertex(ObjMesh mesh)
 {
     if (mesh.FaceTrianglesList.Count > LIMITVERTEX)
     {
         throw new ArgumentOutOfRangeException($"FaceTrianglesList.Count, El límite actual para la creación de mesh es de: {LIMITVERTEX} y un objeto de su archivo posee: {mesh.FaceTrianglesList.Count}");
     }
 }
예제 #2
0
        public TgcMesh LoadTgcMeshFromObj(string fullobjpath, int index)
        {
            LoadObjFromFile(fullobjpath);
            ObjMesh objMesh = ObjMeshContainer.ListObjMesh[index];

            if (objMesh.Usemtl.Count > 0)
            {
                MeshBuilder
                .AddMaterials(ObjMaterialsLoader)
                .ChargueMaterials()
                .AddDxMesh(objMesh.FaceTrianglesList.Count)
                .ChargeBuffer(ObjMeshContainer, index)
                .ChargeAttributeBuffer(objMesh.CreateMaterialIdsArray())
                .SetEnable(true)
                .AddAutotransform(true)
                .SetHasBoundingBox(false);
            }
            else
            {
                MeshBuilder.AddDxMesh(objMesh.FaceTrianglesList.Count)
                .ChargeBuffer(ObjMeshContainer, index)
                .SetEnable(true)
                .AddAutotransform(true)
                .SetHasBoundingBox(false);
            }

            return(MeshBuilder.Build(ObjMeshContainer.ListObjMesh[index])); //TODO pasarle el name no mas
        }
예제 #3
0
        /// <summary>
        ///   Construye el mesh con los atributos que se le fueron agregando
        /// </summary>
        /// <param name="objMesh">ObjMesh</param>
        /// <returns>MeshBuilder</returns>
        public TgcMesh Build(ObjMesh objMesh)
        {
            TgcMesh unMesh = MeshFactory.createNewMesh(dxMesh, objMesh.Name, ChargueBufferStrategy.RenderType);

            SetBoundingBox(unMesh);
            unMesh.AutoTransform = autoTransform;
            unMesh.Enabled       = enable;
            unMesh.Materials     = MeshMaterials;
            unMesh.DiffuseMaps   = MeshTextures;
            return(unMesh);
        }