Changeset View
Changeset View
Standalone View
Standalone View
source/blender/blenloader/intern/writefile.c
| Context not available. | |||||
| } | } | ||||
| } | } | ||||
| static void write_nurblist(WriteData *wd, ListBase *nurblist) | |||||
| { | |||||
| Nurb *nu; | |||||
| NurbTrim *nt; | |||||
| for (nu=nurblist->first; nu; nu=nu->next) { | |||||
| writestruct(wd, DATA, Nurb, 1, nu); | |||||
| } | |||||
| for (nu=nurblist->first; nu; nu=nu->next) { | |||||
| if (nu->type == CU_BEZIER) | |||||
| writestruct(wd, DATA, BezTriple, nu->pntsu, nu->bezt); | |||||
| else { | |||||
| writestruct(wd, DATA, BPoint, nu->pntsu*nu->pntsv, nu->bp); | |||||
| if (nu->knotsu) writedata(wd, DATA, KNOTSU(nu)*sizeof(float), nu->knotsu); | |||||
| if (nu->knotsv) writedata(wd, DATA, KNOTSV(nu)*sizeof(float), nu->knotsv); | |||||
| if (nu->flag & CU_TRIMMED) { | |||||
| for (nt=nu->trims.first; nt; nt=nt->next) { | |||||
| writestruct(wd, DATA, NurbTrim, 1, nt); | |||||
| } | |||||
| for (nt=nu->trims.first; nt; nt=nt->next) { | |||||
| write_nurblist(wd, &nt->nurb_list); | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| } | |||||
| static void write_curve(WriteData *wd, Curve *cu) | static void write_curve(WriteData *wd, Curve *cu) | ||||
| { | { | ||||
| if (cu->id.us > 0 || wd->use_memfile) { | if (cu->id.us > 0 || wd->use_memfile) { | ||||
| Context not available. | |||||
| writestruct(wd, DATA, TextBox, cu->totbox, cu->tb); | writestruct(wd, DATA, TextBox, cu->totbox, cu->tb); | ||||
| } | } | ||||
| else { | else { | ||||
| write_nurblist(wd, &cu->nurb); | |||||
| /* is also the order of reading */ | /* is also the order of reading */ | ||||
| for (Nurb *nu = cu->nurb.first; nu; nu = nu->next) { | // for (Nurb *nu = cu->nurb.first; nu; nu = nu->next) { | ||||
| writestruct(wd, DATA, Nurb, 1, nu); | // writestruct(wd, DATA, Nurb, 1, nu); | ||||
| } | // } | ||||
| for (Nurb *nu = cu->nurb.first; nu; nu = nu->next) { | // for (Nurb *nu = cu->nurb.first; nu; nu = nu->next) { | ||||
| if (nu->type == CU_BEZIER) { | // if (nu->type == CU_BEZIER) { | ||||
| writestruct(wd, DATA, BezTriple, nu->pntsu, nu->bezt); | // writestruct(wd, DATA, BezTriple, nu->pntsu, nu->bezt); | ||||
| } | // } | ||||
| else { | // else { | ||||
| writestruct(wd, DATA, BPoint, nu->pntsu * nu->pntsv, nu->bp); | // writestruct(wd, DATA, BPoint, nu->pntsu * nu->pntsv, nu->bp); | ||||
| if (nu->knotsu) { | // if (nu->knotsu) { | ||||
| writedata(wd, DATA, KNOTSU(nu) * sizeof(float), nu->knotsu); | // writedata(wd, DATA, KNOTSU(nu) * sizeof(float), nu->knotsu); | ||||
| } | // } | ||||
| if (nu->knotsv) { | // if (nu->knotsv) { | ||||
| writedata(wd, DATA, KNOTSV(nu) * sizeof(float), nu->knotsv); | // writedata(wd, DATA, KNOTSV(nu) * sizeof(float), nu->knotsv); | ||||
| } | // } | ||||
| } | } | ||||
| } | |||||
| } | |||||
| } | } | ||||
| } | } | ||||
| static void write_dverts(WriteData *wd, int count, MDeformVert *dvlist) | static void write_dverts(WriteData *wd, int count, MDeformVert *dvlist) | ||||
| { | { | ||||
| if (dvlist) { | if (dvlist) { | ||||
| Context not available. | |||||