Files
2022-10-06 10:46:31 +02:00

48 lines
1.5 KiB
C#

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