mirror of
https://bitbucket.org/mfeemster/fractorium.git
synced 2025-07-01 05:46:06 -04:00
--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:
@ -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>
|
||||
|
@ -60,7 +60,7 @@ namespace EmberNs
|
||||
#define XC(c) (reinterpret_cast<const xmlChar*>(c))
|
||||
#define CX(c) (reinterpret_cast<char*>(c))
|
||||
#define CCX(c) (reinterpret_cast<const char*>(c))
|
||||
#define BadVal(x) (((x) != (x)) || ((x) > 1e20) || ((x) < -1e20))
|
||||
#define BadVal(x) (std::isnan(x))
|
||||
#define Vlen(x) (sizeof(x) / sizeof(*x))
|
||||
#define SQR(x) ((x) * (x))
|
||||
#define CUBE(x) ((x) * (x) * (x))
|
||||
|
Reference in New Issue
Block a user