// // ModelSkin.cs - represents a skin for a 3D model // // Author: // Michael Becker // // Copyright (c) 2013-2020 Mike Becker's Software // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . using System; using System.Collections.ObjectModel; namespace UniversalEditor.ObjectModels.Multimedia3D.Model { /// /// Represents a skin for a 3D model. /// public class ModelSkin : ICloneable { public class ModelSkinCollection : Collection { } /// /// Gets or sets the name of the skin. /// /// The name of the skin. public string Name { get; set; } = string.Empty; /// /// Gets or sets a value indicating the category of the skin. /// /// The category of the skin. public byte Category { get; set; } = 0; /// /// Gets a collection of instances representing the vertices associated with this skin. /// /// The vertices associated with this skin. public ModelSkinVertex.ModelSkinVertexCollection Vertices { get; } = new ModelSkinVertex.ModelSkinVertexCollection(); public object Clone() { ModelSkin clone = new ModelSkin(); clone.Name = this.Name; clone.Category = this.Category; foreach (ModelSkinVertex vtx in this.Vertices) { clone.Vertices.Add(vtx.Clone() as ModelSkinVertex); } return clone; } } }