Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/sculpt_paint/sculpt.c
| Show First 20 Lines • Show All 5,689 Lines • ▼ Show 20 Lines | if (unode) { | ||||
| /* Free all existing custom data */ | /* Free all existing custom data */ | ||||
| CustomData_free(&me->vdata, me->totvert); | CustomData_free(&me->vdata, me->totvert); | ||||
| CustomData_free(&me->edata, me->totedge); | CustomData_free(&me->edata, me->totedge); | ||||
| CustomData_free(&me->fdata, me->totface); | CustomData_free(&me->fdata, me->totface); | ||||
| CustomData_free(&me->ldata, me->totloop); | CustomData_free(&me->ldata, me->totloop); | ||||
| CustomData_free(&me->pdata, me->totpoly); | CustomData_free(&me->pdata, me->totpoly); | ||||
| /* Copy over stored custom data */ | /* Copy over stored custom data */ | ||||
| me->totvert = unode->bm_enter_totvert; | me->totvert = unode->geom_totvert; | ||||
| me->totloop = unode->bm_enter_totloop; | me->totloop = unode->geom_totloop; | ||||
| me->totpoly = unode->bm_enter_totpoly; | me->totpoly = unode->geom_totpoly; | ||||
| me->totedge = unode->bm_enter_totedge; | me->totedge = unode->geom_totedge; | ||||
| me->totface = 0; | me->totface = 0; | ||||
| CustomData_copy(&unode->bm_enter_vdata, | CustomData_copy( | ||||
| &me->vdata, | &unode->geom_vdata, &me->vdata, CD_MASK_MESH.vmask, CD_DUPLICATE, unode->geom_totvert); | ||||
| CD_MASK_MESH.vmask, | CustomData_copy( | ||||
| CD_DUPLICATE, | &unode->geom_edata, &me->edata, CD_MASK_MESH.emask, CD_DUPLICATE, unode->geom_totedge); | ||||
| unode->bm_enter_totvert); | CustomData_copy( | ||||
| CustomData_copy(&unode->bm_enter_edata, | &unode->geom_ldata, &me->ldata, CD_MASK_MESH.lmask, CD_DUPLICATE, unode->geom_totloop); | ||||
| &me->edata, | CustomData_copy( | ||||
| CD_MASK_MESH.emask, | &unode->geom_pdata, &me->pdata, CD_MASK_MESH.pmask, CD_DUPLICATE, unode->geom_totpoly); | ||||
| CD_DUPLICATE, | |||||
| unode->bm_enter_totedge); | |||||
| CustomData_copy(&unode->bm_enter_ldata, | |||||
| &me->ldata, | |||||
| CD_MASK_MESH.lmask, | |||||
| CD_DUPLICATE, | |||||
| unode->bm_enter_totloop); | |||||
| CustomData_copy(&unode->bm_enter_pdata, | |||||
| &me->pdata, | |||||
| CD_MASK_MESH.pmask, | |||||
| CD_DUPLICATE, | |||||
| unode->bm_enter_totpoly); | |||||
| BKE_mesh_update_customdata_pointers(me, false); | BKE_mesh_update_customdata_pointers(me, false); | ||||
| } | } | ||||
| else { | else { | ||||
| BKE_sculptsession_bm_to_me(ob, true); | BKE_sculptsession_bm_to_me(ob, true); | ||||
| } | } | ||||
| /* Clear data */ | /* Clear data */ | ||||
| ▲ Show 20 Lines • Show All 782 Lines • Show Last 20 Lines | |||||