Beispiel #1
0
        /// <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);
        }