Changeset View
Changeset View
Standalone View
Standalone View
source/blender/blenloader/intern/readfile.c
| Context not available. | |||||
| } | } | ||||
| } | } | ||||
| static void direct_link_nurblist(FileData *fd, ListBase *nurblist) | |||||
| { | |||||
| Nurb *nu; | |||||
| NurbTrim *nt; | |||||
| link_list(fd, nurblist); | |||||
| for (nu=nurblist->first; nu; nu=nu->next) { | |||||
| nu->bezt = newdataadr(fd, nu->bezt); | |||||
| nu->bp = newdataadr(fd, nu->bp); | |||||
| nu->knotsu = newdataadr(fd, nu->knotsu); | |||||
| nu->knotsv = newdataadr(fd, nu->knotsv); | |||||
| nu->charidx= nu->mat_nr; | |||||
| if (fd->flags & FD_FLAGS_SWITCH_ENDIAN) { | |||||
| switch_endian_knots(nu); | |||||
| } | |||||
| /* Clear cached UV-space tessellation of trimmed surface & other runtime fields */ | |||||
| nu->UV_tri_count = nu->UV_verts_count = 0; | |||||
| nu->UV_idxs = NULL; | |||||
| nu->UV_verts = NULL; | |||||
| nu->editknot = NULL; | |||||
| /* Recurse to load trim curves */ | |||||
| if (nu->flag & CU_TRIMMED) { | |||||
| link_list(fd, &nu->trims); | |||||
| for (nt=nu->trims.first; nt; nt=nt->next) { | |||||
| nt->parent_nurb = nu; | |||||
| direct_link_nurblist(fd, &nt->nurb_list); | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| static void direct_link_curve(FileData *fd, Curve *cu) | static void direct_link_curve(FileData *fd, Curve *cu) | ||||
| { | { | ||||
| Nurb *nu; | // Nurb *nu; | ||||
| TextBox *tb; | TextBox *tb; | ||||
| cu->adt = newdataadr(fd, cu->adt); | cu->adt = newdataadr(fd, cu->adt); | ||||
| Context not available. | |||||
| cu->strinfo = newdataadr(fd, cu->strinfo); | cu->strinfo = newdataadr(fd, cu->strinfo); | ||||
| cu->tb = newdataadr(fd, cu->tb); | cu->tb = newdataadr(fd, cu->tb); | ||||
| if (cu->vfont == NULL) { | if (cu->vfont != NULL) { | ||||
| link_list(fd, &(cu->nurb)); | // link_list(fd, &(cu->nurb)); | ||||
| } | // } | ||||
| else { | // else { | ||||
| cu->nurb.first = cu->nurb.last = NULL; | cu->nurb.first = cu->nurb.last = NULL; | ||||
| tb = MEM_calloc_arrayN(MAXTEXTBOX, sizeof(TextBox), "TextBoxread"); | tb = MEM_calloc_arrayN(MAXTEXTBOX, sizeof(TextBox), "TextBoxread"); | ||||
| Context not available. | |||||
| cu->editfont = NULL; | cu->editfont = NULL; | ||||
| cu->batch_cache = NULL; | cu->batch_cache = NULL; | ||||
| for (nu = cu->nurb.first; nu; nu = nu->next) { | if (cu->vfont == NULL) { | ||||
| nu->bezt = newdataadr(fd, nu->bezt); | direct_link_nurblist(fd, &cu->nurb); | ||||
| nu->bp = newdataadr(fd, nu->bp); | |||||
| nu->knotsu = newdataadr(fd, nu->knotsu); | |||||
| nu->knotsv = newdataadr(fd, nu->knotsv); | |||||
| if (cu->vfont == NULL) { | |||||
| nu->charidx = 0; | |||||
| } | } | ||||
| if (fd->flags & FD_FLAGS_SWITCH_ENDIAN) { | |||||
| switch_endian_knots(nu); | |||||
| } | |||||
| } | |||||
| cu->texflag &= ~CU_AUTOSPACE_EVALUATED; | cu->texflag &= ~CU_AUTOSPACE_EVALUATED; | ||||
| } | } | ||||
| Context not available. | |||||