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