Cleanup: Mesh: Remove redundant edge render flag
Currently there are both "EDGERENDER" and "EDGEDRAW" flags, which are almost always used together. Both are runtime data and not exposed to RNA, used to skip drawing some edges after the subdivision surface modifier. The render flag is a relic of the Blender internal renderer. This commit removes the render flag and replaces its uses with the draw flag.
This commit is contained in:
@@ -71,7 +71,7 @@ static void fill_mesh_topology(const int vert_offset,
|
||||
MEdge &edge = edges[profile_edge_offset + i_ring];
|
||||
edge.v1 = ring_vert_offset + i_profile;
|
||||
edge.v2 = next_ring_vert_offset + i_profile;
|
||||
edge.flag = ME_EDGEDRAW | ME_EDGERENDER;
|
||||
edge.flag = ME_EDGEDRAW;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -87,7 +87,7 @@ static void fill_mesh_topology(const int vert_offset,
|
||||
MEdge &edge = edges[ring_edge_offset + i_profile];
|
||||
edge.v1 = ring_vert_offset + i_profile;
|
||||
edge.v2 = ring_vert_offset + i_next_profile;
|
||||
edge.flag = ME_EDGEDRAW | ME_EDGERENDER;
|
||||
edge.flag = ME_EDGEDRAW;
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -146,7 +146,7 @@ static void serialize_and_initialize_deduplicated_edges(MutableSpan<EdgeMap> edg
|
||||
/* Initialize new edge. */
|
||||
new_edge.v1 = item.key.v_low;
|
||||
new_edge.v2 = item.key.v_high;
|
||||
new_edge.flag = ME_EDGEDRAW | ME_EDGERENDER;
|
||||
new_edge.flag = ME_EDGEDRAW;
|
||||
}
|
||||
item.value.index = new_edge_index;
|
||||
new_edge_index++;
|
||||
|
@@ -119,7 +119,7 @@ static void make_edges_mdata_extend(Mesh &mesh)
|
||||
BLI_edgehashIterator_getKey(ehi, &medge->v1, &medge->v2);
|
||||
BLI_edgehashIterator_setValue(ehi, POINTER_FROM_UINT(e_index));
|
||||
|
||||
medge->flag = ME_EDGEDRAW | ME_EDGERENDER;
|
||||
medge->flag = ME_EDGEDRAW;
|
||||
}
|
||||
BLI_edgehashIterator_free(ehi);
|
||||
|
||||
@@ -223,7 +223,7 @@ static Mesh *mesh_nurbs_displist_to_mesh(const Curve *cu, const ListBase *dispba
|
||||
for (b = 1; b < dl->nr; b++) {
|
||||
medge->v1 = startvert + ofs + b - 1;
|
||||
medge->v2 = startvert + ofs + b;
|
||||
medge->flag = ME_LOOSEEDGE | ME_EDGERENDER | ME_EDGEDRAW;
|
||||
medge->flag = ME_LOOSEEDGE | ME_EDGEDRAW;
|
||||
|
||||
medge++;
|
||||
}
|
||||
@@ -251,7 +251,7 @@ static Mesh *mesh_nurbs_displist_to_mesh(const Curve *cu, const ListBase *dispba
|
||||
else {
|
||||
medge->v2 = startvert + ofs + b + 1;
|
||||
}
|
||||
medge->flag = ME_LOOSEEDGE | ME_EDGERENDER | ME_EDGEDRAW;
|
||||
medge->flag = ME_LOOSEEDGE | ME_EDGEDRAW;
|
||||
medge++;
|
||||
}
|
||||
}
|
||||
@@ -706,7 +706,7 @@ void BKE_mesh_edges_set_draw_render(Mesh *mesh)
|
||||
{
|
||||
MutableSpan<MEdge> edges = mesh->edges_for_write();
|
||||
for (int i = 0; i < mesh->totedge; i++) {
|
||||
edges[i].flag |= ME_EDGEDRAW | ME_EDGERENDER;
|
||||
edges[i].flag |= ME_EDGEDRAW;
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -1437,7 +1437,7 @@ static void mesh_calc_edges_mdata(const MVert * /*allvert*/,
|
||||
med->v1 = ed->v1;
|
||||
med->v2 = ed->v2;
|
||||
if (use_old == false || ed->is_draw) {
|
||||
med->flag = ME_EDGEDRAW | ME_EDGERENDER;
|
||||
med->flag = ME_EDGEDRAW;
|
||||
}
|
||||
if (ed->is_loose) {
|
||||
med->flag |= ME_LOOSEEDGE;
|
||||
@@ -1462,7 +1462,6 @@ static void mesh_calc_edges_mdata(const MVert * /*allvert*/,
|
||||
if (ed->is_loose) {
|
||||
med->flag |= ME_LOOSEEDGE;
|
||||
}
|
||||
med->flag |= ME_EDGERENDER;
|
||||
|
||||
MEM_freeN(edsort);
|
||||
|
||||
@@ -1579,7 +1578,7 @@ void BKE_mesh_calc_edges_tessface(Mesh *mesh)
|
||||
BLI_edgesetIterator_step(ehi), i++, med++, index++) {
|
||||
BLI_edgesetIterator_getKey(ehi, &med->v1, &med->v2);
|
||||
|
||||
med->flag = ME_EDGEDRAW | ME_EDGERENDER;
|
||||
med->flag = ME_EDGEDRAW;
|
||||
*index = ORIGINDEX_NONE;
|
||||
}
|
||||
BLI_edgesetIterator_free(ehi);
|
||||
|
@@ -794,7 +794,7 @@ static void subdiv_copy_edge_data(SubdivMeshContext *ctx,
|
||||
/* TODO: Ensure crease layer isn't copied to result. */
|
||||
subdiv_edge->flag = 0;
|
||||
if (!ctx->settings->use_optimal_display) {
|
||||
subdiv_edge->flag |= ME_EDGERENDER;
|
||||
subdiv_edge->flag |= ME_EDGEDRAW;
|
||||
}
|
||||
if (ctx->edge_origindex != nullptr) {
|
||||
ctx->edge_origindex[subdiv_edge_index] = ORIGINDEX_NONE;
|
||||
@@ -804,7 +804,7 @@ static void subdiv_copy_edge_data(SubdivMeshContext *ctx,
|
||||
const int coarse_edge_index = coarse_edge - ctx->coarse_edges;
|
||||
CustomData_copy_data(
|
||||
&ctx->coarse_mesh->edata, &ctx->subdiv_mesh->edata, coarse_edge_index, subdiv_edge_index, 1);
|
||||
subdiv_edge->flag |= ME_EDGERENDER;
|
||||
subdiv_edge->flag |= ME_EDGEDRAW;
|
||||
}
|
||||
|
||||
static void subdiv_mesh_edge(const SubdivForeachContext *foreach_context,
|
||||
|
@@ -962,7 +962,7 @@ static void ccgDM_copyFinalEdgeArray(DerivedMesh *dm, MEdge *medge)
|
||||
int edgeSize = ccgSubSurf_getEdgeSize(ss);
|
||||
uint i = 0;
|
||||
short *edgeFlags = ccgdm->edgeFlags;
|
||||
const short ed_interior_flag = ccgdm->drawInteriorEdges ? (ME_EDGEDRAW | ME_EDGERENDER) : 0;
|
||||
const short ed_interior_flag = ccgdm->drawInteriorEdges ? ME_EDGEDRAW : 0;
|
||||
|
||||
totface = ccgSubSurf_getNumFaces(ss);
|
||||
for (index = 0; index < totface; index++) {
|
||||
@@ -1005,11 +1005,11 @@ static void ccgDM_copyFinalEdgeArray(DerivedMesh *dm, MEdge *medge)
|
||||
|
||||
if (edgeFlags) {
|
||||
if (edgeIdx != -1) {
|
||||
ed_flag |= ((edgeFlags[index] & (ME_SEAM | ME_SHARP)) | ME_EDGEDRAW | ME_EDGERENDER);
|
||||
ed_flag |= ((edgeFlags[index] & (ME_SEAM | ME_SHARP)) | ME_EDGEDRAW);
|
||||
}
|
||||
}
|
||||
else {
|
||||
ed_flag |= ME_EDGEDRAW | ME_EDGERENDER;
|
||||
ed_flag |= ME_EDGEDRAW;
|
||||
}
|
||||
|
||||
for (x = 0; x < edgeSize - 1; x++) {
|
||||
|
@@ -732,8 +732,7 @@ short BM_edge_flag_to_mflag(BMEdge *e)
|
||||
|
||||
return (((hflag & BM_ELEM_SEAM) ? ME_SEAM : 0) | ((hflag & BM_ELEM_DRAW) ? ME_EDGEDRAW : 0) |
|
||||
((hflag & BM_ELEM_SMOOTH) == 0 ? ME_SHARP : 0) |
|
||||
(BM_edge_is_wire(e) ? ME_LOOSEEDGE : 0) | /* not typical */
|
||||
ME_EDGERENDER);
|
||||
(BM_edge_is_wire(e) ? ME_LOOSEEDGE : 0));
|
||||
}
|
||||
char BM_face_flag_to_mflag(BMFace *f)
|
||||
{
|
||||
|
@@ -66,7 +66,7 @@ static void extract_edge_fac_init(const MeshRenderData *mr,
|
||||
* We could have a flag in the mesh instead or check the modifier stack. */
|
||||
const MEdge *med = mr->medge;
|
||||
for (int e_index = 0; e_index < mr->edge_len; e_index++, med++) {
|
||||
if ((med->flag & ME_EDGERENDER) == 0) {
|
||||
if ((med->flag & ME_EDGEDRAW) == 0) {
|
||||
data->use_edge_render = true;
|
||||
break;
|
||||
}
|
||||
@@ -118,7 +118,7 @@ static void extract_edge_fac_iter_poly_mesh(const MeshRenderData *mr,
|
||||
|
||||
if (data->use_edge_render) {
|
||||
const MEdge *med = &mr->medge[ml->e];
|
||||
data->vbo_data[ml_index] = (med->flag & ME_EDGERENDER) ? 255 : 0;
|
||||
data->vbo_data[ml_index] = (med->flag & ME_EDGEDRAW) ? 255 : 0;
|
||||
}
|
||||
else {
|
||||
|
||||
|
@@ -1191,7 +1191,7 @@ static void mesh_add_edges(Mesh *mesh, int len)
|
||||
|
||||
MutableSpan<MEdge> edges = mesh->edges_for_write();
|
||||
for (MEdge &edge : edges.take_back(len)) {
|
||||
edge.flag = ME_EDGEDRAW | ME_EDGERENDER;
|
||||
edge.flag = ME_EDGEDRAW;
|
||||
}
|
||||
|
||||
bke::MutableAttributeAccessor attributes = mesh->attributes_for_write();
|
||||
|
@@ -614,7 +614,7 @@ bool ED_object_modifier_convert_psys_to_mesh(ReportList * /*reports*/,
|
||||
if (k) {
|
||||
medge->v1 = cvert - 1;
|
||||
medge->v2 = cvert;
|
||||
medge->flag = ME_EDGEDRAW | ME_EDGERENDER | ME_LOOSEEDGE;
|
||||
medge->flag = ME_EDGEDRAW | ME_LOOSEEDGE;
|
||||
medge++;
|
||||
}
|
||||
else {
|
||||
@@ -633,7 +633,7 @@ bool ED_object_modifier_convert_psys_to_mesh(ReportList * /*reports*/,
|
||||
if (k) {
|
||||
medge->v1 = cvert - 1;
|
||||
medge->v2 = cvert;
|
||||
medge->flag = ME_EDGEDRAW | ME_EDGERENDER | ME_LOOSEEDGE;
|
||||
medge->flag = ME_EDGEDRAW | ME_LOOSEEDGE;
|
||||
medge++;
|
||||
}
|
||||
else {
|
||||
|
@@ -564,7 +564,7 @@ void MeshImporter::mesh_add_edges(Mesh *mesh, int len)
|
||||
/* set default flags */
|
||||
medge = &edges[mesh->totedge];
|
||||
for (int i = 0; i < len; i++, medge++) {
|
||||
medge->flag = ME_EDGEDRAW | ME_EDGERENDER;
|
||||
medge->flag = ME_EDGEDRAW;
|
||||
}
|
||||
|
||||
mesh->totedge = totedge;
|
||||
|
@@ -73,7 +73,6 @@ enum {
|
||||
ME_SEAM = (1 << 2),
|
||||
/** Deprecated hide status. Now stored in ".hide_edge" attribute. */
|
||||
/* ME_HIDE = (1 << 4), */
|
||||
ME_EDGERENDER = (1 << 5),
|
||||
ME_LOOSEEDGE = (1 << 7),
|
||||
ME_SHARP = (1 << 9), /* only reason this flag remains a 'short' */
|
||||
};
|
||||
|
@@ -607,7 +607,7 @@ static void add_interpolated_polys_to_new_mesh(const Mesh &src_mesh,
|
||||
cut_edge.v1 = dst_loops[mp_dst.loopstart].v;
|
||||
cut_edge.v2 = cut_dst_loop.v;
|
||||
BLI_assert(cut_edge.v1 != cut_edge.v2);
|
||||
cut_edge.flag = ME_EDGEDRAW | ME_EDGERENDER;
|
||||
cut_edge.flag = ME_EDGEDRAW;
|
||||
edge_index++;
|
||||
|
||||
/* Only handle one of the cuts per iteration. */
|
||||
|
@@ -814,7 +814,7 @@ static Mesh *modifyMesh(ModifierData *md, const ModifierEvalContext *ctx, Mesh *
|
||||
/* add the new edge */
|
||||
med_new->v1 = varray_stride + j;
|
||||
med_new->v2 = med_new->v1 - totvert;
|
||||
med_new->flag = ME_EDGEDRAW | ME_EDGERENDER;
|
||||
med_new->flag = ME_EDGEDRAW;
|
||||
if (!BLI_BITMAP_TEST(vert_tag, j)) {
|
||||
med_new->flag |= ME_LOOSEEDGE;
|
||||
}
|
||||
@@ -835,7 +835,7 @@ static Mesh *modifyMesh(ModifierData *md, const ModifierEvalContext *ctx, Mesh *
|
||||
for (i = 0; i < totvert; i++) {
|
||||
med_new->v1 = i;
|
||||
med_new->v2 = varray_stride + i;
|
||||
med_new->flag = ME_EDGEDRAW | ME_EDGERENDER;
|
||||
med_new->flag = ME_EDGEDRAW;
|
||||
if (!BLI_BITMAP_TEST(vert_tag, i)) {
|
||||
med_new->flag |= ME_LOOSEEDGE;
|
||||
}
|
||||
|
@@ -1045,7 +1045,7 @@ Mesh *MOD_solidify_extrude_modifyMesh(ModifierData *md, const ModifierEvalContex
|
||||
for (i = 0; i < rimVerts; i++, ed++) {
|
||||
ed->v1 = new_vert_arr[i];
|
||||
ed->v2 = (do_shell ? new_vert_arr[i] : i) + verts_num;
|
||||
ed->flag |= ME_EDGEDRAW | ME_EDGERENDER;
|
||||
ed->flag |= ME_EDGEDRAW;
|
||||
|
||||
if (orig_ed) {
|
||||
*orig_ed = ORIGINDEX_NONE;
|
||||
|
@@ -2042,7 +2042,7 @@ Mesh *MOD_solidify_nonmanifold_modifyMesh(ModifierData *md,
|
||||
BLI_assert(v2 != MOD_SOLIDIFY_EMPTY_TAG);
|
||||
medge[insert].v1 = v1;
|
||||
medge[insert].v2 = v2;
|
||||
medge[insert].flag = orig_medge[(*l)->old_edge].flag | ME_EDGEDRAW | ME_EDGERENDER;
|
||||
medge[insert].flag = orig_medge[(*l)->old_edge].flag | ME_EDGEDRAW;
|
||||
if (result_edge_crease) {
|
||||
result_edge_crease[insert] = orig_edge_crease ? orig_edge_crease[(*l)->old_edge] :
|
||||
0.0f;
|
||||
@@ -2206,8 +2206,7 @@ Mesh *MOD_solidify_nonmanifold_modifyMesh(ModifierData *md,
|
||||
}
|
||||
medge[edge_index].v1 = last_g->new_vert;
|
||||
medge[edge_index].v2 = g->new_vert;
|
||||
medge[edge_index].flag = ME_EDGEDRAW | ME_EDGERENDER |
|
||||
((last_flag | flag) & (ME_SEAM | ME_SHARP));
|
||||
medge[edge_index].flag = ME_EDGEDRAW | ((last_flag | flag) & (ME_SEAM | ME_SHARP));
|
||||
if (result_edge_crease) {
|
||||
result_edge_crease[edge_index] = max_ff(mv_crease,
|
||||
min_ff(last_max_crease, max_crease));
|
||||
@@ -2240,7 +2239,7 @@ Mesh *MOD_solidify_nonmanifold_modifyMesh(ModifierData *md,
|
||||
last_g->open_face_edge = edge_index;
|
||||
medge[edge_index].v1 = last_g->new_vert;
|
||||
medge[edge_index].v2 = first_g->new_vert;
|
||||
medge[edge_index].flag = ME_EDGEDRAW | ME_EDGERENDER |
|
||||
medge[edge_index].flag = ME_EDGEDRAW |
|
||||
((last_flag | first_flag) & (ME_SEAM | ME_SHARP));
|
||||
if (result_edge_crease) {
|
||||
result_edge_crease[edge_index] = max_ff(mv_crease,
|
||||
|
@@ -86,7 +86,7 @@ static Mesh *triangulate_mesh(Mesh *mesh,
|
||||
|
||||
/* force drawing of all edges (seems to be omitted in CDDM_from_bmesh) */
|
||||
for (i = 0; i < edges_num; i++, me++) {
|
||||
me->flag |= ME_EDGEDRAW | ME_EDGERENDER;
|
||||
me->flag |= ME_EDGEDRAW;
|
||||
}
|
||||
|
||||
return result;
|
||||
|
@@ -87,7 +87,7 @@ static Mesh *hull_from_bullet(const Mesh *mesh, Span<float3> coords)
|
||||
MEdge &edge = edges[edge_index];
|
||||
edge.v1 = v_from;
|
||||
edge.v2 = v_to;
|
||||
edge.flag = ME_EDGEDRAW | ME_EDGERENDER;
|
||||
edge.flag = ME_EDGEDRAW;
|
||||
|
||||
/* Write edge index into both loops that have it. */
|
||||
int reverse_index = plConvexHullGetReversedLoopIndex(hull, i);
|
||||
@@ -101,7 +101,7 @@ static Mesh *hull_from_bullet(const Mesh *mesh, Span<float3> coords)
|
||||
MEdge &edge = edges[0];
|
||||
edge.v1 = 0;
|
||||
edge.v2 = 1;
|
||||
edge.flag |= ME_EDGEDRAW | ME_EDGERENDER | ME_LOOSEEDGE;
|
||||
edge.flag |= ME_EDGEDRAW | ME_LOOSEEDGE;
|
||||
edge_index++;
|
||||
}
|
||||
BLI_assert(edge_index == edges_num);
|
||||
|
@@ -90,7 +90,7 @@ static Mesh *cdt_to_mesh(const meshintersect::CDT_result<double> &result)
|
||||
for (const int i : IndexRange(result.edge.size())) {
|
||||
edges[i].v1 = result.edge[i].first;
|
||||
edges[i].v2 = result.edge[i].second;
|
||||
edges[i].flag = ME_EDGEDRAW | ME_EDGERENDER;
|
||||
edges[i].flag = ME_EDGEDRAW;
|
||||
}
|
||||
int i_loop = 0;
|
||||
for (const int i : IndexRange(result.face.size())) {
|
||||
|
@@ -154,7 +154,7 @@ static MEdge new_edge(const int v1, const int v2)
|
||||
MEdge edge;
|
||||
edge.v1 = v1;
|
||||
edge.v2 = v2;
|
||||
edge.flag = (ME_EDGEDRAW | ME_EDGERENDER);
|
||||
edge.flag = ME_EDGEDRAW;
|
||||
return edge;
|
||||
}
|
||||
|
||||
|
@@ -127,7 +127,7 @@ static Mesh *create_circle_mesh(const float radius,
|
||||
/* Create outer edges. */
|
||||
const short edge_flag = (fill_type == GEO_NODE_MESH_CIRCLE_FILL_NONE) ?
|
||||
ME_LOOSEEDGE :
|
||||
(ME_EDGEDRAW | ME_EDGERENDER); /* NGON or TRIANGLE_FAN */
|
||||
ME_EDGEDRAW; /* NGON or TRIANGLE_FAN */
|
||||
for (const int i : IndexRange(verts_num)) {
|
||||
MEdge &edge = edges[i];
|
||||
edge.v1 = i;
|
||||
@@ -141,7 +141,7 @@ static Mesh *create_circle_mesh(const float radius,
|
||||
MEdge &edge = edges[verts_num + i];
|
||||
edge.v1 = verts_num;
|
||||
edge.v2 = i;
|
||||
edge.flag = ME_EDGEDRAW | ME_EDGERENDER;
|
||||
edge.flag = ME_EDGEDRAW;
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -329,7 +329,7 @@ static void calculate_cone_edges(const MutableSpan<MEdge> &edges, const ConeConf
|
||||
MEdge &edge = edges[edge_index++];
|
||||
edge.v1 = config.first_vert;
|
||||
edge.v2 = config.first_ring_verts_start + i;
|
||||
edge.flag = ME_EDGEDRAW | ME_EDGERENDER;
|
||||
edge.flag = ME_EDGEDRAW;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -342,7 +342,7 @@ static void calculate_cone_edges(const MutableSpan<MEdge> &edges, const ConeConf
|
||||
MEdge &edge = edges[edge_index++];
|
||||
edge.v1 = this_ring_vert_start + j;
|
||||
edge.v2 = this_ring_vert_start + ((j + 1) % config.circle_segments);
|
||||
edge.flag = ME_EDGEDRAW | ME_EDGERENDER;
|
||||
edge.flag = ME_EDGEDRAW;
|
||||
}
|
||||
if (i == config.tot_edge_rings - 1) {
|
||||
/* There is one fewer ring of connecting edges. */
|
||||
@@ -353,7 +353,7 @@ static void calculate_cone_edges(const MutableSpan<MEdge> &edges, const ConeConf
|
||||
MEdge &edge = edges[edge_index++];
|
||||
edge.v1 = this_ring_vert_start + j;
|
||||
edge.v2 = next_ring_vert_start + j;
|
||||
edge.flag = ME_EDGEDRAW | ME_EDGERENDER;
|
||||
edge.flag = ME_EDGEDRAW;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -363,7 +363,7 @@ static void calculate_cone_edges(const MutableSpan<MEdge> &edges, const ConeConf
|
||||
MEdge &edge = edges[edge_index++];
|
||||
edge.v1 = config.last_ring_verts_start + i;
|
||||
edge.v2 = config.last_vert;
|
||||
edge.flag = ME_EDGEDRAW | ME_EDGERENDER;
|
||||
edge.flag = ME_EDGEDRAW;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -76,8 +76,7 @@ Mesh *create_grid_mesh(const int verts_x,
|
||||
|
||||
const int y_edges_start = 0;
|
||||
const int x_edges_start = verts_x * edges_y;
|
||||
const short edge_flag = (edges_x == 0 || edges_y == 0) ? ME_LOOSEEDGE :
|
||||
ME_EDGEDRAW | ME_EDGERENDER;
|
||||
const short edge_flag = (edges_x == 0 || edges_y == 0) ? ME_LOOSEEDGE : ME_EDGEDRAW;
|
||||
|
||||
/* Build the horizontal edges in the X direction. */
|
||||
threading::parallel_for(IndexRange(verts_x), 512, [&](IndexRange x_range) {
|
||||
|
@@ -116,7 +116,7 @@ BLI_NOINLINE static void calculate_sphere_edge_indices(MutableSpan<MEdge> edges,
|
||||
MEdge &edge = edges[edge_index++];
|
||||
edge.v1 = 0;
|
||||
edge.v2 = first_vert_ring_index_start + segment;
|
||||
edge.flag = ME_EDGEDRAW | ME_EDGERENDER;
|
||||
edge.flag = ME_EDGEDRAW;
|
||||
}
|
||||
|
||||
int ring_vert_index_start = 1;
|
||||
@@ -128,7 +128,7 @@ BLI_NOINLINE static void calculate_sphere_edge_indices(MutableSpan<MEdge> edges,
|
||||
MEdge &edge = edges[edge_index++];
|
||||
edge.v1 = ring_vert_index_start + segment;
|
||||
edge.v2 = ring_vert_index_start + ((segment + 1) % segments);
|
||||
edge.flag = ME_EDGEDRAW | ME_EDGERENDER;
|
||||
edge.flag = ME_EDGEDRAW;
|
||||
}
|
||||
|
||||
/* Add the edges connecting to the next ring. */
|
||||
@@ -137,7 +137,7 @@ BLI_NOINLINE static void calculate_sphere_edge_indices(MutableSpan<MEdge> edges,
|
||||
MEdge &edge = edges[edge_index++];
|
||||
edge.v1 = ring_vert_index_start + segment;
|
||||
edge.v2 = next_ring_vert_index_start + segment;
|
||||
edge.flag = ME_EDGEDRAW | ME_EDGERENDER;
|
||||
edge.flag = ME_EDGEDRAW;
|
||||
}
|
||||
}
|
||||
ring_vert_index_start += segments;
|
||||
@@ -150,7 +150,7 @@ BLI_NOINLINE static void calculate_sphere_edge_indices(MutableSpan<MEdge> edges,
|
||||
MEdge &edge = edges[edge_index++];
|
||||
edge.v1 = last_vert_index;
|
||||
edge.v2 = last_vert_ring_start + segment;
|
||||
edge.flag = ME_EDGEDRAW | ME_EDGERENDER;
|
||||
edge.flag = ME_EDGEDRAW;
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user