definida clase para describir componentes
This commit is contained in:
47
Q01-Cálculos/Component.cs
Normal file
47
Q01-Cálculos/Component.cs
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
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();
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user