/// <summary> /// Clone this component. /// </summary> /// <returns>Cloned copy of this component.</returns> override public BaseComponent Clone() { ModelRenderer ret = new ModelRenderer(_entity.Model); CopyBasics(ret); 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) { ModelRenderer other = copyTo as ModelRenderer; other.MaterialOverride = MaterialOverride.Clone(); other._entity.CopyMaterials(_entity.OverrideMaterialsDictionary); return(base.CopyBasics(other)); }
/// <summary> /// Add a model from a model renderer component. /// Will use its parent game object world transformations and material. /// </summary> /// <param name="renderer">Renderer component to add.</param> /// <param name="removeAfterAdd">If true, will remove the renderer component from its parent once done.</param> public void AddModelRenderer(ModelRenderer renderer, bool removeAfterAdd) { // add model to combined mesh renderer._GameObject.SceneNode.ForceFullUpdate(true); AddModel(renderer.Model, renderer._GameObject.SceneNode.WorldTransformations, renderer.GetFirstMaterial()); // if needed, remove form parent. if (removeAfterAdd) { renderer.RemoveFromParent(); } }