diff --git a/Q01-Cálculos/Component.cs b/Q01-Cálculos/Component.cs new file mode 100644 index 0000000..f8428cb --- /dev/null +++ b/Q01-Cálculos/Component.cs @@ -0,0 +1,47 @@ +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(); + } +}