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();
}
}