diff --git a/Quik/QuikCommand.cs b/Quik/QuikCommand.cs index cbd2a40..7d3b7a3 100644 --- a/Quik/QuikCommand.cs +++ b/Quik/QuikCommand.cs @@ -155,6 +155,11 @@ namespace Quik /// The line to draw. /// public QuikLine Line { get; } + + /// + /// Stroke style of the line. + /// + public QuikStrokeStyle Style { get; set; } /// /// Create a draw line command. @@ -178,6 +183,11 @@ namespace Quik /// The array of lines to draw. /// public QuikLine[] Lines { get; } + + /// + /// Stroke style of the lines. + /// + public QuikStrokeStyle Style { get; set; } /// /// Create a draw lines command. @@ -201,6 +211,11 @@ namespace Quik /// The Bezier curve segments to draw. /// public QuikBezier[] Segments; + + /// + /// Stroke style of the curve. + /// + public QuikStrokeStyle Style { get; set; } /// /// Create a draw Bezier curve command. @@ -224,6 +239,21 @@ namespace Quik /// The rectangle to draw. /// public QuikRectangle Rectangle { get; } + + /// + /// Stroke style of the border. + /// + public QuikStrokeStyle StrokeStyle { get; set; } + + /// + /// Fill style of the contents. + /// + public QuikFillStyle FillStyle { get; set; } + + /// + /// Radius for round corners. + /// + public float CornerRadius { get; set; } /// /// Create a draw rectangle command. @@ -247,6 +277,21 @@ namespace Quik /// The rectangles to draw. /// public QuikRectangle[] Rectangles { get; } + + /// + /// Stroke style of the border. + /// + public QuikStrokeStyle StrokeStyle { get; set; } + + /// + /// Fill style of the contents. + /// + public QuikFillStyle FillStyle { get; set; } + + /// + /// Radius for round corners. + /// + public float CornerRadius { get; set; } /// /// Create a draw rectangles commands. @@ -270,6 +315,16 @@ namespace Quik /// The ellipse to draw. /// public QuikEllipse Ellipse { get; } + + /// + /// Stroke style of the border. + /// + public QuikStrokeStyle StrokeStyle { get; set; } + + /// + /// Fill style of the contents. + /// + public QuikFillStyle FillStyle { get; set; } /// /// Create a draw ellipse command. @@ -293,6 +348,16 @@ namespace Quik /// The ellipses to draw. /// public QuikEllipse[] Ellipses { get; } + + /// + /// Stroke style of the border. + /// + public QuikStrokeStyle StrokeStyle { get; set; } + + /// + /// Fill style of the contents. + /// + public QuikFillStyle FillStyle { get; set; } /// /// Create a draw ellipses command. @@ -316,6 +381,16 @@ namespace Quik /// The triangle to draw. /// public QuikTriangle Triangle { get; } + + /// + /// Stroke style of the border. + /// + public QuikStrokeStyle StrokeStyle { get; set; } + + /// + /// Fill style of the contents. + /// + public QuikFillStyle FillStyle { get; set; } /// /// Create a draw triangle command. @@ -339,6 +414,16 @@ namespace Quik /// The triangles to draw. /// public QuikTriangle[] Triangles { get; } + + /// + /// Stroke style of the border. + /// + public QuikStrokeStyle StrokeStyle { get; set; } + + /// + /// Fill style of the contents. + /// + public QuikFillStyle FillStyle { get; set; } /// /// Create a draw triangles command. @@ -363,6 +448,16 @@ namespace Quik /// The vertices that make up the polygon. /// public QuikVec2[] Polygon { get; } + + /// + /// Stroke style of the border. + /// + public QuikStrokeStyle StrokeStyle { get; set; } + + /// + /// Fill style of the contents. + /// + public QuikFillStyle FillStyle { get; set; } /// /// Create a draw polygon command. diff --git a/Quik/QuikStyle.cs b/Quik/QuikStyle.cs new file mode 100644 index 0000000..bad9663 --- /dev/null +++ b/Quik/QuikStyle.cs @@ -0,0 +1,70 @@ +namespace Quik +{ + /// + /// A line stipple pattern. + /// + public struct QuikStipplePattern + { + /// + /// The stipple pitch value. + /// + public float Pitch; + + /// + /// The stipple duty cycle. + /// + public float DutyCycle; + + public QuikStipplePattern(float pitch, float dutyCycle) + { + Pitch = pitch; + DutyCycle = dutyCycle; + } + + public static QuikStipplePattern None => new QuikStipplePattern(0.0f, 1.0f); + } + + /// + /// Stroke style for lines and borders. + /// + public class QuikStrokeStyle + { + /// + /// Stroke color. + /// + public QuikColor Color { get; set; } + + /// + /// Stroke width. + /// + public float Width { get; set; } + + /// + /// Stroke stipple pattern. + /// + public QuikStipplePattern StipplePattern { get; set; } + + public QuikStrokeStyle() + { + } + + public QuikStrokeStyle(QuikColor color, float width, QuikStipplePattern pattern) + { + Color = color; + Width = width; + StipplePattern = pattern; + } + + public QuikStrokeStyle(QuikColor color, float width) : this(color, width, QuikStipplePattern.None) + { + } + } + + /// + /// Fill style for rectangles and the like. + /// + public class QuikFillStyle + { + public QuikColor Color { get; set; } + } +} \ No newline at end of file