Changeset View
Changeset View
Standalone View
Standalone View
source/blender/nodes/geometry/nodes/node_geo_curve_fill.cc
| Show First 20 Lines • Show All 73 Lines • ▼ Show 20 Lines | static Mesh *cdt_to_mesh(const meshintersect::CDT_result<double> &result) | ||||
| const int edge_len = result.edge.size(); | const int edge_len = result.edge.size(); | ||||
| const int poly_len = result.face.size(); | const int poly_len = result.face.size(); | ||||
| int loop_len = 0; | int loop_len = 0; | ||||
| for (const Vector<int> &face : result.face) { | for (const Vector<int> &face : result.face) { | ||||
| loop_len += face.size(); | loop_len += face.size(); | ||||
| } | } | ||||
| Mesh *mesh = BKE_mesh_new_nomain(vert_len, edge_len, 0, loop_len, poly_len); | Mesh *mesh = BKE_mesh_new_nomain(vert_len, edge_len, 0, loop_len, poly_len); | ||||
| MutableSpan<MVert> verts = mesh->verts_for_write(); | MutableSpan<float3> positions = mesh->vert_positions_for_write(); | ||||
| MutableSpan<MEdge> edges = mesh->edges_for_write(); | MutableSpan<MEdge> edges = mesh->edges_for_write(); | ||||
| MutableSpan<MPoly> polys = mesh->polys_for_write(); | MutableSpan<MPoly> polys = mesh->polys_for_write(); | ||||
| MutableSpan<MLoop> loops = mesh->loops_for_write(); | MutableSpan<MLoop> loops = mesh->loops_for_write(); | ||||
| for (const int i : IndexRange(result.vert.size())) { | for (const int i : IndexRange(result.vert.size())) { | ||||
| copy_v3_v3(verts[i].co, float3(float(result.vert[i].x), float(result.vert[i].y), 0.0f)); | positions[i] = float3(float(result.vert[i].x), float(result.vert[i].y), 0.0f); | ||||
| } | } | ||||
| for (const int i : IndexRange(result.edge.size())) { | for (const int i : IndexRange(result.edge.size())) { | ||||
| edges[i].v1 = result.edge[i].first; | edges[i].v1 = result.edge[i].first; | ||||
| edges[i].v2 = result.edge[i].second; | edges[i].v2 = result.edge[i].second; | ||||
| edges[i].flag = ME_EDGEDRAW; | edges[i].flag = ME_EDGEDRAW; | ||||
| } | } | ||||
| int i_loop = 0; | int i_loop = 0; | ||||
| for (const int i : IndexRange(result.face.size())) { | for (const int i : IndexRange(result.face.size())) { | ||||
| ▲ Show 20 Lines • Show All 69 Lines • Show Last 20 Lines | |||||