Differential D16721 Diff 58614 source/blender/nodes/geometry/nodes/node_geo_mesh_topology_edges_of_corner.cc
Changeset View
Changeset View
Standalone View
Standalone View
source/blender/nodes/geometry/nodes/node_geo_mesh_topology_edges_of_corner.cc
| Show First 20 Lines • Show All 82 Lines • ▼ Show 20 Lines | GVArray get_varray_for_context(const Mesh &mesh, | ||||
| const Span<MPoly> polys = mesh.polys(); | const Span<MPoly> polys = mesh.polys(); | ||||
| const Span<MLoop> loops = mesh.loops(); | const Span<MLoop> loops = mesh.loops(); | ||||
| Array<int> loop_to_poly_map = bke::mesh_topology::build_loop_to_poly_map(polys, mesh.totloop); | Array<int> loop_to_poly_map = bke::mesh_topology::build_loop_to_poly_map(polys, mesh.totloop); | ||||
| return VArray<int>::ForFunc( | return VArray<int>::ForFunc( | ||||
| mesh.totloop, | mesh.totloop, | ||||
| [polys, loops, loop_to_poly_map = std::move(loop_to_poly_map)](const int corner_i) { | [polys, loops, loop_to_poly_map = std::move(loop_to_poly_map)](const int corner_i) { | ||||
| const int poly_i = loop_to_poly_map[corner_i]; | const int poly_i = loop_to_poly_map[corner_i]; | ||||
| const MPoly &poly = polys[poly_i]; | const MPoly &poly = polys[poly_i]; | ||||
| const int corner_i_prev = bke::mesh_topology::previous_poly_loop(poly, corner_i); | const int corner_i_prev = bke::mesh_topology::poly_loop_prev(poly, corner_i); | ||||
| return loops[corner_i_prev].e; | return loops[corner_i_prev].e; | ||||
| }); | }); | ||||
| } | } | ||||
| uint64_t hash() const final | uint64_t hash() const final | ||||
| { | { | ||||
| return 987298345762465; | return 987298345762465; | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 47 Lines • Show Last 20 Lines | |||||