Fix T66627: Multiobject Edit UV constraint to image bounds
This was broken since the original commit to handle multi-object editing: rBbfc9d426bb95.
This commit is contained in:
parent
91b4262728
commit
fde88ad9d2
Notes:
blender-bot
2023-02-14 10:37:49 +01:00
Referenced by issue #66627, Multiobject Edit UV constraint to image bounds behaviour it´s broken
|
@ -3710,50 +3710,48 @@ bool clipUVTransform(TransInfo *t, float vec[2], const bool resize)
|
|||
for (a = 0, td = tc->data; a < tc->data_len; a++, td++) {
|
||||
minmax_v2v2_v2(min, max, td->loc);
|
||||
}
|
||||
}
|
||||
|
||||
if (resize) {
|
||||
if (min[0] < 0.0f && t->center_global[0] > 0.0f &&
|
||||
t->center_global[0] < t->aspect[0] * 0.5f) {
|
||||
vec[0] *= t->center_global[0] / (t->center_global[0] - min[0]);
|
||||
}
|
||||
else if (max[0] > t->aspect[0] && t->center_global[0] < t->aspect[0]) {
|
||||
vec[0] *= (t->center_global[0] - t->aspect[0]) / (t->center_global[0] - max[0]);
|
||||
}
|
||||
else {
|
||||
clipx = 0;
|
||||
}
|
||||
|
||||
if (min[1] < 0.0f && t->center_global[1] > 0.0f &&
|
||||
t->center_global[1] < t->aspect[1] * 0.5f) {
|
||||
vec[1] *= t->center_global[1] / (t->center_global[1] - min[1]);
|
||||
}
|
||||
else if (max[1] > t->aspect[1] && t->center_global[1] < t->aspect[1]) {
|
||||
vec[1] *= (t->center_global[1] - t->aspect[1]) / (t->center_global[1] - max[1]);
|
||||
}
|
||||
else {
|
||||
clipy = 0;
|
||||
}
|
||||
if (resize) {
|
||||
if (min[0] < 0.0f && t->center_global[0] > 0.0f && t->center_global[0] < t->aspect[0] * 0.5f) {
|
||||
vec[0] *= t->center_global[0] / (t->center_global[0] - min[0]);
|
||||
}
|
||||
else if (max[0] > t->aspect[0] && t->center_global[0] < t->aspect[0]) {
|
||||
vec[0] *= (t->center_global[0] - t->aspect[0]) / (t->center_global[0] - max[0]);
|
||||
}
|
||||
else {
|
||||
if (min[0] < 0.0f) {
|
||||
vec[0] -= min[0];
|
||||
}
|
||||
else if (max[0] > t->aspect[0]) {
|
||||
vec[0] -= max[0] - t->aspect[0];
|
||||
}
|
||||
else {
|
||||
clipx = 0;
|
||||
}
|
||||
clipx = 0;
|
||||
}
|
||||
|
||||
if (min[1] < 0.0f) {
|
||||
vec[1] -= min[1];
|
||||
}
|
||||
else if (max[1] > t->aspect[1]) {
|
||||
vec[1] -= max[1] - t->aspect[1];
|
||||
}
|
||||
else {
|
||||
clipy = 0;
|
||||
}
|
||||
if (min[1] < 0.0f && t->center_global[1] > 0.0f && t->center_global[1] < t->aspect[1] * 0.5f) {
|
||||
vec[1] *= t->center_global[1] / (t->center_global[1] - min[1]);
|
||||
}
|
||||
else if (max[1] > t->aspect[1] && t->center_global[1] < t->aspect[1]) {
|
||||
vec[1] *= (t->center_global[1] - t->aspect[1]) / (t->center_global[1] - max[1]);
|
||||
}
|
||||
else {
|
||||
clipy = 0;
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (min[0] < 0.0f) {
|
||||
vec[0] -= min[0];
|
||||
}
|
||||
else if (max[0] > t->aspect[0]) {
|
||||
vec[0] -= max[0] - t->aspect[0];
|
||||
}
|
||||
else {
|
||||
clipx = 0;
|
||||
}
|
||||
|
||||
if (min[1] < 0.0f) {
|
||||
vec[1] -= min[1];
|
||||
}
|
||||
else if (max[1] > t->aspect[1]) {
|
||||
vec[1] -= max[1] - t->aspect[1];
|
||||
}
|
||||
else {
|
||||
clipy = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue