C# Class Gu.Wpf.Adorners.DoubleUtil

~Inspired~ by: http://referencesource.microsoft.com/#WindowsBase/Shared/MS/Internal/DoubleUtil.cs,ef2a956bcf846761
Afficher le fichier Open project: JohanLarsson/Gu.Wpf.Adorners

Méthodes publiques

Méthode Description
AreClose ( Point point1, Point point2 ) : bool

Compares two points for fuzzy equality. This function helps compensate for the fact that double values can acquire error when operated upon

AreClose ( Rect rect1, Rect rect2 ) : bool

Compares two rectangles for fuzzy equality. This function helps compensate for the fact that double values can acquire error when operated upon

AreClose ( Size size1, Size size2 ) : bool

Compares two Size instances for fuzzy equality. This function helps compensate for the fact that double values can acquire error when operated upon

AreClose ( System.Windows.Vector vector1, System.Windows.Vector vector2 ) : bool

Compares two Vector instances for fuzzy equality. This function helps compensate for the fact that double values can acquire error when operated upon

DoubleToInt ( double val ) : int
GreaterThan ( double value1, double value2 ) : bool

GreaterThan - Returns whether or not the first double is greater than the second double. That is, whether or not the first is strictly greater than *and* not within epsilon of the other number. Note that this epsilon is proportional to the numbers themselves to that AreClose survives scalar multiplication. Note, There are plenty of ways for this to return false even for numbers which are theoretically identical, so no code calling this should fail to work if this returns false. This is important enough to repeat: NB: NO CODE CALLING THIS FUNCTION SHOULD DEPEND ON ACCURATE RESULTS - this should be used for optimizations *only*.

GreaterThanOrClose ( double value1, double value2 ) : bool

GreaterThanOrClose - Returns whether or not the first double is greater than or close to the second double. That is, whether or not the first is strictly greater than or within epsilon of the other number. Note that this epsilon is proportional to the numbers themselves to that AreClose survives scalar multiplication. Note, There are plenty of ways for this to return false even for numbers which are theoretically identical, so no code calling this should fail to work if this returns false. This is important enough to repeat: NB: NO CODE CALLING THIS FUNCTION SHOULD DEPEND ON ACCURATE RESULTS - this should be used for optimizations *only*.

IsBetweenZeroAndOne ( double val ) : bool
IsOne ( double value ) : bool

IsOne - Returns whether or not the double is "close" to 1. Same as AreClose(double, 1), but this is faster.

IsZero ( double value ) : bool

IsZero - Returns whether or not the double is "close" to 0. Same as AreClose(double, 0), but this is faster.

LessThan ( double value1, double value2 ) : bool

LessThan - Returns whether or not the first double is less than the second double. That is, whether or not the first is strictly less than *and* not within epsilon of the other number. Note that this epsilon is proportional to the numbers themselves to that AreClose survives scalar multiplication. Note, There are plenty of ways for this to return false even for numbers which are theoretically identical, so no code calling this should fail to work if this returns false. This is important enough to repeat: NB: NO CODE CALLING THIS FUNCTION SHOULD DEPEND ON ACCURATE RESULTS - this should be used for optimizations *only*.

LessThanOrClose ( double value1, double value2 ) : bool

LessThanOrClose - Returns whether or not the first double is less than or close to the second double. That is, whether or not the first is strictly less than or within epsilon of the other number. Note that this epsilon is proportional to the numbers themselves to that AreClose survives scalar multiplication. Note, There are plenty of ways for this to return false even for numbers which are theoretically identical, so no code calling this should fail to work if this returns false. This is important enough to repeat: NB: NO CODE CALLING THIS FUNCTION SHOULD DEPEND ON ACCURATE RESULTS - this should be used for optimizations *only*.

RectHasNaN ( Rect r ) : bool

rectHasNaN - this returns true if this rect has X, Y , Height or Width as NaN.

Private Methods

Méthode Description
AreClose ( double value1, double value2 ) : bool

Method Details

AreClose() public static méthode

Compares two points for fuzzy equality. This function helps compensate for the fact that double values can acquire error when operated upon
public static AreClose ( Point point1, Point point2 ) : bool
point1 Point The first point to compare
point2 Point The second point to compare
Résultat bool

AreClose() public static méthode

Compares two rectangles for fuzzy equality. This function helps compensate for the fact that double values can acquire error when operated upon
public static AreClose ( Rect rect1, Rect rect2 ) : bool
rect1 System.Windows.Rect The first rectangle to compare
rect2 System.Windows.Rect The second rectangle to compare
Résultat bool

AreClose() public static méthode

Compares two Size instances for fuzzy equality. This function helps compensate for the fact that double values can acquire error when operated upon
public static AreClose ( Size size1, Size size2 ) : bool
size1 System.Windows.Size The first size to compare
size2 System.Windows.Size The second size to compare
Résultat bool

AreClose() public static méthode

Compares two Vector instances for fuzzy equality. This function helps compensate for the fact that double values can acquire error when operated upon
public static AreClose ( System.Windows.Vector vector1, System.Windows.Vector vector2 ) : bool
vector1 System.Windows.Vector The first Vector to compare
vector2 System.Windows.Vector The second Vector to compare
Résultat bool

DoubleToInt() public static méthode

public static DoubleToInt ( double val ) : int
val double
Résultat int

GreaterThan() public static méthode

GreaterThan - Returns whether or not the first double is greater than the second double. That is, whether or not the first is strictly greater than *and* not within epsilon of the other number. Note that this epsilon is proportional to the numbers themselves to that AreClose survives scalar multiplication. Note, There are plenty of ways for this to return false even for numbers which are theoretically identical, so no code calling this should fail to work if this returns false. This is important enough to repeat: NB: NO CODE CALLING THIS FUNCTION SHOULD DEPEND ON ACCURATE RESULTS - this should be used for optimizations *only*.
public static GreaterThan ( double value1, double value2 ) : bool
value1 double The first double to compare.
value2 double The second double to compare.
Résultat bool

GreaterThanOrClose() public static méthode

GreaterThanOrClose - Returns whether or not the first double is greater than or close to the second double. That is, whether or not the first is strictly greater than or within epsilon of the other number. Note that this epsilon is proportional to the numbers themselves to that AreClose survives scalar multiplication. Note, There are plenty of ways for this to return false even for numbers which are theoretically identical, so no code calling this should fail to work if this returns false. This is important enough to repeat: NB: NO CODE CALLING THIS FUNCTION SHOULD DEPEND ON ACCURATE RESULTS - this should be used for optimizations *only*.
public static GreaterThanOrClose ( double value1, double value2 ) : bool
value1 double The first double to compare.
value2 double The second double to compare.
Résultat bool

IsBetweenZeroAndOne() public static méthode

public static IsBetweenZeroAndOne ( double val ) : bool
val double
Résultat bool

IsOne() public static méthode

IsOne - Returns whether or not the double is "close" to 1. Same as AreClose(double, 1), but this is faster.
public static IsOne ( double value ) : bool
value double The double to compare to 1.
Résultat bool

IsZero() public static méthode

IsZero - Returns whether or not the double is "close" to 0. Same as AreClose(double, 0), but this is faster.
public static IsZero ( double value ) : bool
value double The double to compare to 0.
Résultat bool

LessThan() public static méthode

LessThan - Returns whether or not the first double is less than the second double. That is, whether or not the first is strictly less than *and* not within epsilon of the other number. Note that this epsilon is proportional to the numbers themselves to that AreClose survives scalar multiplication. Note, There are plenty of ways for this to return false even for numbers which are theoretically identical, so no code calling this should fail to work if this returns false. This is important enough to repeat: NB: NO CODE CALLING THIS FUNCTION SHOULD DEPEND ON ACCURATE RESULTS - this should be used for optimizations *only*.
public static LessThan ( double value1, double value2 ) : bool
value1 double The first double to compare.
value2 double The second double to compare.
Résultat bool

LessThanOrClose() public static méthode

LessThanOrClose - Returns whether or not the first double is less than or close to the second double. That is, whether or not the first is strictly less than or within epsilon of the other number. Note that this epsilon is proportional to the numbers themselves to that AreClose survives scalar multiplication. Note, There are plenty of ways for this to return false even for numbers which are theoretically identical, so no code calling this should fail to work if this returns false. This is important enough to repeat: NB: NO CODE CALLING THIS FUNCTION SHOULD DEPEND ON ACCURATE RESULTS - this should be used for optimizations *only*.
public static LessThanOrClose ( double value1, double value2 ) : bool
value1 double The first double to compare.
value2 double The second double to compare.
Résultat bool

RectHasNaN() public static méthode

rectHasNaN - this returns true if this rect has X, Y , Height or Width as NaN.
public static RectHasNaN ( Rect r ) : bool
r System.Windows.Rect The rectangle to test
Résultat bool