mirror of
https://github.com/oliverbooth/VpSharp
synced 2024-11-22 19:18:47 +00:00
Implement ToString for Rotation
This commit is contained in:
parent
6804959f93
commit
ca0769faeb
@ -1,4 +1,6 @@
|
|||||||
using System.Numerics;
|
using System.Globalization;
|
||||||
|
using System.Numerics;
|
||||||
|
using Cysharp.Text;
|
||||||
using X10D.Math;
|
using X10D.Math;
|
||||||
using X10D.Numerics;
|
using X10D.Numerics;
|
||||||
|
|
||||||
@ -7,7 +9,7 @@ namespace VpSharp;
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Represents a rotation.
|
/// Represents a rotation.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public readonly struct Rotation : IEquatable<Rotation>
|
public readonly struct Rotation : IEquatable<Rotation>, IFormattable
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Represents no rotation.
|
/// Represents no rotation.
|
||||||
@ -169,4 +171,38 @@ public readonly struct Rotation : IEquatable<Rotation>
|
|||||||
{
|
{
|
||||||
return HashCode.Combine(Angle, Roll, Tilt, Yaw);
|
return HashCode.Combine(Angle, Roll, Tilt, Yaw);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Returns the string representation of these coordinates.
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>A <see cref="string" /> representation of these coordinates.</returns>
|
||||||
|
public override string ToString()
|
||||||
|
{
|
||||||
|
return ToString("{0}");
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Returns the string representation of these coordinates.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="format">The format to apply to each component.</param>
|
||||||
|
/// <param name="formatProvider">The format provider.</param>
|
||||||
|
/// <returns>A <see cref="string" /> representation of these coordinates.</returns>
|
||||||
|
public string ToString(string? format, IFormatProvider? formatProvider = null)
|
||||||
|
{
|
||||||
|
format ??= "{0}";
|
||||||
|
string separator = NumberFormatInfo.GetInstance(formatProvider).NumberGroupSeparator;
|
||||||
|
|
||||||
|
using var builder = ZString.CreateUtf8StringBuilder();
|
||||||
|
builder.Append('<');
|
||||||
|
builder.Append(string.Format(formatProvider, format, Tilt));
|
||||||
|
builder.Append(separator);
|
||||||
|
builder.Append(' ');
|
||||||
|
builder.Append(string.Format(formatProvider, format, Yaw));
|
||||||
|
builder.Append(separator);
|
||||||
|
builder.Append(' ');
|
||||||
|
builder.Append(string.Format(formatProvider, format, Roll));
|
||||||
|
builder.Append('>');
|
||||||
|
|
||||||
|
return builder.ToString();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user