bool fix_normal = true;
for (j = 0; j < 3; j++) {
- if (!finite(mv->co[j])) {
+ if (!isfinite(mv->co[j])) {
PRINT_ERR("\tVertex %u: has invalid coordinate\n", i);
if (do_fixes) {
for (j = 0, dw = dv->dw; j < dv->totweight; j++, dw++) {
/* note, greater than max defgroups is accounted for in our code, but not < 0 */
- if (!finite(dw->weight)) {
+ if (!isfinite(dw->weight)) {
PRINT_ERR("\tVertex deform %u, group %d has weight: %f\n", i, dw->def_nr, dw->weight);
if (do_fixes) {
dw->weight = 0.0f;
/* can happen with bad pointcache or physics calculation
* since this becomes geometry, nan's and inf's crash raytrace code.
* better not allow this. */
- if ((!finite(bb->vec[0])) || (!finite(bb->vec[1])) || (!finite(bb->vec[2])) ||
- (!finite(bb->vel[0])) || (!finite(bb->vel[1])) || (!finite(bb->vel[2])) )
+ if ((!isfinite(bb->vec[0])) || (!isfinite(bb->vec[1])) || (!isfinite(bb->vec[2])) ||
+ (!isfinite(bb->vel[0])) || (!isfinite(bb->vel[1])) || (!isfinite(bb->vel[2])) )
{
zero_v3(bb->vec);
zero_v3(bb->vel);
#include <math.h>
#include "BLI_math_inline.h"
-#ifdef __sun__
-#include <ieeefp.h> /* for finite() */
-#endif
-
#ifndef M_PI
#define M_PI 3.14159265358979323846 /* pi */
#endif
#endif /* C99, POSIX.1-2001 or MSVC12 (partial C99) */
-#ifdef WIN32
-# if defined(_MSC_VER)
-# define finite(n) _finite(n)
-# endif
-#endif
-
#if BLI_MATH_DO_INLINE
#include "intern/math_base_inline.c"
#endif
pow2 = 1.0;
y = (x * pow1) * pow2;
/* if y overflows, then rounded value is exactly x */
- if (!finite(y))
+ if (!isfinite(y))
return x;
}
else {
if (f > eps) {
const float d = 1.0f / sqrtf(f);
- BLI_assert(finite(d));
+ BLI_assert(isfinite(d));
r_n1[0] = n[1] * d;
r_n1[1] = -n[0] * d;
MINLINE bool is_finite_v2(const float v[2])
{
- return (finite(v[0]) && finite(v[1]));
+ return (isfinite(v[0]) && isfinite(v[1]));
}
MINLINE bool is_finite_v3(const float v[3])
{
- return (finite(v[0]) && finite(v[1]) && finite(v[2]));
+ return (isfinite(v[0]) && isfinite(v[1]) && isfinite(v[2]));
}
MINLINE bool is_finite_v4(const float v[4])
{
- return (finite(v[0]) && finite(v[1]) && finite(v[2]) && finite(v[3]));
+ return (isfinite(v[0]) && isfinite(v[1]) && isfinite(v[2]) && isfinite(v[3]));
}
MINLINE bool is_one_v3(const float v[3])
const float dist_2d = len_v2v2(vec1, vec2);
if (dist_2d > FLT_EPSILON) {
const float dist = inset / dist_2d;
- BLI_assert(finite(dist));
+ BLI_assert(isfinite(dist));
interp_v2_v2v2(vec1, vec1, vec2, dist);
interp_v2_v2v2(vec2, vec2, vec1, dist);
}
}
dist_sq = dist_squared_to_line_segment_v2(mvalf, vec1, vec2);
- BLI_assert(finite(dist_sq));
+ BLI_assert(isfinite(dist_sq));
return dist_sq;
}
int i;
/* ignore nan verts */
- if ((finite(co[0]) == false) ||
- (finite(co[1]) == false) ||
- (finite(co[2]) == false))
+ if ((isfinite(co[0]) == false) ||
+ (isfinite(co[1]) == false) ||
+ (isfinite(co[2]) == false))
{
return NULL;
}
float cent[2];
/* ignore nan verts */
- if (isnan(uv[0]) || !finite(uv[0]) ||
- isnan(uv[1]) || !finite(uv[1])
+ if (isnan(uv[0]) || !isfinite(uv[0]) ||
+ isnan(uv[1]) || !isfinite(uv[1])
)
{
return NULL;
if ((scene->audio.flag & AUDIO_SYNC) &&
(sad->flag & ANIMPLAY_FLAG_REVERSE) == false &&
- finite(time = BKE_sound_sync_scene(scene)))
+ isfinite(time = BKE_sound_sync_scene(scene)))
{
double newfra = (double)time * FPS;
float tvec[2];
eV3DProjStatus ret = ed_view3d_project__internal(ar, perspmat, is_local, co, tvec, flag);
if (ret == V3D_PROJ_RET_OK) {
- if (finite(tvec[0]) &&
- finite(tvec[1]))
+ if (isfinite(tvec[0]) &&
+ isfinite(tvec[1]))
{
copy_v2_v2(r_co, tvec);
}
/* possible some values become nan when
* viewpoint and object are both zero */
- if (!finite(out[0])) out[0] = 0.0f;
- if (!finite(out[1])) out[1] = 0.0f;
- if (!finite(out[2])) out[2] = 0.0f;
+ if (!isfinite(out[0])) out[0] = 0.0f;
+ if (!isfinite(out[1])) out[1] = 0.0f;
+ if (!isfinite(out[2])) out[2] = 0.0f;
}
}
}
static int modf_to_index(Freestyle::real x, unsigned int range)
{
- if (finite(x)) {
+ if (isfinite(x)) {
Freestyle::real tmp;
int i = abs((int)(modf(x, &tmp) * range));
BLI_assert(i >= 0 && i < range);
const float size_co_inv = 1.0f / (omd->size * omd->spatial_size);
/* can happen in when size is small, avoid bad array lookups later and quit now */
- if (!finite(size_co_inv)) {
+ if (!isfinite(size_co_inv)) {
return derivedData;
}
#ifdef _WIN32
#include "BLI_path_util.h" /* BLI_setenv() */
-#include "BLI_math_base.h" /* finite() */
+#include "BLI_math_base.h" /* isfinite() */
#endif
/* array utility function */
if (val == -1 && PyErr_Occurred()) {
ok = false;
}
- else if (!finite(val)) {
+ else if (!isfinite(val)) {
*value = 0.0;
}
else {
if (use_gil)
PyGILState_Release(gilstate);
- if (finite(result)) {
+ if (isfinite(result)) {
return (float)result;
}
else {
bool BPy_errors_to_report(ReportList *reports)
{
return BPy_errors_to_report_ex(reports, true, true);
-}
\ No newline at end of file
+}
{
if (axis) {
if (is_zero_v3(axis) ||
- !finite(axis[0]) ||
- !finite(axis[1]) ||
- !finite(axis[2]))
+ !isfinite(axis[0]) ||
+ !isfinite(axis[1]) ||
+ !isfinite(axis[2]))
{
axis[0] = 1.0f;
axis[1] = 0.0f;
}
if (angle) {
- if (!finite(*angle)) {
+ if (!isfinite(*angle)) {
*angle = 0.0f;
}
}
if (bb[0] > bb[3] || bb[1] > bb[4] || bb[2] > bb[5])
return;
/* skip objects with inf bounding boxes */
- if (!finite(bb[0]) || !finite(bb[1]) || !finite(bb[2]))
+ if (!isfinite(bb[0]) || !isfinite(bb[1]) || !isfinite(bb[2]))
return;
- if (!finite(bb[3]) || !finite(bb[4]) || !finite(bb[5]))
+ if (!isfinite(bb[3]) || !isfinite(bb[4]) || !isfinite(bb[5]))
return;
/* skip objects with zero bounding box, they are of no use, and
* will give problems in rtbuild_heuristic_object_split later */
if (is_playing_sound == 0) {
const float time = BKE_sound_sync_scene(scene);
- if (finite(time)) {
+ if (isfinite(time)) {
int ncfra = time * (float)FPS + 0.5f;
if (ncfra != scene->r.cfra) {
scene->r.cfra = ncfra;