|
Blender V4.5
|
#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_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 |
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 float(*vert_positions_dst)[3], const int numverts_dst, const Mesh *me_src) |
| static void | mesh_calc_eigen_matrix (const float(*positions)[3], const float(*vcos)[3], const int numverts, float r_mat[4][4]) |
| void | BKE_mesh_remap_find_best_match_from_mesh (const float(*vert_positions_dst)[3], const int numverts_dst, const Mesh *me_src, SpaceTransform *r_space_transform) |
Variables | |
| static CLG_LogRef | LOG = {"bke.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 float(*vert_positions_dst)[3], const int numverts_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 float(*vert_positions_dst)[3], const int numverts_dst, const blender::int2 *edges_dst, const int numedges_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 float(*vert_positions_dst)[3], const int numverts_dst, const int *corner_verts_dst, const int numloops_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 float(*vert_positions_dst)[3], const int numverts_dst, const 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 1197 of file mesh_remap.cc.
Referenced by BKE_mesh_remap_calc_loops_from_mesh().
| #define MREMAP_DEFAULT_BUFSIZE 32 |
Definition at line 446 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 439 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 437 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 443 of file mesh_remap.cc.
Referenced by BKE_mesh_remap_calc_faces_from_mesh().
| #define MREMAP_RAYCAST_TRI_SAMPLES_MIN 4 |
Definition at line 442 of file mesh_remap.cc.
Referenced by BKE_mesh_remap_calc_faces_from_mesh().
| #define POLY_CENTER_INIT 1 |
Definition at line 1012 of file mesh_remap.cc.
Referenced by mesh_island_to_astar_graph_edge_process().
| #define POLY_COMPLETE 2 |
Definition at line 1013 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 1011 of file mesh_remap.cc.
Referenced by mesh_island_to_astar_graph_edge_process().
| float BKE_mesh_remap_calc_difference_from_mesh | ( | const SpaceTransform * | space_transform, |
| const float(*) | vert_positions_dst[3], | ||
| int | numverts_dst, | ||
| const Mesh * | me_src ) |
Compute a value of the difference between both given meshes. The smaller the result, the better the match.
We return the inverse of the average of the inversed shortest distance from each dst vertex to src ones. In other words, beyond a certain (relatively small) distance, all differences have more or less the same weight in final result, which allows to reduce influence of a few high differences, in favor of a global good matching.
Definition at line 115 of file mesh_remap.cc.
References BLI_space_transform_apply(), copy_v3_v3(), FLT_MAX, i, BVHTreeNearest::index, mesh_remap_bvhtree_query_nearest(), printf, and result.
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 float(*) | vert_positions_dst[3], | ||
| const int | numverts_dst, | ||
| const blender::int2 * | edges_dst, | ||
| const int | numedges_dst, | ||
| const Mesh * | me_src, | ||
| Mesh * | me_dst, | ||
| MeshPairRemap * | r_map ) |
Definition at line 668 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, 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(), size(), blender::IndexRange::start(), Mesh::verts_num, and w().
Referenced by BKE_object_data_transfer_ex().
| 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 float(*) | vert_positions_dst[3], | ||
| const int | numverts_dst, | ||
| const int * | corner_verts_dst, | ||
| const blender::OffsetIndices< int > | faces_dst, | ||
| const Mesh * | me_src, | ||
| MeshPairRemap * | r_map ) |
Definition at line 2008 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, 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::IndexRange::start(), sub_v2_v2v2(), UNLIKELY, v2, and w().
Referenced by BKE_object_data_transfer_ex().
| 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 float(*) | vert_positions_dst[3], | ||
| const int | numverts_dst, | ||
| const int * | corner_verts_dst, | ||
| const int | numloops_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 1199 of file mesh_remap.cc.
References ASTAR_STEPS_MAX, 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(), CD_PROP_BOOL, 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, CustomData_get_layer_named(), blender::Span< T >::data(), dot(), dot_v3v3(), Mesh::edge_data, ELEM, blender::bke::mesh::face_center_calc(), IslandResult::factor, blender::bits::BitVector< InlineBufferCapacity, Allocator >::fill(), 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(), 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().
Referenced by BKE_object_data_transfer_ex().
| void BKE_mesh_remap_calc_verts_from_mesh | ( | const int | mode, |
| const SpaceTransform * | space_transform, | ||
| const float | max_dist, | ||
| const float | ray_radius, | ||
| const float(*) | vert_positions_dst[3], | ||
| const int | numverts_dst, | ||
| const Mesh * | me_src, | ||
| Mesh * | me_dst, | ||
| MeshPairRemap * | r_map ) |
Definition at line 448 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, 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, and Mesh::verts_num.
Referenced by BKE_object_data_transfer_ex().
| void BKE_mesh_remap_find_best_match_from_mesh | ( | const float(*) | vert_positions_dst[3], |
| int | numverts_dst, | ||
| const Mesh * | me_src, | ||
| SpaceTransform * | r_space_transform ) |
Set r_space_transform so that best bbox of dst matches best bbox of src.
Definition at line 244 of file mesh_remap.cc.
References BKE_mesh_remap_calc_difference_from_mesh(), BLI_space_transform_global_from_matrices(), copy_m4_m4(), blender::Span< T >::data(), FLT_MAX, mesh_calc_eigen_matrix(), mul_v3_fl(), and Mesh::verts_num.
Referenced by BKE_object_data_transfer_ex().
| void BKE_mesh_remap_free | ( | MeshPairRemap * | map | ) |
Definition at line 315 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 302 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 355 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().
|
static |
Definition at line 169 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(), cos, i, MEM_freeN(), MEM_malloc_arrayN(), mul_v3_fl(), ortho_basis_v3v3_v3(), sqrtf_signed(), unit_m3(), unit_m4(), and UNUSED_VARS_NDEBUG.
Referenced by BKE_mesh_remap_find_best_match_from_mesh().
|
static |
Definition at line 1075 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, 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 1015 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 45 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 74 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 1170 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 360 of file mesh_remap.cc.
References copy_v3_v3(), 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 326 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 39 of file mesh_remap.cc.