Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2015-11-24 04:13:49 +0300
committerCampbell Barton <ideasman42@gmail.com>2015-11-24 04:16:14 +0300
commitc3e7dfa82d1734505dfb82d68690bab9544795ee (patch)
tree103ce13a6131dcfaf2d62f9dfafad27629af395b /source/blender/blenkernel/intern/object.c
parent68922e466028f9508d4a0a38b479e2f34850ad84 (diff)
Fix T46816: Vert/Edge snap fails at edge of bounds
Diffstat (limited to 'source/blender/blenkernel/intern/object.c')
-rw-r--r--source/blender/blenkernel/intern/object.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/object.c b/source/blender/blenkernel/intern/object.c
index b30538719ae..70da0111752 100644
--- a/source/blender/blenkernel/intern/object.c
+++ b/source/blender/blenkernel/intern/object.c
@@ -2682,6 +2682,18 @@ void BKE_boundbox_minmax(const BoundBox *bb, float obmat[4][4], float r_min[3],
}
}
+void BKE_boundbox_scale(struct BoundBox *bb_dst, const struct BoundBox *bb_src, float scale)
+{
+ float cent[3];
+ BKE_boundbox_calc_center_aabb(bb_src, cent);
+
+ for (int i = 0; i < ARRAY_SIZE(bb_dst->vec); i++) {
+ bb_dst->vec[i][0] = ((bb_src->vec[i][0] - cent[0]) * scale) + cent[0];
+ bb_dst->vec[i][1] = ((bb_src->vec[i][1] - cent[1]) * scale) + cent[1];
+ bb_dst->vec[i][2] = ((bb_src->vec[i][2] - cent[2]) * scale) + cent[2];
+ }
+}
+
/**
* Returns a BBox which each dimensions are at least epsilon.
* \note In case a given dimension needs to be enlarged, its final value will be in [epsilon, 3 * epsilon] range.