Differential D16893 Diff 59975 source/blender/draw/intern/mesh_extractors/extract_mesh_ibo_lines_paint_mask.cc
Changeset View
Changeset View
Standalone View
Standalone View
source/blender/draw/intern/mesh_extractors/extract_mesh_ibo_lines_paint_mask.cc
| Show All 35 Lines | |||||
| } | } | ||||
| static void extract_lines_paint_mask_iter_poly_mesh(const MeshRenderData *mr, | static void extract_lines_paint_mask_iter_poly_mesh(const MeshRenderData *mr, | ||||
| const MPoly *mp, | const MPoly *mp, | ||||
| const int mp_index, | const int mp_index, | ||||
| void *_data) | void *_data) | ||||
| { | { | ||||
| MeshExtract_LinePaintMask_Data *data = static_cast<MeshExtract_LinePaintMask_Data *>(_data); | MeshExtract_LinePaintMask_Data *data = static_cast<MeshExtract_LinePaintMask_Data *>(_data); | ||||
| const MLoop *mloop = mr->mloop; | |||||
| const int ml_index_end = mp->loopstart + mp->totloop; | const int ml_index_end = mp->loopstart + mp->totloop; | ||||
| for (int ml_index = mp->loopstart; ml_index < ml_index_end; ml_index += 1) { | for (int ml_index = mp->loopstart; ml_index < ml_index_end; ml_index += 1) { | ||||
| const MLoop *ml = &mloop[ml_index]; | const int e_index = mr->corner_edges[ml_index]; | ||||
| const int e_index = ml->e; | |||||
| if (!((mr->use_hide && mr->hide_edge && mr->hide_edge[e_index]) || | if (!((mr->use_hide && mr->hide_edge && mr->hide_edge[e_index]) || | ||||
| ((mr->e_origindex) && (mr->e_origindex[e_index] == ORIGINDEX_NONE)))) { | ((mr->e_origindex) && (mr->e_origindex[e_index] == ORIGINDEX_NONE)))) { | ||||
| const int ml_index_last = mp->totloop + mp->loopstart - 1; | const int ml_index_last = mp->totloop + mp->loopstart - 1; | ||||
| const int ml_index_other = (ml_index == ml_index_last) ? mp->loopstart : (ml_index + 1); | const int ml_index_other = (ml_index == ml_index_last) ? mp->loopstart : (ml_index + 1); | ||||
| if (mr->select_poly && mr->select_poly[mp_index]) { | if (mr->select_poly && mr->select_poly[mp_index]) { | ||||
| if (BLI_BITMAP_TEST_AND_SET_ATOMIC(data->select_map, e_index)) { | if (BLI_BITMAP_TEST_AND_SET_ATOMIC(data->select_map, e_index)) { | ||||
| /* Hide edge as it has more than 2 selected loop. */ | /* Hide edge as it has more than 2 selected loop. */ | ||||
| ▲ Show 20 Lines • Show All 92 Lines • Show Last 20 Lines | |||||