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:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2006-02-16 01:33:55 +0300
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2006-02-16 01:33:55 +0300
commit32a9c7b493e85815c548d49303dcb9fe56d23ac6 (patch)
tree041e612045e01cd89dc85b01c666f3da8d90b185 /source/blender/src/parametrizer.c
parent9fedbd6c51a5cc9e0799fc0afd3aae3dd9ce699e (diff)
==UV Editor==
Small ABF stability improvement, do some angle clamping during iteration, fixes a particular model that went wrong.
Diffstat (limited to 'source/blender/src/parametrizer.c')
-rw-r--r--source/blender/src/parametrizer.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/source/blender/src/parametrizer.c b/source/blender/src/parametrizer.c
index 50fa6dc1220..65ebdd68e2d 100644
--- a/source/blender/src/parametrizer.c
+++ b/source/blender/src/parametrizer.c
@@ -2217,6 +2217,7 @@ static float p_abf_compute_gradient(PAbfSystem *sys, PChart *chart)
static PBool p_abf_matrix_invert(PAbfSystem *sys, PChart *chart)
{
PFace *f;
+ PEdge *e;
int i, j, ninterior = sys->ninterior, nvar = 2*sys->ninterior;
PBool success;
@@ -2408,6 +2409,15 @@ static PBool p_abf_matrix_invert(PAbfSystem *sys, PChart *chart)
dalpha = (sys->bAlpha[e3->u.id] - dlambda1);
sys->alpha[e3->u.id] += dalpha/sys->weight[e3->u.id] - pre[2];
+
+ /* clamp */
+ e = f->edge;
+ do {
+ if (sys->alpha[e->u.id] > M_PI)
+ sys->alpha[e->u.id] = M_PI;
+ else if (sys->alpha[e->u.id] < 0.0f)
+ sys->alpha[e->u.id] = 0.0f;
+ } while (e != f->edge);
}
for (i = 0; i < ninterior; i++) {