Changeset View
Changeset View
Standalone View
Standalone View
source/blender/blenkernel/intern/editderivedmesh.c
| Show First 20 Lines • Show All 372 Lines • ▼ Show 20 Lines | do { | ||||
| glVertex2fv(uv); | glVertex2fv(uv); | ||||
| glVertex2fv(uv_prev); | glVertex2fv(uv_prev); | ||||
| uv_prev = uv; | uv_prev = uv; | ||||
| } while ((l_iter = l_iter->next) != l_first); | } while ((l_iter = l_iter->next) != l_first); | ||||
| } | } | ||||
| glEnd(); | glEnd(); | ||||
| } | } | ||||
| static void emDM_foreachMappedLoop( | |||||
| DerivedMesh *dm, | |||||
| void (*func)(void *userData, int vertex_index, int face_index, const float co[3], const float no[3]), | |||||
| void *userData, | |||||
| DMForeachFlag flag) | |||||
| { | |||||
| /* We can't use dm->getLoopDataLayout(dm) here, we want to always access dm->loopData, EditDerivedBMesh would | |||||
| * return loop data from bmesh itself. */ | |||||
| const float (*lnors)[3] = (flag & DM_FOREACH_USE_NORMAL) ? DM_get_loop_data_layer(dm, CD_NORMAL) : NULL; | |||||
| EditDerivedBMesh *bmdm = (EditDerivedBMesh *)dm; | |||||
| BMesh *bm = bmdm->em->bm; | |||||
| BMFace *efa; | |||||
| BMIter iter; | |||||
| const float (*vertexCos)[3] = bmdm->vertexCos; | |||||
| int f_idx; | |||||
| BM_mesh_elem_index_ensure(bm, BM_VERT); | |||||
| BM_ITER_MESH_INDEX (efa, &iter, bm, BM_FACES_OF_MESH, f_idx) { | |||||
| BMLoop *l_iter, *l_first; | |||||
| l_iter = l_first = BM_FACE_FIRST_LOOP(efa); | |||||
| do { | |||||
| const BMVert *eve = l_iter->v; | |||||
| const int v_idx = BM_elem_index_get(eve); | |||||
| const float *no = lnors ? *lnors++ : NULL; | |||||
| func(userData, v_idx, f_idx, vertexCos ? vertexCos[v_idx] : eve->co, no); | |||||
| } while ((l_iter = l_iter->next) != l_first); | |||||
| } | |||||
| } | |||||
| static void emDM_foreachMappedFaceCenter( | static void emDM_foreachMappedFaceCenter( | ||||
campbellbarton: Same as above | |||||
| DerivedMesh *dm, | DerivedMesh *dm, | ||||
| void (*func)(void *userData, int index, const float co[3], const float no[3]), | void (*func)(void *userData, int index, const float co[3], const float no[3]), | ||||
| void *userData, | void *userData, | ||||
| DMForeachFlag flag) | DMForeachFlag flag) | ||||
| { | { | ||||
| EditDerivedBMesh *bmdm = (EditDerivedBMesh *)dm; | EditDerivedBMesh *bmdm = (EditDerivedBMesh *)dm; | ||||
| BMesh *bm = bmdm->em->bm; | BMesh *bm = bmdm->em->bm; | ||||
| const float (*polyNos)[3]; | const float (*polyNos)[3]; | ||||
| ▲ Show 20 Lines • Show All 1,333 Lines • ▼ Show 20 Lines | DerivedMesh *getEditDerivedBMesh(BMEditMesh *em, | ||||
| bmdm->dm.getTessFaceDataArray = emDM_getTessFaceDataArray; | bmdm->dm.getTessFaceDataArray = emDM_getTessFaceDataArray; | ||||
| bmdm->dm.calcNormals = emDM_calcNormals; | bmdm->dm.calcNormals = emDM_calcNormals; | ||||
| bmdm->dm.calcLoopNormals = emDM_calcLoopNormals; | bmdm->dm.calcLoopNormals = emDM_calcLoopNormals; | ||||
| bmdm->dm.recalcTessellation = emDM_recalcTessellation; | bmdm->dm.recalcTessellation = emDM_recalcTessellation; | ||||
| bmdm->dm.foreachMappedVert = emDM_foreachMappedVert; | bmdm->dm.foreachMappedVert = emDM_foreachMappedVert; | ||||
| bmdm->dm.foreachMappedLoop = emDM_foreachMappedLoop; | |||||
| bmdm->dm.foreachMappedEdge = emDM_foreachMappedEdge; | bmdm->dm.foreachMappedEdge = emDM_foreachMappedEdge; | ||||
| bmdm->dm.foreachMappedFaceCenter = emDM_foreachMappedFaceCenter; | bmdm->dm.foreachMappedFaceCenter = emDM_foreachMappedFaceCenter; | ||||
| bmdm->dm.drawEdges = emDM_drawEdges; | bmdm->dm.drawEdges = emDM_drawEdges; | ||||
| bmdm->dm.drawMappedEdges = emDM_drawMappedEdges; | bmdm->dm.drawMappedEdges = emDM_drawMappedEdges; | ||||
| bmdm->dm.drawMappedEdgesInterp = emDM_drawMappedEdgesInterp; | bmdm->dm.drawMappedEdgesInterp = emDM_drawMappedEdgesInterp; | ||||
| bmdm->dm.drawMappedFaces = emDM_drawMappedFaces; | bmdm->dm.drawMappedFaces = emDM_drawMappedFaces; | ||||
| bmdm->dm.drawMappedFacesTex = emDM_drawMappedFacesTex; | bmdm->dm.drawMappedFacesTex = emDM_drawMappedFacesTex; | ||||
| ▲ Show 20 Lines • Show All 548 Lines • Show Last 20 Lines | |||||
Same as above