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}"); } }
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 }
/// <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); }