/// <summary> /// Crear un nuevo mesh igual /// </summary> /// <param name="cloneName">Nombre del mesh clonado</param> /// <returns>Mesh clonado</returns> public TgcMesh clone(string cloneName) { //Clonar D3dMesh var d3dCloneMesh = d3dMesh.Clone(MeshFlags.Managed, d3dMesh.Declaration, D3DDevice.Instance.Device); //Crear mesh de TGC y cargar atributos generales var cloneMesh = new TgcMesh(d3dCloneMesh, cloneName, renderType); cloneMesh.Materials = Materials; cloneMesh.layer = layer; cloneMesh.boundingBox = boundingBox.clone(); cloneMesh.AlphaBlendEnable = AlphaBlendEnable; cloneMesh.enabled = true; cloneMesh.AutoUpdateBoundingBox = AutoUpdateBoundingBox; //Transformaciones cloneMesh.translation = translation; cloneMesh.rotation = rotation; cloneMesh.scale = scale; cloneMesh.transform = transform; cloneMesh.AutoTransformEnable = AutoTransformEnable; //Clonar userProperties if (UserProperties != null) { cloneMesh.UserProperties = new Dictionary <string, string>(); foreach (var entry in UserProperties) { cloneMesh.UserProperties.Add(entry.Key, entry.Value); } } //Clonar DiffuseMaps if (diffuseMaps != null) { cloneMesh.diffuseMaps = new TgcTexture[diffuseMaps.Length]; for (var i = 0; i < diffuseMaps.Length; i++) { cloneMesh.diffuseMaps[i] = diffuseMaps[i].Clone(); } } //Clonar LightMap if (lightMap != null) { cloneMesh.lightMap = lightMap.Clone(); } return(cloneMesh); }