--User changes

-Add new palettes from user Rubydeva.

--Bug fixes
 -Avoid an occasional divide by zero in the OpenCL renderer when using the interactive editor.

--Code changes
 -Use exact comparisons in IsID() and IsZero() in Affine2D.
 -When testing for bad point values while iterating, only test for NaN now.
 -For rendering with OpenCL on the command line and in the final render dialog, use an optimized kernel that does a direct assignment for any affines which are ID.
This commit is contained in:
Person
2018-09-21 22:42:18 -07:00
parent 6f11f7df92
commit 55a2c393cf
21 changed files with 75557 additions and 48 deletions

View File

@ -150,12 +150,12 @@ void Affine2D<T>::MakeID()
template <typename T>
bool Affine2D<T>::IsID() const
{
return (IsClose<T>(A(), 1)) &&
(IsClose<T>(B(), 0)) &&
(IsClose<T>(C(), 0)) &&
(IsClose<T>(D(), 0)) &&
(IsClose<T>(E(), 1)) &&
(IsClose<T>(F(), 0));
return (A() == 1) &&
(B() == 0) &&
(C() == 0) &&
(D() == 0) &&
(E() == 1) &&
(F() == 0);
}
/// <summary>
@ -165,12 +165,12 @@ bool Affine2D<T>::IsID() const
template <typename T>
bool Affine2D<T>::IsZero() const
{
return (IsClose<T>(A(), 0)) &&
(IsClose<T>(B(), 0)) &&
(IsClose<T>(C(), 0)) &&
(IsClose<T>(D(), 0)) &&
(IsClose<T>(E(), 0)) &&
(IsClose<T>(F(), 0));
return (A() == 0) &&
(B() == 0) &&
(C() == 0) &&
(D() == 0) &&
(E() == 0) &&
(F() == 0);
}
/// <summary>