Skip to content

Commit a8be3f9

Browse files
Use non-zero as default intersection rule.
1 parent e5ada72 commit a8be3f9

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

src/ImageSharp.Drawing/Processing/ShapeOptions.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,9 @@ private ShapeOptions(ShapeOptions source)
3131
/// <summary>
3232
/// Gets or sets the rule for calculating intersection points.
3333
/// <para/>
34-
/// Defaults to <see cref="IntersectionRule.EvenOdd"/>.
34+
/// Defaults to <see cref="IntersectionRule.NonZero"/>.
3535
/// </summary>
36-
public IntersectionRule IntersectionRule { get; set; } = IntersectionRule.EvenOdd;
36+
public IntersectionRule IntersectionRule { get; set; } = IntersectionRule.NonZero;
3737

3838
/// <inheritdoc/>
3939
public ShapeOptions DeepClone() => new(this);

tests/ImageSharp.Drawing.Tests/Processing/ShapeOptionsDefaultsExtensionsTests.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,11 +94,13 @@ public void GetDefaultOptionsFromConfiguration_SettingNullThenReturnsNewInstance
9494
Configuration config = new();
9595

9696
ShapeOptions options = config.GetShapeOptions();
97+
Assert.Equal(IntersectionRule.NonZero, options.IntersectionRule);
9798
Assert.NotNull(options);
9899
config.SetShapeOptions((ShapeOptions)null);
99100

100101
ShapeOptions options2 = config.GetShapeOptions();
101102
Assert.NotNull(options2);
103+
Assert.Equal(IntersectionRule.NonZero, options2.IntersectionRule);
102104

103105
// we set it to null should now be a new instance
104106
Assert.NotEqual(options, options2);
@@ -123,6 +125,7 @@ public void GetDefaultOptionsFromConfiguration_AlwaysReturnsInstance()
123125
Assert.DoesNotContain(typeof(ShapeOptions), config.Properties.Keys);
124126
ShapeOptions options = config.GetShapeOptions();
125127
Assert.NotNull(options);
128+
Assert.Equal(IntersectionRule.NonZero, options.IntersectionRule);
126129
}
127130

128131
[Fact]
@@ -143,6 +146,7 @@ public void GetDefaultOptionsFromProcessingContext_AlwaysReturnsInstance()
143146

144147
ShapeOptions ctxOptions = context.GetShapeOptions();
145148
Assert.NotNull(ctxOptions);
149+
Assert.Equal(IntersectionRule.NonZero, ctxOptions.IntersectionRule);
146150
}
147151

148152
[Fact]
@@ -154,6 +158,7 @@ public void GetDefaultOptionsFromProcessingContext_AlwaysReturnsInstanceEvenIfSe
154158
context.SetShapeOptions((ShapeOptions)null);
155159
ShapeOptions ctxOptions = context.GetShapeOptions();
156160
Assert.NotNull(ctxOptions);
161+
Assert.Equal(IntersectionRule.NonZero, ctxOptions.IntersectionRule);
157162
}
158163

159164
[Fact]

0 commit comments

Comments
 (0)