/// <summary>
        /// Clone this component.
        /// </summary>
        /// <returns>Cloned copy of this component.</returns>
        override public BaseComponent Clone()
        {
            CompositeModelRenderer ret = new CompositeModelRenderer(_entity.Model);

            CopyBasics(ret);
            for (int i = 0; i < _entity.MeshesCount; ++i)
            {
                Core.Graphics.MeshEntity other = ret.GetMesh(i);
                Core.Graphics.MeshEntity self  = GetMesh(i);
                other.MaterialOverride = self.MaterialOverride.Clone();
                other.BlendingState    = self.BlendingState;
                other.SetMaterials(self.OverrideMaterials);
                other.RenderingQueue = self.RenderingQueue;
            }
            return(ret);
        }
        /// <summary>
        /// Copy basic properties to another component (helper function to help with Cloning).
        /// </summary>
        /// <param name="copyTo">Other component to copy values to.</param>
        /// <returns>The object we are copying properties to.</returns>
        protected override BaseComponent CopyBasics(BaseComponent copyTo)
        {
            CompositeModelRenderer other = copyTo as CompositeModelRenderer;

            return(base.CopyBasics(other));
        }