Fix T87274: Curve 2D resets to 3D on reload

This code is incompatible with .blend files from subversion 16 and 17.

The ideal would be to create a new subversion when landed rBf674976edd88.

But for now, due to the delay, moving the code to the previous subversion
can solve it.
This commit is contained in:
Germano Cavalcante 2021-04-07 17:55:57 -03:00
parent 79ba4fde15
commit b7b1b2325c
Notes: blender-bot 2023-02-13 19:01:39 +01:00
Referenced by issue #87274, Curve 2D resets to 3D on reload
1 changed files with 20 additions and 20 deletions

View File

@ -1987,6 +1987,26 @@ void blo_do_versions_290(FileData *fd, Library *UNUSED(lib), Main *bmain)
}
FOREACH_NODETREE_END;
}
/* The CU_2D flag has been removed. */
LISTBASE_FOREACH (Curve *, cu, &bmain->curves) {
#define CU_2D (1 << 3)
ListBase *nurbs = BKE_curve_nurbs_get(cu);
bool is_2d = true;
LISTBASE_FOREACH (Nurb *, nu, nurbs) {
if (nu->flag & CU_2D) {
nu->flag &= ~CU_2D;
}
else {
is_2d = false;
}
}
#undef CU_2D
if (!is_2d && CU_IS_2D(cu)) {
cu->flag |= CU_3D;
}
}
}
/**
@ -2034,25 +2054,5 @@ void blo_do_versions_290(FileData *fd, Library *UNUSED(lib), Main *bmain)
}
}
}
/* The CU_2D flag has been removed. */
LISTBASE_FOREACH (Curve *, cu, &bmain->curves) {
#define CU_2D (1 << 3)
ListBase *nurbs = BKE_curve_nurbs_get(cu);
bool is_2d = true;
LISTBASE_FOREACH (Nurb *, nu, nurbs) {
if (nu->flag & CU_2D) {
nu->flag &= ~CU_2D;
}
else {
is_2d = false;
}
}
#undef CU_2D
if (!is_2d && CU_IS_2D(cu)) {
cu->flag |= CU_3D;
}
}
}
}