UI: Fix Bug With Join Area Tolerance
Join area tolerance not properly checking all vertices on shared edge. Differential Revision: https://developer.blender.org/D5662
This commit is contained in:
Submodule release/datafiles/locale updated: 61cb42387d...e7cd12454a
Submodule release/scripts/addons updated: cbb11b1a59...db4f7e2dc6
Submodule release/scripts/addons_contrib updated: e479f81053...c6429b8c79
@@ -309,22 +309,26 @@ int area_getorientation(ScrArea *sa, ScrArea *sb)
|
||||
int tolerance = U.pixelsize * 4;
|
||||
|
||||
if (saBL->vec.x == sbBR->vec.x && saTL->vec.x == sbTR->vec.x) { /* sa to right of sb = W */
|
||||
if (ABS(saBL->vec.y - sbBR->vec.y) <= tolerance) {
|
||||
if ((ABS(saBL->vec.y - sbBR->vec.y) <= tolerance) &&
|
||||
(ABS(saTL->vec.y - sbTR->vec.y) <= tolerance)) {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
else if (saTL->vec.y == sbBL->vec.y && saTR->vec.y == sbBR->vec.y) { /* sa to bottom of sb = N */
|
||||
if (ABS(saTL->vec.x - sbBL->vec.x) <= tolerance) {
|
||||
if ((ABS(saTL->vec.x - sbBL->vec.x) <= tolerance) &&
|
||||
(ABS(saTR->vec.x - sbBR->vec.x) <= tolerance)) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
else if (saTR->vec.x == sbTL->vec.x && saBR->vec.x == sbBL->vec.x) { /* sa to left of sb = E */
|
||||
if (ABS(saTR->vec.y - sbTL->vec.y) <= tolerance) {
|
||||
if ((ABS(saTR->vec.y - sbTL->vec.y) <= tolerance) &&
|
||||
(ABS(saBR->vec.y - sbBL->vec.y) <= tolerance)) {
|
||||
return 2;
|
||||
}
|
||||
}
|
||||
else if (saBL->vec.y == sbTL->vec.y && saBR->vec.y == sbTR->vec.y) { /* sa on top of sb = S*/
|
||||
if (ABS(saBL->vec.x - sbTL->vec.x) <= tolerance) {
|
||||
if ((ABS(saBL->vec.x - sbTL->vec.x) <= tolerance) &&
|
||||
(ABS(saBR->vec.x - sbTR->vec.x) <= tolerance)) {
|
||||
return 3;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user