|
Blender V5.0
|
#include "CLG_log.h"#include "MEM_guardedalloc.h"#include "BLI_array.hh"#include "BLI_astar.h"#include "BLI_bit_vector.hh"#include "BLI_index_mask.hh"#include "BLI_math_geom.h"#include "BLI_math_matrix.h"#include "BLI_math_solvers.h"#include "BLI_math_statistics.h"#include "BLI_math_vector.h"#include "BLI_memarena.h"#include "BLI_polyfill_2d.h"#include "BLI_rand.h"#include "BLI_utildefines.h"#include "DNA_modifier_enums.h"#include "BKE_attribute.hh"#include "BKE_bvhutils.hh"#include "BKE_customdata.hh"#include "BKE_mesh.hh"#include "BKE_mesh_mapping.hh"#include "BKE_mesh_remap.hh"#include "BLI_strict_flags.h"Go to the source code of this file.
Classes | |
| struct | IslandResult |
Typedefs | |
| using | float3 |
Functions | |
Some Generic Helpers | |
| static bool | mesh_remap_bvhtree_query_nearest (blender::bke::BVHTreeFromMesh *treedata, BVHTreeNearest *nearest, const float co[3], const float max_dist_sq, float *r_hit_dist) |
| static bool | mesh_remap_bvhtree_query_raycast (blender::bke::BVHTreeFromMesh *treedata, BVHTreeRayHit *rayhit, const float co[3], const float no[3], const float radius, const float max_dist, float *r_hit_dist) |
Auto-match. | |
Find transform of a mesh to get best match with another. | |
| float | BKE_mesh_remap_calc_difference_from_mesh (const SpaceTransform *space_transform, const Span< float3 > vert_positions_dst, const Mesh *me_src) |
| static void | mesh_calc_eigen_matrix (const Span< float3 > positions, float r_mat[4][4]) |
| void | BKE_mesh_remap_find_best_match_from_mesh (const Span< float3 > vert_positions_dst, const Mesh *me_src, SpaceTransform *r_space_transform) |
Variables | |
| static CLG_LogRef | LOG = {"geom.mesh"} |
Mesh to Mesh Mapping | |
| #define | MREMAP_RAYCAST_APPROXIMATE_NR 3 |
| #define | MREMAP_RAYCAST_APPROXIMATE_FAC 5.0f |
| #define | MREMAP_RAYCAST_TRI_SAMPLES_MIN 4 |
| #define | MREMAP_RAYCAST_TRI_SAMPLES_MAX 20 |
| #define | MREMAP_DEFAULT_BUFSIZE 32 |
| #define | POLY_UNSET 0 |
| #define | POLY_CENTER_INIT 1 |
| #define | POLY_COMPLETE 2 |
| #define | ASTAR_STEPS_MAX 64 |
| void | BKE_mesh_remap_init (MeshPairRemap *map, const int items_num) |
| void | BKE_mesh_remap_free (MeshPairRemap *map) |
| static void | mesh_remap_item_define (MeshPairRemap *map, const int index, const float, const int island, const int sources_num, const int *indices_src, const float *weights_src) |
| void | BKE_mesh_remap_item_define_invalid (MeshPairRemap *map, const int index) |
| static int | mesh_remap_interp_face_data_get (const blender::IndexRange face, const blender::Span< int > corner_verts, const blender::Span< blender::float3 > positions_src, const float point[3], size_t *buff_size, float(**vcos)[3], const bool use_loops, int **indices, float **weights, const bool do_weights, int *r_closest_index) |
| void | BKE_mesh_remap_calc_verts_from_mesh (const int mode, const SpaceTransform *space_transform, const float max_dist, const float ray_radius, const Span< float3 > vert_positions_dst, const Mesh *me_src, Mesh *me_dst, MeshPairRemap *r_map) |
| void | BKE_mesh_remap_calc_edges_from_mesh (const int mode, const SpaceTransform *space_transform, const float max_dist, const float ray_radius, const Span< float3 > vert_positions_dst, const Span< blender::int2 > edges_dst, const Mesh *me_src, Mesh *me_dst, MeshPairRemap *r_map) |
| static void | mesh_island_to_astar_graph_edge_process (MeshIslandStore *islands, const int island_index, BLI_AStarGraph *as_graph, const blender::Span< blender::float3 > positions, const blender::OffsetIndices< int > faces, const blender::Span< int > corner_verts, const int edge_idx, BLI_bitmap *done_edges, const blender::GroupedSpan< int > edge_to_face_map, const bool is_edge_innercut, const int *face_island_index_map, float(*face_centers)[3], uchar *face_status) |
| static void | mesh_island_to_astar_graph (MeshIslandStore *islands, const int island_index, const blender::Span< blender::float3 > positions, const blender::GroupedSpan< int > edge_to_face_map, const int numedges, const blender::OffsetIndices< int > faces, const blender::Span< int > corner_verts, const blender::Span< int > corner_edges, BLI_AStarGraph *r_as_graph) |
| static float | mesh_remap_calc_loops_astar_f_cost (BLI_AStarGraph *as_graph, BLI_AStarSolution *as_solution, BLI_AStarGNLink *link, const int node_idx_curr, const int node_idx_next, const int node_idx_dst) |
| void | BKE_mesh_remap_calc_loops_from_mesh (const int mode, const SpaceTransform *space_transform, const float max_dist, const float ray_radius, const Mesh *mesh_dst, const Span< float3 > vert_positions_dst, const Span< int > corner_verts_dst, const blender::OffsetIndices< int > faces_dst, const Mesh *me_src, MeshRemapIslandsCalc gen_islands_src, const float islands_precision_src, MeshPairRemap *r_map) |
| void | BKE_mesh_remap_calc_faces_from_mesh (const int mode, const SpaceTransform *space_transform, const float max_dist, const float ray_radius, const Mesh *mesh_dst, const Span< float3 > vert_positions_dst, const Span< int > corner_verts_dst, const blender::OffsetIndices< int > faces_dst, const Mesh *me_src, MeshPairRemap *r_map) |
Functions for mapping data between meshes.
Definition in file mesh_remap.cc.
| #define ASTAR_STEPS_MAX 64 |
Definition at line 1181 of file mesh_remap.cc.
Referenced by BKE_mesh_remap_calc_loops_from_mesh().
| #define MREMAP_DEFAULT_BUFSIZE 32 |
Definition at line 432 of file mesh_remap.cc.
Referenced by BKE_mesh_remap_calc_faces_from_mesh(), BKE_mesh_remap_calc_loops_from_mesh(), and BKE_mesh_remap_calc_verts_from_mesh().
| #define MREMAP_RAYCAST_APPROXIMATE_FAC 5.0f |
Each approximated ray-casts will have n times bigger radius than previous one.
Definition at line 425 of file mesh_remap.cc.
Referenced by BKE_mesh_remap_calc_edges_from_mesh(), BKE_mesh_remap_calc_faces_from_mesh(), and BKE_mesh_remap_calc_loops_from_mesh().
| #define MREMAP_RAYCAST_APPROXIMATE_NR 3 |
However, in 'islands' case where each hit gets a weight, 'precise' hits should have a better weight than 'approximate' hits. To address that, we simplify things with:
This only concerns loops, currently (because of islands), and 'sampled' edges/faces norproj. At most N ray-casts per 'real' ray.
Definition at line 423 of file mesh_remap.cc.
Referenced by BKE_mesh_remap_calc_edges_from_mesh(), BKE_mesh_remap_calc_faces_from_mesh(), and BKE_mesh_remap_calc_loops_from_mesh().
| #define MREMAP_RAYCAST_TRI_SAMPLES_MAX 20 |
Definition at line 429 of file mesh_remap.cc.
Referenced by BKE_mesh_remap_calc_faces_from_mesh().
| #define MREMAP_RAYCAST_TRI_SAMPLES_MIN 4 |
Definition at line 428 of file mesh_remap.cc.
Referenced by BKE_mesh_remap_calc_faces_from_mesh().
| #define POLY_CENTER_INIT 1 |
Definition at line 996 of file mesh_remap.cc.
Referenced by mesh_island_to_astar_graph_edge_process().
| #define POLY_COMPLETE 2 |
Definition at line 997 of file mesh_remap.cc.
Referenced by mesh_island_to_astar_graph(), and mesh_island_to_astar_graph_edge_process().
| #define POLY_UNSET 0 |
Definition at line 995 of file mesh_remap.cc.
Referenced by mesh_island_to_astar_graph_edge_process().
| using blender::float3 |
Definition at line 619 of file BLI_math_vector_types.hh.
| float BKE_mesh_remap_calc_difference_from_mesh | ( | const SpaceTransform * | space_transform, |
| const Span< float3 > | vert_positions_dst, | ||
| const Mesh * | me_src ) |
Definition at line 119 of file mesh_remap.cc.
References BLI_space_transform_apply(), copy_v3_v3(), float, FLT_MAX, i, BVHTreeNearest::index, mesh_remap_bvhtree_query_nearest(), printf, result, and blender::Span< T >::size().
Referenced by BKE_mesh_remap_find_best_match_from_mesh().
| void BKE_mesh_remap_calc_edges_from_mesh | ( | const int | mode, |
| const SpaceTransform * | space_transform, | ||
| const float | max_dist, | ||
| const float | ray_radius, | ||
| const Span< float3 > | vert_positions_dst, | ||
| const Span< blender::int2 > | edges_dst, | ||
| const Mesh * | me_src, | ||
| Mesh * | me_dst, | ||
| MeshPairRemap * | r_map ) |
Definition at line 653 of file mesh_remap.cc.
References BKE_mesh_remap_init(), BKE_mesh_remap_item_define_invalid(), BLI_assert, BLI_space_transform_apply(), BLI_space_transform_apply_normal(), blender::bke::mesh::build_vert_to_edge_map(), CLAMP, CLOG_WARN, copy_v3_v3(), copy_vn_fl(), blender::offset_indices::GroupedSpan< T >::data, blender::bke::mesh::edge_other_vert(), Mesh::edges_num, float, FLT_MAX, i, BVHTreeNearest::index, BVHTreeRayHit::index, indices, interp_v3_v3v3(), interp_v3_v3v3_slerp_safe(), isect_line_line_v3(), MeshPairRemap::items, len_squared_v3v3(), len_v3v3(), line_point_factor_v3(), LOG, MEM_freeN(), MEM_malloc_arrayN(), mesh_remap_bvhtree_query_nearest(), mesh_remap_bvhtree_query_raycast(), mesh_remap_item_define(), min_ii(), MREMAP_MODE_EDGE, MREMAP_MODE_EDGE_EDGEINTERP_VNORPROJ, MREMAP_MODE_EDGE_NEAREST, MREMAP_MODE_EDGE_POLY_NEAREST, MREMAP_MODE_EDGE_VERT_NEAREST, MREMAP_MODE_TOPOLOGY, MREMAP_RAYCAST_APPROXIMATE_FAC, MREMAP_RAYCAST_APPROXIMATE_NR, blender::IndexRange::size(), blender::Span< T >::size(), size(), blender::IndexRange::start(), Mesh::verts_num, and w().
| void BKE_mesh_remap_calc_faces_from_mesh | ( | const int | mode, |
| const SpaceTransform * | space_transform, | ||
| const float | max_dist, | ||
| const float | ray_radius, | ||
| const Mesh * | mesh_dst, | ||
| const Span< float3 > | vert_positions_dst, | ||
| const Span< int > | corner_verts_dst, | ||
| const blender::OffsetIndices< int > | faces_dst, | ||
| const Mesh * | me_src, | ||
| MeshPairRemap * | r_map ) |
Definition at line 1985 of file mesh_remap.cc.
References area_poly_v2(), area_tri_v2(), axis_dominant_v3_to_m3(), BKE_mesh_remap_init(), BKE_mesh_remap_item_define_invalid(), BLI_assert, BLI_polyfill_calc(), BLI_rng_free(), BLI_rng_get_tri_sample_float_v2(), BLI_rng_new(), BLI_space_transform_apply(), BLI_space_transform_apply_normal(), CLAMP, CLOG_WARN, copy_v3_v3(), copy_vn_fl(), blender::bke::mesh::face_center_calc(), Mesh::faces_num, float, FLT_MAX, i, BVHTreeNearest::index, BVHTreeRayHit::index, blender::offset_indices::OffsetIndices< T >::index_range(), indices, INIT_MINMAX2, invert_m3_m3(), MeshPairRemap::items, LOG, max_ff(), max_ii(), MEM_freeN(), MEM_malloc_arrayN(), MEM_reallocN, mesh_remap_bvhtree_query_nearest(), mesh_remap_bvhtree_query_raycast(), mesh_remap_item_define(), minmax_v2v2_v2(), MREMAP_DEFAULT_BUFSIZE, MREMAP_MODE_POLY, MREMAP_MODE_POLY_NEAREST, MREMAP_MODE_POLY_NOR, MREMAP_MODE_POLY_POLYINTERP_PNORPROJ, MREMAP_MODE_TOPOLOGY, MREMAP_RAYCAST_APPROXIMATE_FAC, MREMAP_RAYCAST_APPROXIMATE_NR, MREMAP_RAYCAST_TRI_SAMPLES_MAX, MREMAP_RAYCAST_TRI_SAMPLES_MIN, MREMAP_USE_NORMAL, MREMAP_USE_NORPROJ, mul_m3_v3(), mul_v2_m3v3(), blender::IndexRange::size(), blender::offset_indices::OffsetIndices< T >::size(), blender::Span< T >::slice(), sub_v2_v2v2(), UNLIKELY, v2, and w().
| void BKE_mesh_remap_calc_loops_from_mesh | ( | const int | mode, |
| const SpaceTransform * | space_transform, | ||
| const float | max_dist, | ||
| const float | ray_radius, | ||
| const Mesh * | mesh_dst, | ||
| const Span< float3 > | vert_positions_dst, | ||
| const Span< int > | corner_verts_dst, | ||
| const blender::OffsetIndices< int > | faces_dst, | ||
| const Mesh * | me_src, | ||
| MeshRemapIslandsCalc | gen_islands_src, | ||
| const float | islands_precision_src, | ||
| MeshPairRemap * | r_map ) |
Definition at line 1183 of file mesh_remap.cc.
References ASTAR_STEPS_MAX, Geometry::attributes, BKE_mesh_loop_islands_free(), BKE_mesh_origindex_map_create_corner_tri(), BKE_mesh_remap_init(), BKE_mesh_remap_item_define_invalid(), BLI_assert, BLI_astar_graph_free(), BLI_astar_graph_solve(), BLI_astar_solution_clear(), BLI_astar_solution_free(), BLI_astar_solution_init(), BLI_space_transform_apply(), BLI_space_transform_apply_normal(), blender::bke::mesh::build_edge_to_face_map(), blender::bke::bvhtree_from_mesh_corner_tris_ex(), blender::bke::bvhtree_from_mesh_verts_ex(), closest_on_tri_to_point_v3(), BVHTreeNearest::co, BVHTreeRayHit::co, copy_v3_v3(), Mesh::corners_num, count, MeshElemMap::count, BLI_AStarGNLink::custom_data, BLI_AStarGraph::custom_data, BLI_AStarSolution::custom_data, blender::Span< T >::data(), dot(), dot_v3v3(), blender::bke::Edge, ELEM, blender::bke::mesh::face_center_calc(), IslandResult::factor, blender::bits::BitVector< InlineBufferCapacity, Allocator >::fill(), float, FLT_MAX, IndexMask::from_bits(), IslandResult::hit_dist, IslandResult::hit_point, i, BVHTreeNearest::index, BVHTreeRayHit::index, blender::offset_indices::OffsetIndices< T >::index_range(), IslandResult::index_src, MeshElemMap::indices, MeshIslandStore::innercut_type, MeshIslandStore::island_type, MeshIslandStore::islands, MeshIslandStore::islands_num, MeshIslandStore::item_type, MeshIslandStore::items_to_islands, len_squared_v3v3(), blender::bke::AttributeAccessor::lookup(), max_ii(), MEM_calloc_arrayN(), MEM_callocN(), MEM_freeN(), MEM_malloc_arrayN(), MEM_reallocN, mesh_island_to_astar_graph(), mesh_remap_bvhtree_query_nearest(), mesh_remap_bvhtree_query_raycast(), mesh_remap_calc_loops_astar_f_cost(), mesh_remap_interp_face_data_get(), mesh_remap_item_define(), MISLAND_TYPE_EDGE, MISLAND_TYPE_LOOP, MISLAND_TYPE_POLY, MREMAP_DEFAULT_BUFSIZE, MREMAP_MODE_LOOP, MREMAP_MODE_LOOP_NEAREST_LOOPNOR, MREMAP_MODE_LOOP_NEAREST_POLYNOR, MREMAP_MODE_LOOP_POLY_NEAREST, MREMAP_MODE_TOPOLOGY, MREMAP_RAYCAST_APPROXIMATE_FAC, MREMAP_RAYCAST_APPROXIMATE_NR, MREMAP_USE_LOOP, MREMAP_USE_NORMAL, MREMAP_USE_NORPROJ, MREMAP_USE_POLY, MREMAP_USE_VERT, POINTER_AS_INT, POINTER_FROM_INT, BLI_AStarSolution::prev_links, BLI_AStarSolution::prev_nodes, Array< T, InlineBufferCapacity, Allocator >::reinitialize(), blender::Array< T, InlineBufferCapacity, Allocator >::reinitialize(), blender::IndexRange::size(), blender::offset_indices::OffsetIndices< T >::size(), blender::Span< T >::size(), blender::Span< T >::slice(), blender::IndexRange::start(), BLI_AStarSolution::steps, Mesh::verts_num, and w().
| void BKE_mesh_remap_calc_verts_from_mesh | ( | const int | mode, |
| const SpaceTransform * | space_transform, | ||
| const float | max_dist, | ||
| const float | ray_radius, | ||
| const Span< float3 > | vert_positions_dst, | ||
| const Mesh * | me_src, | ||
| Mesh * | me_dst, | ||
| MeshPairRemap * | r_map ) |
Definition at line 434 of file mesh_remap.cc.
References BKE_mesh_remap_init(), BKE_mesh_remap_item_define_invalid(), BLI_assert, BLI_space_transform_apply(), BLI_space_transform_apply_normal(), CLAMP, CLOG_WARN, BVHTreeNearest::co, BVHTreeRayHit::co, copy_v3_v3(), ELEM, float, FLT_MAX, i, BVHTreeNearest::index, BVHTreeRayHit::index, indices, MeshPairRemap::items, len_squared_v3v3(), line_point_factor_v3(), LOG, MEM_freeN(), MEM_malloc_arrayN(), mesh_remap_bvhtree_query_nearest(), mesh_remap_bvhtree_query_raycast(), mesh_remap_interp_face_data_get(), mesh_remap_item_define(), MREMAP_DEFAULT_BUFSIZE, MREMAP_MODE_TOPOLOGY, MREMAP_MODE_VERT, MREMAP_MODE_VERT_EDGE_NEAREST, MREMAP_MODE_VERT_EDGEINTERP_NEAREST, MREMAP_MODE_VERT_FACE_NEAREST, MREMAP_MODE_VERT_NEAREST, MREMAP_MODE_VERT_POLYINTERP_NEAREST, MREMAP_MODE_VERT_POLYINTERP_VNORPROJ, blender::Span< T >::size(), and Mesh::verts_num.
| void BKE_mesh_remap_find_best_match_from_mesh | ( | const Span< float3 > | vert_positions_dst, |
| const Mesh * | me_src, | ||
| SpaceTransform * | r_space_transform ) |
Definition at line 234 of file mesh_remap.cc.
References BKE_mesh_remap_calc_difference_from_mesh(), BLI_space_transform_global_from_matrices(), copy_m4_m4(), float, FLT_MAX, mesh_calc_eigen_matrix(), and mul_v3_fl().
| void BKE_mesh_remap_free | ( | MeshPairRemap * | map | ) |
Definition at line 301 of file mesh_remap.cc.
References BLI_memarena_free(), MeshPairRemap::items, MeshPairRemap::items_num, and MeshPairRemap::mem.
Referenced by BKE_mesh_remap_init(), and BKE_object_data_transfer_ex().
| void BKE_mesh_remap_init | ( | MeshPairRemap * | map, |
| const int | items_num ) |
Definition at line 288 of file mesh_remap.cc.
References BKE_mesh_remap_free(), BLI_memarena_alloc(), BLI_memarena_new(), BLI_MEMARENA_STD_BUFSIZE, MeshPairRemap::items, MeshPairRemap::items_num, and MeshPairRemap::mem.
Referenced by BKE_mesh_remap_calc_edges_from_mesh(), BKE_mesh_remap_calc_faces_from_mesh(), BKE_mesh_remap_calc_loops_from_mesh(), and BKE_mesh_remap_calc_verts_from_mesh().
| void BKE_mesh_remap_item_define_invalid | ( | MeshPairRemap * | map, |
| const int | index ) |
Definition at line 341 of file mesh_remap.cc.
References FLT_MAX, and mesh_remap_item_define().
Referenced by BKE_mesh_remap_calc_edges_from_mesh(), BKE_mesh_remap_calc_faces_from_mesh(), BKE_mesh_remap_calc_loops_from_mesh(), and BKE_mesh_remap_calc_verts_from_mesh().
Definition at line 172 of file mesh_remap.cc.
References BLI_assert, BLI_covariance_m3_v3n(), BLI_eigen_solve_selfadjoint_m3(), compare_ff_relative(), copy_m4_m3(), copy_v3_v3(), blender::Span< T >::data(), i, mul_v3_fl(), ortho_basis_v3v3_v3(), blender::Span< T >::size(), sqrtf_signed(), unit_m3(), unit_m4(), and UNUSED_VARS_NDEBUG.
Referenced by BKE_mesh_remap_find_best_match_from_mesh().
|
static |
Definition at line 1059 of file mesh_remap.cc.
References BLI_astar_graph_init(), BLI_BITMAP_NEW, BLI_BITMAP_TEST, BLI_memarena_calloc(), MeshElemMap::count, BLI_AStarGraph::custom_data, faces, float, i, MeshElemMap::indices, MeshIslandStore::innercuts, MeshIslandStore::islands, BLI_AStarGraph::mem, MEM_calloc_arrayN(), MEM_freeN(), mesh_island_to_astar_graph_edge_process(), POLY_COMPLETE, and blender::Span< T >::slice().
Referenced by BKE_mesh_remap_calc_loops_from_mesh().
|
static |
Definition at line 999 of file mesh_remap.cc.
References BLI_astar_node_init(), BLI_astar_node_link_add(), BLI_BITMAP_ENABLE, copy_v3_v3(), blender::bke::mesh::face_center_calc(), faces, i, MeshIslandStore::items_to_islands, len_v3v3(), POINTER_FROM_INT, POLY_CENTER_INIT, POLY_COMPLETE, POLY_UNSET, blender::offset_indices::GroupedSpan< T >::size(), size(), blender::Span< T >::slice(), blender::IndexRange::start(), and UNLIKELY.
Referenced by mesh_island_to_astar_graph().
|
static |
Definition at line 49 of file mesh_remap.cc.
References BLI_bvhtree_find_nearest(), BVHTreeNearest::co, BVHTreeNearest::dist_sq, BVHTreeNearest::index, len_squared_v3v3(), blender::bke::BVHTreeFromMesh::nearest_callback, sqrtf, and blender::bke::BVHTreeFromMesh::tree.
Referenced by BKE_mesh_remap_calc_difference_from_mesh(), BKE_mesh_remap_calc_edges_from_mesh(), BKE_mesh_remap_calc_faces_from_mesh(), BKE_mesh_remap_calc_loops_from_mesh(), and BKE_mesh_remap_calc_verts_from_mesh().
|
static |
Definition at line 78 of file mesh_remap.cc.
References BLI_bvhtree_ray_cast(), BVHTreeRayHit::dist, BVHTreeRayHit::index, negate_v3_v3(), blender::bke::BVHTreeFromMesh::raycast_callback, and blender::bke::BVHTreeFromMesh::tree.
Referenced by BKE_mesh_remap_calc_edges_from_mesh(), BKE_mesh_remap_calc_faces_from_mesh(), BKE_mesh_remap_calc_loops_from_mesh(), and BKE_mesh_remap_calc_verts_from_mesh().
|
static |
Definition at line 1154 of file mesh_remap.cc.
References BLI_AStarGNLink::cost, BLI_AStarGNLink::custom_data, BLI_AStarGNode::custom_data, BLI_AStarSolution::custom_data, BLI_AStarSolution::g_costs, len_v3v3(), BLI_AStarGraph::nodes, POINTER_AS_INT, and POINTER_FROM_INT.
Referenced by BKE_mesh_remap_calc_loops_from_mesh().
|
static |
Definition at line 346 of file mesh_remap.cc.
References copy_v3_v3(), float, FLT_MAX, i, indices, interp_weights_poly_v3(), len_squared_v3v3(), MEM_reallocN, and blender::IndexRange::size().
Referenced by BKE_mesh_remap_calc_loops_from_mesh(), and BKE_mesh_remap_calc_verts_from_mesh().
|
static |
Definition at line 312 of file mesh_remap.cc.
References BLI_memarena_alloc(), MeshPairRemapItem::indices_src, MeshPairRemapItem::island, MeshPairRemap::items, MeshPairRemap::mem, MeshPairRemapItem::sources_num, and MeshPairRemapItem::weights_src.
Referenced by BKE_mesh_remap_calc_edges_from_mesh(), BKE_mesh_remap_calc_faces_from_mesh(), BKE_mesh_remap_calc_loops_from_mesh(), BKE_mesh_remap_calc_verts_from_mesh(), and BKE_mesh_remap_item_define_invalid().
|
static |
Definition at line 40 of file mesh_remap.cc.