replace MIN/MAX 3,4 with inline functions
authorCampbell Barton <ideasman42@gmail.com>
Fri, 21 Dec 2012 05:07:26 +0000 (05:07 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Fri, 21 Dec 2012 05:07:26 +0000 (05:07 +0000)
31 files changed:
source/blender/blenkernel/intern/dynamicpaint.c
source/blender/blenkernel/intern/fcurve.c
source/blender/blenkernel/intern/mball.c
source/blender/blenkernel/intern/sequencer.c
source/blender/blenkernel/intern/smoke.c
source/blender/blenkernel/intern/softbody.c
source/blender/blenlib/intern/math_base_inline.c
source/blender/blenlib/intern/math_color.c
source/blender/blenlib/intern/math_geom.c
source/blender/blenloader/intern/readfile.c
source/blender/compositor/operations/COM_ScreenLensDistortionOperation.cpp
source/blender/editors/armature/reeb.c
source/blender/editors/mesh/editmesh_knife.c
source/blender/editors/mesh/meshtools.c
source/blender/editors/physics/physics_fluid.c
source/blender/editors/space_clip/tracking_select.c
source/blender/editors/space_node/drawnode.c
source/blender/editors/space_sequencer/sequencer_add.c
source/blender/editors/space_view3d/drawvolume.c
source/blender/editors/space_view3d/view3d_edit.c
source/blender/editors/space_view3d/view3d_view.c
source/blender/editors/uvedit/uvedit_parametrizer.c
source/blender/gpu/intern/gpu_draw.c
source/blender/nodes/composite/nodes/node_composite_lensdist.c
source/blender/python/mathutils/mathutils_geometry.c
source/blender/render/intern/raytrace/rayobject_octree.cpp
source/blender/render/intern/source/imagetexture.c
source/blender/render/intern/source/occlusion.c
source/blender/render/intern/source/render_texture.c
source/blender/render/intern/source/shadeoutput.c
source/blender/render/intern/source/volume_precache.c

index 56b9db9..e32f8d5 100644 (file)
@@ -687,7 +687,7 @@ static void boundInsert(Bounds3D *b, float point[3])
 static float getSurfaceDimension(PaintSurfaceData *sData)
 {
        Bounds3D *mb = &sData->bData->mesh_bounds;
-       return MAX3((mb->max[0] - mb->min[0]), (mb->max[1] - mb->min[1]), (mb->max[2] - mb->min[2]));
+       return max_fff((mb->max[0] - mb->min[0]), (mb->max[1] - mb->min[1]), (mb->max[2] - mb->min[2]));
 }
 
 static void freeGrid(PaintSurfaceData *data)
@@ -754,14 +754,14 @@ static void surfaceGenerateGrid(struct DynamicPaintSurface *surface)
                /* get dimensions */
                sub_v3_v3v3(dim, grid->grid_bounds.max, grid->grid_bounds.min);
                copy_v3_v3(td, dim);
-               min_dim = MAX3(td[0], td[1], td[2]) / 1000.f;
+               min_dim = max_fff(td[0], td[1], td[2]) / 1000.f;
 
                /* deactivate zero axises */
                for (i = 0; i < 3; i++) {
                        if (td[i] < min_dim) { td[i] = 1.0f; axis -= 1; }
                }
 
-               if (axis == 0 || MAX3(td[0], td[1], td[2]) < 0.0001f) {
+               if (axis == 0 || max_fff(td[0], td[1], td[2]) < 0.0001f) {
                        MEM_freeN(grid_bounds);
                        MEM_freeN(bData->grid);
                        bData->grid = NULL;
@@ -4260,7 +4260,7 @@ static int dynamicPaint_prepareEffectStep(DynamicPaintSurface *surface, Scene *s
        if (surface->effect & MOD_DPAINT_EFFECT_DO_SHRINK)
                shrink_speed = surface->shrink_speed;
 
-       fastest_effect = MAX3(spread_speed, shrink_speed, average_force);
+       fastest_effect = max_fff(spread_speed, shrink_speed, average_force);
        avg_dist = bData->average_dist * CANVAS_REL_SIZE / getSurfaceDimension(sData);
 
        steps = (int)ceil(1.5f * EFF_MOVEMENT_PER_FRAME * fastest_effect / avg_dist * timescale);
@@ -4444,8 +4444,7 @@ static void dynamicPaint_doWaveStep(DynamicPaintSurface *surface, float timescal
        float dt, min_dist, damp_factor;
        float wave_speed = surface->wave_speed;
        double average_dist = 0.0f;
-       Bounds3D *mb = &sData->bData->mesh_bounds;
-       float canvas_size = MAX3((mb->max[0] - mb->min[0]), (mb->max[1] - mb->min[1]), (mb->max[2] - mb->min[2]));
+       const float canvas_size = getSurfaceDimension(sData);
        float wave_scale = CANVAS_REL_SIZE / canvas_size;
 
        /* allocate memory */
index ec61311..5e01773 100644 (file)
@@ -500,8 +500,8 @@ short calc_fcurve_bounds(FCurve *fcu, float *xmin, float *xmax, float *ymin, flo
                                        BLI_assert(bezt_last != NULL);
                                        
                                        if (include_handles) {
-                                               xminv = MIN3(xminv, bezt_first->vec[0][0], bezt_first->vec[1][0]);
-                                               xmaxv = MAX3(xmaxv, bezt_last->vec[1][0],  bezt_last->vec[2][0]);
+                                               xminv = min_fff(xminv, bezt_first->vec[0][0], bezt_first->vec[1][0]);
+                                               xmaxv = max_fff(xmaxv, bezt_last->vec[1][0],  bezt_last->vec[2][0]);
                                        }
                                        else {
                                                xminv = min_ff(xminv, bezt_first->vec[1][0]);
@@ -517,8 +517,8 @@ short calc_fcurve_bounds(FCurve *fcu, float *xmin, float *xmax, float *ymin, flo
                                for (bezt = fcu->bezt, i = 0; i < fcu->totvert; bezt++, i++) {
                                        if ((do_sel_only == FALSE) || BEZSELECTED(bezt)) {
                                                if (include_handles) {
-                                                       yminv = MIN4(yminv, bezt->vec[1][1], bezt->vec[0][1], bezt->vec[2][1]);
-                                                       ymaxv = MAX4(ymaxv, bezt->vec[1][1], bezt->vec[0][1], bezt->vec[2][1]);
+                                                       yminv = min_ffff(yminv, bezt->vec[1][1], bezt->vec[0][1], bezt->vec[2][1]);
+                                                       ymaxv = max_ffff(ymaxv, bezt->vec[1][1], bezt->vec[0][1], bezt->vec[2][1]);
                                                }
                                                else {
                                                        yminv = min_ff(yminv, bezt->vec[1][1]);
index 5c882fd..b3f71e5 100644 (file)
@@ -1514,7 +1514,7 @@ static void find_first_points(PROCESS *mbproc, MetaBall *mb, int a)
                float in_v /*, out_v*/;
                float workp[3];
                float dvec[3];
-               float tmp_v, workp_v, max_len, len, nx, ny, nz, MAXN;
+               float tmp_v, workp_v, max_len, nx, ny, nz, max_dim;
 
                calc_mballco(ml, in);
                in_v = mbproc->function(in[0], in[1], in[2]);
@@ -1573,17 +1573,17 @@ static void find_first_points(PROCESS *mbproc, MetaBall *mb, int a)
                                        ny = abs((out[1] - in[1]) / mbproc->size);
                                        nz = abs((out[2] - in[2]) / mbproc->size);
                                        
-                                       MAXN = MAX3(nx, ny, nz);
-                                       if (MAXN != 0.0f) {
-                                               dvec[0] = (out[0] - in[0]) / MAXN;
-                                               dvec[1] = (out[1] - in[1]) / MAXN;
-                                               dvec[2] = (out[2] - in[2]) / MAXN;
+                                       max_dim = max_fff(nx, ny, nz);
+                                       if (max_dim != 0.0f) {
+                                               float len = 0.0f;
+
+                                               dvec[0] = (out[0] - in[0]) / max_dim;
+                                               dvec[1] = (out[1] - in[1]) / max_dim;
+                                               dvec[2] = (out[2] - in[2]) / max_dim;
 
-                                               len = 0.0;
                                                while (len <= max_len) {
-                                                       workp[0] += dvec[0];
-                                                       workp[1] += dvec[1];
-                                                       workp[2] += dvec[2];
+                                                       add_v3_v3(workp, dvec);
+
                                                        /* compute value of implicite function */
                                                        tmp_v = mbproc->function(workp[0], workp[1], workp[2]);
                                                        /* add cube to the stack, when value of implicite function crosses zero value */
index 1467d24..5e44f2d 100644 (file)
@@ -593,8 +593,8 @@ void BKE_sequence_calc(Scene *scene, Sequence *seq)
                        /* XXX These resets should not be necessary, but users used to be able to
                         *     edit effect's length, leading to strange results. See [#29190] */
                        seq->startofs = seq->endofs = seq->startstill = seq->endstill = 0;
-                       seq->start = seq->startdisp = MAX3(seq->seq1->startdisp, seq->seq2->startdisp, seq->seq3->startdisp);
-                       seq->enddisp = MIN3(seq->seq1->enddisp, seq->seq2->enddisp, seq->seq3->enddisp);
+                       seq->start = seq->startdisp = max_iii(seq->seq1->startdisp, seq->seq2->startdisp, seq->seq3->startdisp);
+                       seq->enddisp                = min_iii(seq->seq1->enddisp,   seq->seq2->enddisp,   seq->seq3->enddisp);
                        /* we cant help if strips don't overlap, it wont give useful results.
                         * but at least ensure 'len' is never negative which causes bad bugs elsewhere. */
                        if (seq->enddisp < seq->startdisp) {
index c9cf5d5..629b2c9 100644 (file)
@@ -170,7 +170,7 @@ void smoke_reallocate_fluid(SmokeDomainSettings *sds, float dx, int res[3], int
 
        if (free_old && sds->fluid)
                smoke_free(sds->fluid);
-       if (!MIN3(res[0], res[1], res[2])) {
+       if (!min_iii(res[0], res[1], res[2])) {
                sds->fluid = NULL;
                return;
        }
@@ -191,7 +191,7 @@ void smoke_reallocate_highres_fluid(SmokeDomainSettings *sds, float dx, int res[
 
        if (free_old && sds->wt)
                smoke_turbulence_free(sds->wt);
-       if (!MIN3(res[0], res[1], res[2])) {
+       if (!min_iii(res[0], res[1], res[2])) {
                sds->wt = NULL;
                return;
        }
index 5a10845..79356d3 100644 (file)
@@ -1097,12 +1097,12 @@ static int sb_detect_face_pointCached(float face_v1[3], float face_v2[3], float
        float facedist, outerfacethickness, tune = 10.f;
        int a, deflected=0;
 
-       aabbmin[0] = MIN3(face_v1[0], face_v2[0], face_v3[0]);
-       aabbmin[1] = MIN3(face_v1[1], face_v2[1], face_v3[1]);
-       aabbmin[2] = MIN3(face_v1[2], face_v2[2], face_v3[2]);
-       aabbmax[0] = MAX3(face_v1[0], face_v2[0], face_v3[0]);
-       aabbmax[1] = MAX3(face_v1[1], face_v2[1], face_v3[1]);
-       aabbmax[2] = MAX3(face_v1[2], face_v2[2], face_v3[2]);
+       aabbmin[0] = min_fff(face_v1[0], face_v2[0], face_v3[0]);
+       aabbmin[1] = min_fff(face_v1[1], face_v2[1], face_v3[1]);
+       aabbmin[2] = min_fff(face_v1[2], face_v2[2], face_v3[2]);
+       aabbmax[0] = max_fff(face_v1[0], face_v2[0], face_v3[0]);
+       aabbmax[1] = max_fff(face_v1[1], face_v2[1], face_v3[1]);
+       aabbmax[2] = max_fff(face_v1[2], face_v2[2], face_v3[2]);
 
        /* calculate face normal once again SIGH */
        sub_v3_v3v3(edge1, face_v1, face_v2);
@@ -1196,12 +1196,12 @@ static int sb_detect_face_collisionCached(float face_v1[3], float face_v2[3], fl
        float t, tune = 10.0f;
        int a, deflected=0;
 
-       aabbmin[0] = MIN3(face_v1[0], face_v2[0], face_v3[0]);
-       aabbmin[1] = MIN3(face_v1[1], face_v2[1], face_v3[1]);
-       aabbmin[2] = MIN3(face_v1[2], face_v2[2], face_v3[2]);
-       aabbmax[0] = MAX3(face_v1[0], face_v2[0], face_v3[0]);
-       aabbmax[1] = MAX3(face_v1[1], face_v2[1], face_v3[1]);
-       aabbmax[2] = MAX3(face_v1[2], face_v2[2], face_v3[2]);
+       aabbmin[0] = min_fff(face_v1[0], face_v2[0], face_v3[0]);
+       aabbmin[1] = min_fff(face_v1[1], face_v2[1], face_v3[1]);
+       aabbmin[2] = min_fff(face_v1[2], face_v2[2], face_v3[2]);
+       aabbmax[0] = max_fff(face_v1[0], face_v2[0], face_v3[0]);
+       aabbmax[1] = max_fff(face_v1[1], face_v2[1], face_v3[1]);
+       aabbmax[2] = max_fff(face_v1[2], face_v2[2], face_v3[2]);
 
        hash  = vertexowner->soft->scratch->colliderhash;
        ihash = BLI_ghashIterator_new(hash);
index b9866f9..8eb6561 100644 (file)
@@ -175,6 +175,42 @@ MINLINE int max_ii(int a, int b)
        return (b < a) ? a : b;
 }
 
+MINLINE float min_fff(float a, float b, float c)
+{
+       return min_ff(min_ff(a, b), c);
+}
+MINLINE float max_fff(float a, float b, float c)
+{
+       return max_ff(max_ff(a, b), c);
+}
+
+MINLINE int min_iii(int a, int b, int c)
+{
+       return min_ii(min_ii(a, b), c);
+}
+MINLINE int max_iii(int a, int b, int c)
+{
+       return max_ii(max_ii(a, b), c);
+}
+
+MINLINE float min_ffff(float a, float b, float c, float d)
+{
+       return min_ff(min_fff(a, b, c), d);
+}
+MINLINE float max_ffff(float a, float b, float c, float d)
+{
+       return max_ff(max_fff(a, b, c), d);
+}
+
+MINLINE int min_iiii(int a, int b, int c, int d)
+{
+       return min_ii(min_iii(a, b, c), d);
+}
+MINLINE int max_iiii(int a, int b, int c, int d)
+{
+       return max_ii(max_iii(a, b, c), d);
+}
+
 MINLINE float signf(float f)
 {
        return (f < 0.f) ? -1.f : 1.f;
index 64851db..07cd85c 100644 (file)
@@ -266,8 +266,8 @@ void rgb_to_hsv_v(const float rgb[3], float r_hsv[3])
 
 void rgb_to_hsl(float r, float g, float b, float *lh, float *ls, float *ll)
 {
-       float cmax = MAX3(r, g, b);
-       float cmin = MIN3(r, g, b);
+       const float cmax = max_fff(r, g, b);
+       const float cmin = min_fff(r, g, b);
        float h, s, l = (cmax + cmin) / 2.0f;
 
        if (cmax == cmin) {
index 9310256..10a9a2d 100644 (file)
@@ -140,7 +140,7 @@ float area_poly_v3(int nr, float verts[][3], const float normal[3])
        x = fabsf(normal[0]);
        y = fabsf(normal[1]);
        z = fabsf(normal[2]);
-       max = MAX3(x, y, z);
+       max = max_fff(x, y, z);
        if (max == y) py = 2;
        else if (max == x) {
                px = 1;
@@ -1198,10 +1198,10 @@ int isect_axial_line_tri_v3(const int axis, const float p1[3], const float p2[3]
        return isect_line_tri_v3(p1,p2,v0,v1,v2,lambda);
 
        /* first a simple bounding box test */
-       if (MIN3(v0[a1],v1[a1],v2[a1]) > p1[a1]) return 0;
-       if (MIN3(v0[a2],v1[a2],v2[a2]) > p1[a2]) return 0;
-       if (MAX3(v0[a1],v1[a1],v2[a1]) < p1[a1]) return 0;
-       if (MAX3(v0[a2],v1[a2],v2[a2]) < p1[a2]) return 0;
+       if (min_fff(v0[a1], v1[a1], v2[a1]) > p1[a1]) return 0;
+       if (min_fff(v0[a2], v1[a2], v2[a2]) > p1[a2]) return 0;
+       if (max_fff(v0[a1], v1[a1], v2[a1]) < p1[a1]) return 0;
+       if (max_fff(v0[a2], v1[a2], v2[a2]) < p1[a2]) return 0;
 
        /* then a full intersection test */
 #endif
index acc0c00..38d41db 100644 (file)
@@ -7885,7 +7885,7 @@ static void do_versions(FileData *fd, Library *lib, Main *main)
                                if (md->type == eModifierType_Smoke) {
                                        SmokeModifierData *smd = (SmokeModifierData *)md;
                                        if ((smd->type & MOD_SMOKE_TYPE_DOMAIN) && smd->domain) {
-                                               int maxres = MAX3(smd->domain->res[0], smd->domain->res[1], smd->domain->res[2]);
+                                               int maxres = max_iii(smd->domain->res[0], smd->domain->res[1], smd->domain->res[2]);
                                                smd->domain->scale = smd->domain->dx * maxres;
                                                smd->domain->dx = 1.0f / smd->domain->scale;
                                        }
index d2c6c83..fb996f2 100644 (file)
@@ -204,10 +204,10 @@ bool ScreenLensDistortionOperation::determineDependingAreaOfInterest(rcti *input
        }
 
 #define UPDATE_INPUT  { \
-               newInput.xmin = MIN4(newInput.xmin, coords[0], coords[2], coords[4]); \
-               newInput.ymin = MIN4(newInput.ymin, coords[1], coords[3], coords[5]); \
-               newInput.xmax = MAX4(newInput.xmax, coords[0], coords[2], coords[4]); \
-               newInput.ymax = MAX4(newInput.ymax, coords[1], coords[3], coords[5]); \
+               newInput.xmin = min_ffff(newInput.xmin, coords[0], coords[2], coords[4]); \
+               newInput.ymin = min_ffff(newInput.ymin, coords[1], coords[3], coords[5]); \
+               newInput.xmax = max_ffff(newInput.xmax, coords[0], coords[2], coords[4]); \
+               newInput.ymax = max_ffff(newInput.ymax, coords[1], coords[3], coords[5]); \
        } (void)0
        
        rcti newInput;
@@ -273,7 +273,7 @@ void ScreenLensDistortionOperation::updateVariables(float distortion, float disp
        const float d = 0.25f * max_ff(min_ff(dispersion, 1.0f), 0.0f);
        this->m_kr = max_ff(min_ff((this->m_kg + d), 1.0f), -0.999f);
        this->m_kb = max_ff(min_ff((this->m_kg - d), 1.0f), -0.999f);
-       this->m_maxk = MAX3(this->m_kr, this->m_kg, this->m_kb);
+       this->m_maxk = max_fff(this->m_kr, this->m_kg, this->m_kb);
        this->m_sc = (this->m_data->fit && (this->m_maxk > 0.0f)) ? (1.0f / (1.0f + 2.0f * this->m_maxk)) :
                                                                    (1.0f / (1.0f +        this->m_maxk));
        this->m_drg = 4.0f * (this->m_kg - this->m_kr);
index b1bf13d..1b5c550 100644 (file)
@@ -634,7 +634,7 @@ static void mergeArcBuckets(ReebArc *aDst, ReebArc *aSrc, float start, float end
        if (aDst->bcount > 0 && aSrc->bcount > 0) {
                int indexDst = 0, indexSrc = 0;
                
-               start = MAX3(start, aDst->buckets[0].val, aSrc->buckets[0].val);
+               start = max_fff(start, aDst->buckets[0].val, aSrc->buckets[0].val);
                
                while (indexDst < aDst->bcount && aDst->buckets[indexDst].val < start) {
                        indexDst++;
index a195f37..c8a1264 100644 (file)
@@ -1146,7 +1146,7 @@ static float len_v3_tri_side_max(const float v1[3], const float v2[3], const flo
        const float s2 = len_squared_v3v3(v2, v3);
        const float s3 = len_squared_v3v3(v3, v1);
 
-       return sqrtf(MAX3(s1, s2, s3));
+       return sqrtf(max_fff(s1, s2, s3));
 }
 
 static BMEdgeHit *knife_edge_tri_isect(KnifeTool_OpData *kcd, BMBVHTree *bmtree,
index 2b3e310..773331d 100644 (file)
@@ -1062,7 +1062,7 @@ static float *editmesh_get_mirror_uv(BMEditMesh *em, int axis, float *uv, float
 static unsigned int mirror_facehash(const void *ptr)
 {
        const MFace *mf = ptr;
-       int v0, v1;
+       unsigned int v0, v1;
 
        if (mf->v4) {
                v0 = MIN4(mf->v1, mf->v2, mf->v3, mf->v4);
index db2023b..c54ac48 100644 (file)
@@ -127,7 +127,7 @@ static float get_fluid_size_m(Scene *scene, Object *domainob, FluidsimSettings *
                float longest_axis;
                
                BKE_object_dimensions_get(domainob, dim);
-               longest_axis = MAX3(dim[0], dim[1], dim[2]);
+               longest_axis = max_fff(dim[0], dim[1], dim[2]);
                
                return longest_axis * scene->unit.scale_length;
        }
index b8e162b..bec5013 100644 (file)
@@ -123,10 +123,10 @@ static int track_mouse_area(const bContext *C, float co[2], MovieTrackingTrack *
 
        BKE_tracking_marker_pattern_minmax(marker, pat_min, pat_max);
 
-       epsx = MIN4(pat_min[0] - marker->search_min[0], marker->search_max[0] - pat_max[0],
-                   fabsf(pat_min[0]), fabsf(pat_max[0])) / 2;
-       epsy = MIN4(pat_min[1] - marker->search_min[1], marker->search_max[1] - pat_max[1],
-                   fabsf(pat_min[1]), fabsf(pat_max[1])) / 2;
+       epsx = min_ffff(pat_min[0] - marker->search_min[0], marker->search_max[0] - pat_max[0],
+                       fabsf(pat_min[0]), fabsf(pat_max[0])) / 2;
+       epsy = min_ffff(pat_min[1] - marker->search_min[1], marker->search_max[1] - pat_max[1],
+                       fabsf(pat_min[1]), fabsf(pat_max[1])) / 2;
 
        epsx = max_ff(epsx, 2.0f / width);
        epsy = max_ff(epsy, 2.0f / height);
@@ -166,7 +166,7 @@ static float dist_to_rect(float co[2], float pos[2], float min[2], float max[2])
        d3 = dist_squared_to_line_segment_v2(p, v3, v4);
        d4 = dist_squared_to_line_segment_v2(p, v4, v1);
 
-       return sqrtf(MIN4(d1, d2, d3, d4));
+       return sqrtf(min_ffff(d1, d2, d3, d4));
 }
 
 static float dist_to_crns(float co[2], float pos[2], float crns[4][2])
@@ -181,7 +181,7 @@ static float dist_to_crns(float co[2], float pos[2], float crns[4][2])
        d3 = dist_squared_to_line_segment_v2(p, v3, v4);
        d4 = dist_squared_to_line_segment_v2(p, v4, v1);
 
-       return sqrtf(MIN4(d1, d2, d3, d4));
+       return sqrtf(min_ffff(d1, d2, d3, d4));
 }
 
 static MovieTrackingTrack *find_nearest_track(SpaceClip *sc, ListBase *tracksbase, float co[2])
@@ -210,7 +210,7 @@ static MovieTrackingTrack *find_nearest_track(SpaceClip *sc, ListBase *tracksbas
                                d3 = dist_to_rect(co, marker->pos, marker->search_min, marker->search_max);
 
                        /* choose minimal distance. useful for cases of overlapped markers. */
-                       dist = MIN3(d1, d2, d3);
+                       dist = min_fff(d1, d2, d3);
 
                        if (track == NULL || dist < mindist) {
                                track = cur;
index f123bcd..59dd66a 100644 (file)
@@ -3416,10 +3416,10 @@ int node_link_bezier_points(View2D *v2d, SpaceNode *snode, bNodeLink *link, floa
                vec[2][0] = vec[3][0] - dist;
                vec[2][1] = vec[3][1];
        }
-       if (v2d && MIN4(vec[0][0], vec[1][0], vec[2][0], vec[3][0]) > v2d->cur.xmax) {
+       if (v2d && min_ffff(vec[0][0], vec[1][0], vec[2][0], vec[3][0]) > v2d->cur.xmax) {
                /* clipped */
        }
-       else if (v2d && MAX4(vec[0][0], vec[1][0], vec[2][0], vec[3][0]) < v2d->cur.xmin) {
+       else if (v2d && max_ffff(vec[0][0], vec[1][0], vec[2][0], vec[3][0]) < v2d->cur.xmin) {
                /* clipped */
        }
        else {
index 8155f9d..6219a90 100644 (file)
@@ -859,9 +859,9 @@ static int sequencer_add_effect_strip_exec(bContext *C, wmOperator *op)
         * the other strips. */
        if (!RNA_struct_property_is_set(op->ptr, "channel")) {
                if (seq->seq1) {
-                       int chan = MAX3(seq->seq1 ? seq->seq1->machine : 0,
-                                       seq->seq2 ? seq->seq2->machine : 0,
-                                       seq->seq3 ? seq->seq3->machine : 0);
+                       int chan = max_iii(seq->seq1 ? seq->seq1->machine : 0,
+                                          seq->seq2 ? seq->seq2->machine : 0,
+                                          seq->seq3 ? seq->seq3->machine : 0);
                        if (chan < MAXSEQ)
                                seq->machine = chan;
                }
index 70690e2..29daee3 100644 (file)
@@ -449,8 +449,8 @@ void draw_smoke_volume(SmokeDomainSettings *sds, Object *ob,
         * inserting previously found vertex into the plane equation */
 
        /* d0 = (viewnormal[0]*cv[i][0] + viewnormal[1]*cv[i][1] + viewnormal[2]*cv[i][2]); */ /* UNUSED */
-       ds = (ABS(viewnormal[0]) * size[0] + ABS(viewnormal[1]) * size[1] + ABS(viewnormal[2]) * size[2]);
-       dd = MAX3(sds->global_size[0], sds->global_size[1], sds->global_size[2]) / 128.f;
+       ds = (fabsf(viewnormal[0]) * size[0] + fabsf(viewnormal[1]) * size[1] + fabsf(viewnormal[2]) * size[2]);
+       dd = max_fff(sds->global_size[0], sds->global_size[1], sds->global_size[2]) / 128.f;
        n = 0;
        good_index = i;
 
@@ -570,7 +570,7 @@ void draw_smoke_velocity(SmokeDomainSettings *domain, Object *ob)
 
        float min[3];
        float *cell_size = domain->cell_size;
-       float step_size = ((float)MAX3(base_res[0], base_res[1], base_res[2])) / 16.f;
+       float step_size = ((float)max_iii(base_res[0], base_res[1], base_res[2])) / 16.f;
        float vf = domain->scale / 16.f * 2.f; /* velocity factor */
 
        glLineWidth(1.0f);
@@ -624,7 +624,7 @@ void draw_smoke_heat(SmokeDomainSettings *domain, Object *ob)
 
        float min[3];
        float *cell_size = domain->cell_size;
-       float step_size = ((float)MAX3(base_res[0], base_res[1], base_res[2])) / 16.f;
+       float step_size = ((float)max_iii(base_res[0], base_res[1], base_res[2])) / 16.f;
        float vf = domain->scale / 16.f * 2.f; /* velocity factor */
 
        /* set first position so that it doesn't jump when domain moves */
index cf64753..78c3f4e 100644 (file)
@@ -2233,7 +2233,7 @@ static void view3d_from_minmax(bContext *C, View3D *v3d, ARegion *ar,
        float new_dist;
 
        sub_v3_v3v3(afm, max, min);
-       size = MAX3(afm[0], afm[1], afm[2]);
+       size = max_fff(afm[0], afm[1], afm[2]);
 
        if (ok_dist) {
                /* fix up zoom distance if needed */
index 56ce9bd..41d092c 100644 (file)
@@ -1070,11 +1070,9 @@ static int view3d_localview_init(Main *bmain, Scene *scene, ScrArea *sa, ReportL
                                }
                        }
                }
-               
-               box[0] = (max[0] - min[0]);
-               box[1] = (max[1] - min[1]);
-               box[2] = (max[2] - min[2]);
-               size = MAX3(box[0], box[1], box[2]);
+
+               sub_v3_v3v3(box, max, min);
+               size = max_fff(box[0], box[1], box[2]);
 
                /* do not zoom closer than the near clipping plane */
                size = max_ff(size, v3d->near * 1.5f);
index 8703234..5d3a598 100644 (file)
@@ -3109,7 +3109,7 @@ static PBool p_chart_lscm_solve(PHandle *handle, PChart *chart)
                sina2 = sin(a2);
                sina3 = sin(a3);
 
-               sinmax = MAX3(sina1, sina2, sina3);
+               sinmax = max_fff(sina1, sina2, sina3);
 
                /* shift vertices to find most stable order */
                if (sina3 != sinmax) {
index 4b04ee9..0746230 100644 (file)
@@ -101,9 +101,9 @@ void GPU_render_text(MTFace *tface, int mode,
                float line_start= 0.0f, line_height;
                
                if (v4)
-                       line_height= MAX4(v1[1], v2[1], v3[1], v4[2]) - MIN4(v1[1], v2[1], v3[1], v4[2]);
+                       line_height = max_ffff(v1[1], v2[1], v3[1], v4[2]) - min_ffff(v1[1], v2[1], v3[1], v4[2]);
                else
-                       line_height= MAX3(v1[1], v2[1], v3[1]) - MIN3(v1[1], v2[1], v3[1]);
+                       line_height = max_fff(v1[1], v2[1], v3[1]) - min_fff(v1[1], v2[1], v3[1]);
                line_height *= 1.2f; /* could be an option? */
                /* end multiline */
 
index c3f64f0..1ac8c45 100644 (file)
@@ -85,7 +85,7 @@ static void lensDistort(CompBuf *dst, CompBuf *src, float kr, float kg, float kb
                // so in the case of pincushion (kn < 0), corners will be outside window.
                // Now also optionally scales image such that black areas are not visible when distort factor is positive
                // (makes distorted corners match window corners, but really only valid if mk<=0.5)
-               const float mk = MAX3(kr, kg, kb);
+               const float mk = max_fff(kr, kg, kb);
                const float sc = (fit && (mk > 0.f)) ? (1.f/(1.f + 2.f*mk)) : (1.f/(1.f + mk));
                const float drg = 4.f*(kg - kr), dgb = 4.f*(kb - kg);
                
index 1db0538..3d05f51 100644 (file)
@@ -1102,7 +1102,7 @@ static PyObject *M_Geometry_interpolate_bezier(PyObject *UNUSED(self), PyObject
                return NULL;
        }
 
-       dims = MAX4(vec_k1->size, vec_h1->size, vec_h2->size, vec_k2->size);
+       dims = max_iiii(vec_k1->size, vec_h1->size, vec_h2->size, vec_k2->size);
 
        for (i = 0; i < vec_k1->size; i++) k1[i] = vec_k1->vec[i];
        for (i = 0; i < vec_h1->size; i++) h1[i] = vec_h1->vec[i];
index dad7fe5..148e341 100644 (file)
@@ -542,13 +542,13 @@ static void octree_fill_rayface(Octree *oc, RayFace *face)
                oc2 = rts[1][c];
                oc3 = rts[2][c];
                if (!RE_rayface_isQuad(face)) {
-                       ocmin[c] = MIN3(oc1, oc2, oc3);
-                       ocmax[c] = MAX3(oc1, oc2, oc3);
+                       ocmin[c] = min_iii(oc1, oc2, oc3);
+                       ocmax[c] = max_iii(oc1, oc2, oc3);
                }
                else {
                        oc4 = rts[3][c];
-                       ocmin[c] = MIN4(oc1, oc2, oc3, oc4);
-                       ocmax[c] = MAX4(oc1, oc2, oc3, oc4);
+                       ocmin[c] = min_iiii(oc1, oc2, oc3, oc4);
+                       ocmax[c] = max_iiii(oc1, oc2, oc3, oc4);
                }
                if (ocmax[c] > oc->ocres - 1) ocmax[c] = oc->ocres - 1;
                if (ocmin[c] < 0) ocmin[c] = 0;
@@ -993,7 +993,7 @@ static int RE_rayobject_octree_intersect(RayObject *tree, Isect *is)
                }
                
                xo = ocx1; yo = ocy1; zo = ocz1;
-               dda_lambda = MIN3(lambda_x, lambda_y, lambda_z);
+               dda_lambda = min_fff(lambda_x, lambda_y, lambda_z);
                
                vec2[0] = ox1;
                vec2[1] = oy1;
@@ -1083,7 +1083,7 @@ static int RE_rayobject_octree_intersect(RayObject *tree, Isect *is)
                                
                        }
 
-                       dda_lambda = MIN3(lambda_x, lambda_y, lambda_z);
+                       dda_lambda = min_fff(lambda_x, lambda_y, lambda_z);
                        if (dda_lambda == lambda_o) break;
                        /* to make sure the last node is always checked */
                        if (lambda_o >= 1.0f) break;
index cd06839..7c14e0e 100644 (file)
@@ -286,7 +286,7 @@ int imagewrap(Tex *tex, Image *ima, ImBuf *ibuf, const float texvec[3], TexResul
 
        if (texres->talpha) texres->tin= texres->ta;
        else if (tex->imaflag & TEX_CALCALPHA) {
-               texres->ta= texres->tin= MAX3(texres->tr, texres->tg, texres->tb);
+               texres->ta = texres->tin = max_fff(texres->tr, texres->tg, texres->tb);
        }
        else texres->ta= texres->tin= 1.0;
        
@@ -1112,10 +1112,10 @@ static int imagewraposa_aniso(Tex *tex, Image *ima, ImBuf *ibuf, const float tex
        }
 
        /* pixel coordinates */
-       minx = MIN3(dxt[0], dyt[0], dxt[0] + dyt[0]);
-       maxx = MAX3(dxt[0], dyt[0], dxt[0] + dyt[0]);
-       miny = MIN3(dxt[1], dyt[1], dxt[1] + dyt[1]);
-       maxy = MAX3(dxt[1], dyt[1], dxt[1] + dyt[1]);
+       minx = min_fff(dxt[0], dyt[0], dxt[0] + dyt[0]);
+       maxx = max_fff(dxt[0], dyt[0], dxt[0] + dyt[0]);
+       miny = min_fff(dxt[1], dyt[1], dxt[1] + dyt[1]);
+       maxy = max_fff(dxt[1], dyt[1], dxt[1] + dyt[1]);
 
        /* tex_sharper has been removed */
        minx = (maxx - minx)*0.5f;
@@ -1416,7 +1416,7 @@ static int imagewraposa_aniso(Tex *tex, Image *ima, ImBuf *ibuf, const float tex
        }
 
        if (tex->imaflag & TEX_CALCALPHA)
-               texres->ta = texres->tin = texres->ta * MAX3(texres->tr, texres->tg, texres->tb);
+               texres->ta = texres->tin = texres->ta * max_fff(texres->tr, texres->tg, texres->tb);
        else
                texres->tin = texres->ta;
        if (tex->flag & TEX_NEGALPHA) texres->ta = 1.f - texres->ta;
@@ -1535,10 +1535,10 @@ int imagewraposa(Tex *tex, Image *ima, ImBuf *ibuf, const float texvec[3], const
        
        /* pixel coordinates */
 
-       minx = MIN3(dxt[0], dyt[0], dxt[0] + dyt[0]);
-       maxx = MAX3(dxt[0], dyt[0], dxt[0] + dyt[0]);
-       miny = MIN3(dxt[1], dyt[1], dxt[1] + dyt[1]);
-       maxy = MAX3(dxt[1], dyt[1], dxt[1] + dyt[1]);
+       minx = min_fff(dxt[0], dyt[0], dxt[0] + dyt[0]);
+       maxx = max_fff(dxt[0], dyt[0], dxt[0] + dyt[0]);
+       miny = min_fff(dxt[1], dyt[1], dxt[1] + dyt[1]);
+       maxy = max_fff(dxt[1], dyt[1], dxt[1] + dyt[1]);
 
        /* tex_sharper has been removed */
        minx= (maxx-minx)/2.0f;
@@ -1826,7 +1826,7 @@ int imagewraposa(Tex *tex, Image *ima, ImBuf *ibuf, const float texvec[3], const
        }
        
        if (tex->imaflag & TEX_CALCALPHA) {
-               texres->ta= texres->tin= texres->ta*MAX3(texres->tr, texres->tg, texres->tb);
+               texres->ta = texres->tin = texres->ta * max_fff(texres->tr, texres->tg, texres->tb);
        }
        else texres->tin= texres->ta;
 
index a730882..747362a 100644 (file)
@@ -1520,8 +1520,8 @@ static int sample_occ_cache(OcclusionTree *tree, float *co, float *n, int x, int
                        return 0;
 
        /* require intensities not being too different */
-       mino = MIN4(samples[0]->intensity, samples[1]->intensity, samples[2]->intensity, samples[3]->intensity);
-       maxo = MAX4(samples[0]->intensity, samples[1]->intensity, samples[2]->intensity, samples[3]->intensity);
+       mino = min_ffff(samples[0]->intensity, samples[1]->intensity, samples[2]->intensity, samples[3]->intensity);
+       maxo = max_ffff(samples[0]->intensity, samples[1]->intensity, samples[2]->intensity, samples[3]->intensity);
 
        if (maxo - mino > 0.05f)
                return 0;
@@ -1793,9 +1793,9 @@ void sample_occ(Render *re, ShadeInput *shi)
                                        copy_v3_v3(sample->ao, shi->ao);
                                        copy_v3_v3(sample->env, shi->env);
                                        copy_v3_v3(sample->indirect, shi->indirect);
-                                       sample->intensity = MAX3(sample->ao[0], sample->ao[1], sample->ao[2]);
-                                       sample->intensity = MAX2(sample->intensity, MAX3(sample->env[0], sample->env[1], sample->env[2]));
-                                       sample->intensity = MAX2(sample->intensity, MAX3(sample->indirect[0], sample->indirect[1], sample->indirect[2]));
+                                       sample->intensity = max_fff(sample->ao[0], sample->ao[1], sample->ao[2]);
+                                       sample->intensity = max_ff(sample->intensity, max_fff(sample->env[0], sample->env[1], sample->env[2]));
+                                       sample->intensity = max_ff(sample->intensity, max_fff(sample->indirect[0], sample->indirect[1], sample->indirect[2]));
                                        sample->dist2 = dot_v3v3(shi->dxco, shi->dxco) + dot_v3v3(shi->dyco, shi->dyco);
                                        sample->filled = 1;
                                }
@@ -1888,9 +1888,9 @@ void cache_occ_samples(Render *re, RenderPart *pa, ShadeSample *ssamp)
                                copy_v3_v3(sample->ao, shi->ao);
                                copy_v3_v3(sample->env, shi->env);
                                copy_v3_v3(sample->indirect, shi->indirect);
-                               sample->intensity = MAX3(sample->ao[0], sample->ao[1], sample->ao[2]);
-                               sample->intensity = MAX2(sample->intensity, MAX3(sample->env[0], sample->env[1], sample->env[2]));
-                               sample->intensity = MAX2(sample->intensity, MAX3(sample->indirect[0], sample->indirect[1], sample->indirect[2]));
+                               sample->intensity = max_fff(sample->ao[0], sample->ao[1], sample->ao[2]);
+                               sample->intensity = max_ff(sample->intensity, max_fff(sample->env[0], sample->env[1], sample->env[2]));
+                               sample->intensity = max_ff(sample->intensity, max_fff(sample->indirect[0], sample->indirect[1], sample->indirect[2]));
                                sample->dist2 = dot_v3v3(shi->dxco, shi->dxco) + dot_v3v3(shi->dyco, shi->dyco);
                                sample->x = shi->xs;
                                sample->y = shi->ys;
index e6daa5f..2b18935 100644 (file)
@@ -1745,8 +1745,8 @@ static int compatible_bump_compute(CompatibleBump *compat_bump, ShadeInput *shi,
                else {  /* 3d procedural, estimate from all dx/dy elems */
                        const float adx[3] = {fabsf(dx[0]), fabsf(dx[1]), fabsf(dx[2])};
                        const float ady[3] = {fabsf(dy[0]), fabsf(dy[1]), fabsf(dy[2])};
-                       du = MAX3(adx[0], adx[1], adx[2]);
-                       dv = MAX3(ady[0], ady[1], ady[2]);
+                       du = max_fff(adx[0], adx[1], adx[2]);
+                       dv = max_fff(ady[0], ady[1], ady[2]);
                }
        }
 
index 597196f..2d26ebe 100644 (file)
@@ -1884,7 +1884,7 @@ void shade_lamp_loop(ShadeInput *shi, ShadeResult *shr)
                /* note: shi->mode! */
                if (shi->mode & MA_TRANSP && (shi->mode & (MA_ZTRANSP|MA_RAYTRANSP))) {
                        if (shi->spectra!=0.0f) {
-                               float t = MAX3(shr->spec[0], shr->spec[1], shr->spec[2]);
+                               float t = max_fff(shr->spec[0], shr->spec[1], shr->spec[2]);
                                t *= shi->spectra;
                                if (t>1.0f) t= 1.0f;
                                shi->alpha= (1.0f-t)*shi->alpha+t;
index 8757be7..549148f 100644 (file)
@@ -354,7 +354,7 @@ static void ms_diffuse(Render *re, int do_test_break, float *x0, float *x, float
 static void multiple_scattering_diffusion(Render *re, VolumePrecache *vp, Material *ma)
 {
        const float diff = ma->vol.ms_diff * 0.001f;    /* compensate for scaling for a nicer UI range */
-       const int simframes = (int)(ma->vol.ms_spread * (float)MAX3(vp->res[0], vp->res[1], vp->res[2]));
+       const int simframes = (int)(ma->vol.ms_spread * (float)max_iii(vp->res[0], vp->res[1], vp->res[2]));
        const int shade_type = ma->vol.shade_type;
        float fac = ma->vol.ms_intensity;
        
@@ -652,7 +652,7 @@ static int precache_resolution(Render *re, VolumePrecache *vp, ObjectInstanceRen
        global_bounds_obi(re, obi, bbmin, bbmax);
        sub_v3_v3v3(dim, bbmax, bbmin);
        
-       div = MAX3(dim[0], dim[1], dim[2]);
+       div = max_fff(dim[0], dim[1], dim[2]);
        dim[0] /= div;
        dim[1] /= div;
        dim[2] /= div;