From 41f4b5adc832c2bafacc105aa8c5020c56c01080 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jean-Philippe=20Bruy=C3=A8re?= Date: Wed, 18 Jan 2017 15:21:50 +0100 Subject: [PATCH] move implicit converstion of fill from and to color into Fill class, solid color equality debug --- src/Colors.cs | 3 --- src/Fill/Fill.cs | 5 ++++- src/SolidColor.cs | 6 ++++-- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/Colors.cs b/src/Colors.cs index f55c4187..66d2613a 100644 --- a/src/Colors.cs +++ b/src/Colors.cs @@ -83,9 +83,6 @@ namespace Crow // { // return new Color (v.X, v.Y, v.Z, v.W); // } - public static implicit operator Fill(Color c){ - return new SolidColor (c) as Fill; - } public static bool operator ==(Color left, Color right) diff --git a/src/Fill/Fill.cs b/src/Fill/Fill.cs index 322fa5ae..1f455419 100644 --- a/src/Fill/Fill.cs +++ b/src/Fill/Fill.cs @@ -22,7 +22,10 @@ namespace Crow return (SolidColor)SolidColor.Parse (s); } - + public static implicit operator Color(Fill c){ + SolidColor sc = c as SolidColor; + return sc == null ? default(Color) : sc.color; + } public static implicit operator Fill(Color c){ return new SolidColor (c); } diff --git a/src/SolidColor.cs b/src/SolidColor.cs index d214f592..bbb27067 100644 --- a/src/SolidColor.cs +++ b/src/SolidColor.cs @@ -43,11 +43,13 @@ namespace Crow } public static bool operator ==(SolidColor left, SolidColor right) { - return left.color == right.color ? true : false; + return left is SolidColor ? right is SolidColor ? true : false : + left.color == right.color ? true : false; } public static bool operator !=(SolidColor left, SolidColor right) { - return left.color == right.color ? false : true; + return left is SolidColor ? right is SolidColor ? false : true : + left.color == right.color ? false : true; } public override int GetHashCode () -- 2.47.3