Cleanup: replace static list with argument for curve merging
This commit is contained in:
parent
b18608f3e9
commit
71e543c68b
@ -4196,10 +4196,7 @@ typedef struct NurbSort {
|
|||||||
float vec[3];
|
float vec[3];
|
||||||
} NurbSort;
|
} NurbSort;
|
||||||
|
|
||||||
static ListBase nsortbase = {NULL, NULL};
|
static void make_selection_list_nurb(View3D *v3d, ListBase *editnurb, ListBase *nsortbase)
|
||||||
/* static NurbSort *nusmain; */ /* this var seems to go unused... at least in this file */
|
|
||||||
|
|
||||||
static void make_selection_list_nurb(View3D *v3d, ListBase *editnurb)
|
|
||||||
{
|
{
|
||||||
ListBase nbase = {NULL, NULL};
|
ListBase nbase = {NULL, NULL};
|
||||||
NurbSort *nus, *nustest, *headdo, *taildo;
|
NurbSort *nus, *nustest, *headdo, *taildo;
|
||||||
@ -4228,7 +4225,7 @@ static void make_selection_list_nurb(View3D *v3d, ListBase *editnurb)
|
|||||||
/* just add the first one */
|
/* just add the first one */
|
||||||
nus = nbase.first;
|
nus = nbase.first;
|
||||||
BLI_remlink(&nbase, nus);
|
BLI_remlink(&nbase, nus);
|
||||||
BLI_addtail(&nsortbase, nus);
|
BLI_addtail(nsortbase, nus);
|
||||||
|
|
||||||
/* now add, either at head or tail, the closest one */
|
/* now add, either at head or tail, the closest one */
|
||||||
while (nbase.first) {
|
while (nbase.first) {
|
||||||
@ -4238,13 +4235,13 @@ static void make_selection_list_nurb(View3D *v3d, ListBase *editnurb)
|
|||||||
|
|
||||||
nustest = nbase.first;
|
nustest = nbase.first;
|
||||||
while (nustest) {
|
while (nustest) {
|
||||||
dist = len_v3v3(nustest->vec, ((NurbSort *)nsortbase.first)->vec);
|
dist = len_v3v3(nustest->vec, ((NurbSort *)nsortbase->first)->vec);
|
||||||
|
|
||||||
if (dist < headdist) {
|
if (dist < headdist) {
|
||||||
headdist = dist;
|
headdist = dist;
|
||||||
headdo = nustest;
|
headdo = nustest;
|
||||||
}
|
}
|
||||||
dist = len_v3v3(nustest->vec, ((NurbSort *)nsortbase.last)->vec);
|
dist = len_v3v3(nustest->vec, ((NurbSort *)nsortbase->last)->vec);
|
||||||
|
|
||||||
if (dist < taildist) {
|
if (dist < taildist) {
|
||||||
taildist = dist;
|
taildist = dist;
|
||||||
@ -4255,11 +4252,11 @@ static void make_selection_list_nurb(View3D *v3d, ListBase *editnurb)
|
|||||||
|
|
||||||
if (headdist < taildist) {
|
if (headdist < taildist) {
|
||||||
BLI_remlink(&nbase, headdo);
|
BLI_remlink(&nbase, headdo);
|
||||||
BLI_addhead(&nsortbase, headdo);
|
BLI_addhead(nsortbase, headdo);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
BLI_remlink(&nbase, taildo);
|
BLI_remlink(&nbase, taildo);
|
||||||
BLI_addtail(&nsortbase, taildo);
|
BLI_addtail(nsortbase, taildo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -4436,8 +4433,9 @@ static int merge_nurb(View3D *v3d, Object *obedit)
|
|||||||
ListBase *editnurb = object_editcurve_get(obedit);
|
ListBase *editnurb = object_editcurve_get(obedit);
|
||||||
NurbSort *nus1, *nus2;
|
NurbSort *nus1, *nus2;
|
||||||
bool ok = true;
|
bool ok = true;
|
||||||
|
ListBase nsortbase = {NULL, NULL};
|
||||||
|
|
||||||
make_selection_list_nurb(v3d, editnurb);
|
make_selection_list_nurb(v3d, editnurb, &nsortbase);
|
||||||
|
|
||||||
if (nsortbase.first == nsortbase.last) {
|
if (nsortbase.first == nsortbase.last) {
|
||||||
BLI_freelistN(&nsortbase);
|
BLI_freelistN(&nsortbase);
|
||||||
|
Loading…
Reference in New Issue
Block a user