From c1570d9f499b3fa8e45e5de386a23aef54d4f054 Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Sat, 12 May 2012 22:34:20 +0000 Subject: code cleanup: missed some min/max use of float[3], also found case of DO_MIN/MAX re-reading same value from array 4 times when it can do once (use minf rather then MIN2, same for maxf) --- source/blender/editors/include/ED_sculpt.h | 2 +- source/blender/editors/sculpt_paint/sculpt.c | 2 +- source/blender/editors/space_view3d/drawvolume.c | 2 +- source/blender/editors/space_view3d/view3d_edit.c | 2 +- .../blender/editors/space_view3d/view3d_intern.h | 4 ++-- source/blender/editors/space_view3d/view3d_snap.c | 4 ++-- .../blender/editors/uvedit/uvedit_parametrizer.c | 2 +- source/blender/render/intern/include/strand.h | 2 +- source/blender/render/intern/raytrace/bvh.h | 6 ++--- .../render/intern/raytrace/rayobject_blibvh.cpp | 4 ++-- source/blender/render/intern/raytrace/svbvh.h | 26 ++++++++++------------ source/blender/render/intern/source/strand.c | 2 +- 12 files changed, 28 insertions(+), 30 deletions(-) diff --git a/source/blender/editors/include/ED_sculpt.h b/source/blender/editors/include/ED_sculpt.h index e8593e9b60d..e908868df75 100644 --- a/source/blender/editors/include/ED_sculpt.h +++ b/source/blender/editors/include/ED_sculpt.h @@ -44,7 +44,7 @@ void sculpt_get_redraw_planes(float planes[4][4], struct ARegion *ar, struct RegionView3D *rv3d, struct Object *ob); void ED_sculpt_force_update(struct bContext *C); float *ED_sculpt_get_last_stroke(struct Object *ob); -int ED_sculpt_minmax(struct bContext *C, float *min, float *max); +int ED_sculpt_minmax(struct bContext *C, float min[3], float max[3]); void ED_sculpt_mask_layers_ensure(struct Object *ob, struct MultiresModifierData *mmd); diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c index 2d3a7680963..02c0acfc367 100644 --- a/source/blender/editors/sculpt_paint/sculpt.c +++ b/source/blender/editors/sculpt_paint/sculpt.c @@ -107,7 +107,7 @@ float *ED_sculpt_get_last_stroke(struct Object *ob) return (ob && ob->sculpt && ob->sculpt->last_stroke_valid) ? ob->sculpt->last_stroke : NULL; } -int ED_sculpt_minmax(bContext *C, float *min, float *max) +int ED_sculpt_minmax(bContext *C, float min[3], float max[3]) { Object *ob = CTX_data_active_object(C); diff --git a/source/blender/editors/space_view3d/drawvolume.c b/source/blender/editors/space_view3d/drawvolume.c index 2bb08a4b9b4..10ae96d87bf 100644 --- a/source/blender/editors/space_view3d/drawvolume.c +++ b/source/blender/editors/space_view3d/drawvolume.c @@ -156,7 +156,7 @@ static int convex(float *p0, float *up, float *a, float *b) return dot_v3v3(up, tmp) >= 0; } -void draw_volume(ARegion *ar, GPUTexture *tex, float *min, float *max, int res[3], float dx, GPUTexture *tex_shadow) +void draw_volume(ARegion *ar, GPUTexture *tex, float min[3], float max[3], int res[3], float dx, GPUTexture *tex_shadow) { RegionView3D *rv3d = ar->regiondata; diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c index 60a0d3bf12b..bfd293ee5b6 100644 --- a/source/blender/editors/space_view3d/view3d_edit.c +++ b/source/blender/editors/space_view3d/view3d_edit.c @@ -2175,7 +2175,7 @@ static int viewselected_exec(bContext *C, wmOperator *UNUSED(op)) if (obedit) { - ok = minmax_verts(obedit, min, max); /* only selected */ + ok = ED_view3d_minmax_verts(obedit, min, max); /* only selected */ } else if (ob && (ob->mode & OB_MODE_POSE)) { if (ob->pose) { diff --git a/source/blender/editors/space_view3d/view3d_intern.h b/source/blender/editors/space_view3d/view3d_intern.h index f387e1dd844..29edc0158d6 100644 --- a/source/blender/editors/space_view3d/view3d_intern.h +++ b/source/blender/editors/space_view3d/view3d_intern.h @@ -186,7 +186,7 @@ void view3d_toolshelf_register(struct ARegionType *art); void view3d_tool_props_register(struct ARegionType *art); /* view3d_snap.c */ -int minmax_verts(struct Object *obedit, float *min, float *max); +int ED_view3d_minmax_verts(struct Object *obedit, float min[3], float max[3]); void VIEW3D_OT_snap_selected_to_grid(struct wmOperatorType *ot); void VIEW3D_OT_snap_selected_to_cursor(struct wmOperatorType *ot); @@ -202,7 +202,7 @@ ARegion *view3d_has_tools_region(ScrArea *sa); extern const char *view3d_context_dir[]; /* doc access */ /* draw_volume.c */ -void draw_volume(struct ARegion *ar, struct GPUTexture *tex, float *min, float *max, int res[3], float dx, struct GPUTexture *tex_shadow); +void draw_volume(struct ARegion *ar, struct GPUTexture *tex, float min[3], float max[3], int res[3], float dx, struct GPUTexture *tex_shadow); /* workaround for trivial but noticeable camera bug caused by imprecision * between view border calculation in 2D/3D space, workaround for bug [#28037]. diff --git a/source/blender/editors/space_view3d/view3d_snap.c b/source/blender/editors/space_view3d/view3d_snap.c index 367b36db583..dfb3714948b 100644 --- a/source/blender/editors/space_view3d/view3d_snap.c +++ b/source/blender/editors/space_view3d/view3d_snap.c @@ -211,7 +211,7 @@ static void set_mapped_co(void *vuserdata, int index, const float co[3], /* mode flags: */ #define TM_ALL_JOINTS 1 /* all joints (for bones only) */ #define TM_SKIP_HANDLES 2 /* skip handles when control point is selected (for curves only) */ -static void make_trans_verts(Object *obedit, float *min, float *max, int mode) +static void make_trans_verts(Object *obedit, float min[3], float max[3], int mode) { Nurb *nu; BezTriple *bezt; @@ -1062,7 +1062,7 @@ void VIEW3D_OT_snap_cursor_to_center(wmOperatorType *ot) /* **************************************************** */ -int minmax_verts(Object *obedit, float *min, float *max) +int ED_view3d_minmax_verts(Object *obedit, float min[3], float max[3]) { TransVert *tv; float centroid[3], vec[3], bmat[3][3]; diff --git a/source/blender/editors/uvedit/uvedit_parametrizer.c b/source/blender/editors/uvedit/uvedit_parametrizer.c index 5ac7bb6860c..d596c553f7e 100644 --- a/source/blender/editors/uvedit/uvedit_parametrizer.c +++ b/source/blender/editors/uvedit/uvedit_parametrizer.c @@ -444,7 +444,7 @@ static float p_edge_uv_length(PEdge *e) return sqrt(d[0] * d[0] + d[1] * d[1]); } -static void p_chart_uv_bbox(PChart *chart, float *minv, float *maxv) +static void p_chart_uv_bbox(PChart *chart, float minv[2], float maxv[2]) { PVert *v; diff --git a/source/blender/render/intern/include/strand.h b/source/blender/render/intern/include/strand.h index 7482b4d10ee..720354219e9 100644 --- a/source/blender/render/intern/include/strand.h +++ b/source/blender/render/intern/include/strand.h @@ -93,7 +93,7 @@ typedef struct StrandShadeCache StrandShadeCache; void strand_eval_point(StrandSegment *sseg, StrandPoint *spoint); void render_strand_segment(struct Render *re, float winmat[][4], struct StrandPart *spart, struct ZSpan *zspan, int totzspan, StrandSegment *sseg); -void strand_minmax(struct StrandRen *strand, float *min, float *max, float width); +void strand_minmax(struct StrandRen *strand, float min[3], float max[3], const float width); struct StrandSurface *cache_strand_surface(struct Render *re, struct ObjectRen *obr, struct DerivedMesh *dm, float mat[][4], int timeoffset); void free_strand_surface(struct Render *re); diff --git a/source/blender/render/intern/raytrace/bvh.h b/source/blender/render/intern/raytrace/bvh.h index c38d9b1dcb4..c2e18a9236e 100644 --- a/source/blender/render/intern/raytrace/bvh.h +++ b/source/blender/render/intern/raytrace/bvh.h @@ -147,14 +147,14 @@ template static inline int bvh_node_hit_test(Node *node, Isect *isec template -static inline void bvh_node_merge_bb(Node *node, float *min, float *max) +static inline void bvh_node_merge_bb(Node *node, float min[3], float max[3]) { if (is_leaf(node)) { RE_rayobject_merge_bb((RayObject *)node, min, max); } else { - DO_MIN(node->bb, min); - DO_MAX(node->bb+3, max); + DO_MIN(node->bb, min); + DO_MAX(node->bb + 3, max); } } diff --git a/source/blender/render/intern/raytrace/rayobject_blibvh.cpp b/source/blender/render/intern/raytrace/rayobject_blibvh.cpp index 8f1b730bf10..79ca21270fa 100644 --- a/source/blender/render/intern/raytrace/rayobject_blibvh.cpp +++ b/source/blender/render/intern/raytrace/rayobject_blibvh.cpp @@ -44,7 +44,7 @@ static int RE_rayobject_blibvh_intersect(RayObject *o, Isect *isec); static void RE_rayobject_blibvh_add(RayObject *o, RayObject *ob); static void RE_rayobject_blibvh_done(RayObject *o); static void RE_rayobject_blibvh_free(RayObject *o); -static void RE_rayobject_blibvh_bb(RayObject *o, float *min, float *max); +static void RE_rayobject_blibvh_bb(RayObject *o, float min[3], float max[3]); static float RE_rayobject_blibvh_cost(RayObject *UNUSED(o)) { @@ -162,7 +162,7 @@ static void RE_rayobject_blibvh_free(RayObject *o) MEM_freeN(obj); } -static void RE_rayobject_blibvh_bb(RayObject *o, float *min, float *max) +static void RE_rayobject_blibvh_bb(RayObject *o, float min[3], float max[3]) { BVHObject *obj = (BVHObject*)o; DO_MIN(obj->bb[0], min); diff --git a/source/blender/render/intern/raytrace/svbvh.h b/source/blender/render/intern/raytrace/svbvh.h index a4044db8208..ff402446b9f 100644 --- a/source/blender/render/intern/raytrace/svbvh.h +++ b/source/blender/render/intern/raytrace/svbvh.h @@ -157,29 +157,27 @@ static int svbvh_node_stack_raycast(SVBVHNode *root, Isect *isec) template<> -inline void bvh_node_merge_bb(SVBVHNode *node, float *min, float *max) +inline void bvh_node_merge_bb(SVBVHNode *node, float min[3], float max[3]) { if (is_leaf(node)) { RE_rayobject_merge_bb((RayObject*)node, min, max); } else { - int i=0; - while (i+4 <= node->nchilds) { - float *res = node->child_bb + 6*i; + int i; + for (i = 0; i + 4 <= node->nchilds; i += 4) { + float *res = node->child_bb + 6 * i; for (int j = 0; j < 3; j++) { - min[j] = MIN2(min[j], res[4*j+0]); - min[j] = MIN2(min[j], res[4*j+1]); - min[j] = MIN2(min[j], res[4*j+2]); - min[j] = MIN2(min[j], res[4*j+3]); + min[j] = minf(res[4 * j + 0], + minf(res[4 * j + 1], + minf(res[4 * j + 2], + minf(res[4 * j + 3], min[j])))); } for (int j = 0; j < 3; j++) { - max[j] = MAX2(max[j], res[4*(j+3)+0]); - max[j] = MAX2(max[j], res[4*(j+3)+1]); - max[j] = MAX2(max[j], res[4*(j+3)+2]); - max[j] = MAX2(max[j], res[4*(j+3)+3]); + max[j] = maxf(res[4 * (j + 3) + 0], + maxf(res[4 * (j + 3) + 1], + maxf(res[4 * (j + 3) + 2], + maxf(res[4 * (j + 3) + 3], max[j])))); } - - i += 4; } for ( ; i < node->nchilds; i++) { diff --git a/source/blender/render/intern/source/strand.c b/source/blender/render/intern/source/strand.c index f986be5eaeb..cc824087c87 100644 --- a/source/blender/render/intern/source/strand.c +++ b/source/blender/render/intern/source/strand.c @@ -1060,7 +1060,7 @@ void free_strand_surface(Render *re) BLI_freelistN(&re->strandsurface); } -void strand_minmax(StrandRen *strand, float *min, float *max, float width) +void strand_minmax(StrandRen *strand, float min[3], float max[3], const float width) { StrandVert *svert; float vec[3], width2= 2.0f*width; -- cgit v1.2.3