From 4c43eb08aec7074ba855d96921120cffc8fc4f93 Mon Sep 17 00:00:00 2001 From: alexb737 Date: Thu, 6 Oct 2022 10:46:31 +0200 Subject: [PATCH] definida clase para describir componentes --- Q01-Cálculos/Component.cs | 47 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 Q01-Cálculos/Component.cs 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(); + } +}