using Q01_Cálculos; using System.Numerics; using System.Runtime.CompilerServices; using System.Text; /// /// Clase que representa un componente sólido /// public class Component : IRigidBody { /// /// Centro de masas arbitrario, respecto el centro de rotación del objeto /// public Vector3 CenterOfMass { get; set; } /// /// Masa del objeto /// public float Mass { get; set; } /// /// Peso del objeto para la gravedad definida en la simulación actual /// public Vector3 Weight => Mass * Physics.CurrentGravity; /// /// Nombre del objeto /// public string Name { get; set; } = String.Empty; /// /// Devuelve el recuento de sub-componentes /// /// Siempre será 0 ya que este es un elemento básico y no puede tener hijos public int GetChildItemCount(bool Recursive) => 0; /// /// Devuelve un resumen de las características del componente /// /// /// public string Summary(int pad = 0) { StringBuilder sb = new(); sb.AppendLinePadded($"Component Name: {Name}", pad); sb.AppendLinePadded($"- Mass: {Mass}", pad); sb.AppendLinePadded($"- Weight: {Weight}", pad); sb.AppendLinePadded($"- Center Of Mass: {CenterOfMass}", pad); return sb.ToString(); } }