Dashboard/Quik/QuikGeometry.cs

135 lines
2.8 KiB
C#
Raw Normal View History

2022-08-03 14:04:40 +02:00
namespace Quik
{
/// <summary>
/// A 2 dimensional Vector.
/// </summary>
public struct QuikVec2
{
public float X;
public float Y;
}
/// <summary>
/// A RGBA color value.
/// </summary>
public struct QuikColor
{
/// <summary>
/// Red channel.
/// </summary>
public byte R;
/// <summary>
/// Green channel.
/// </summary>
public byte G;
/// <summary>
/// Blue channel.
/// </summary>
public byte B;
/// <summary>
/// Alpha channel.
/// </summary>
public byte A;
}
2022-08-03 14:04:40 +02:00
/// <summary>
/// A bezier curve segment.
/// </summary>
public struct QuikBezier
{
/// <summary>
/// Segment start point.
/// </summary>
public QuikVec2 Start;
2022-08-03 14:04:40 +02:00
/// <summary>
/// Start point control point.
/// </summary>
public QuikVec2 ControlA;
2022-08-03 14:04:40 +02:00
/// <summary>
/// End point control point.
/// </summary>
public QuikVec2 ControlB;
2022-08-03 14:04:40 +02:00
/// <summary>
/// Segment end point.
/// </summary>
public QuikVec2 End;
2022-08-03 14:04:40 +02:00
}
/// <summary>
/// A line segment.
/// </summary>
public struct QuikLine
{
/// <summary>
/// Start point.
/// </summary>
public QuikVec2 Start;
2022-08-03 14:04:40 +02:00
/// <summary>
/// End point.
/// </summary>
public QuikVec2 End;
2022-08-03 14:04:40 +02:00
}
/// <summary>
/// A rectangle.
/// </summary>
public struct QuikRectangle
{
/// <summary>
/// Rectangle minimum point.
/// </summary>
public QuikVec2 Min;
2022-08-03 14:04:40 +02:00
/// <summary>
/// Rectangle maximum point.
/// </summary>
public QuikVec2 Max;
2022-08-03 14:04:40 +02:00
}
/// <summary>
/// An ellipse.
/// </summary>
/// <remarks>It is undefined to have an ellipse with non-orthogonal axes.</remarks>
public struct QuikEllipse
{
/// <summary>
/// Ellipse center point.
/// </summary>
public QuikVec2 Center;
2022-08-03 14:04:40 +02:00
/// <summary>
/// First ellipse axis.
/// </summary>
public QuikVec2 AxisA;
2022-08-03 14:04:40 +02:00
/// <summary>
/// Second ellipse axis.
/// </summary>
public QuikVec2 AxisB;
2022-08-03 14:04:40 +02:00
}
/// <summary>
/// A triangle.
/// </summary>
public struct QuikTriangle
{
/// <summary>
/// First vertex.
/// </summary>
public QuikVec2 A;
2022-08-03 14:04:40 +02:00
/// <summary>
/// Second vertex.
/// </summary>
public QuikVec2 B;
2022-08-03 14:04:40 +02:00
/// <summary>
/// Third vertex.
/// </summary>
public QuikVec2 C;
2022-08-03 14:04:40 +02:00
}
}