|
Blender V4.3
|
#include <climits>#include "CLG_log.h"#include "MEM_guardedalloc.h"#include "BLI_array.hh"#include "BLI_astar.h"#include "BLI_bit_vector.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 "BKE_bvhutils.hh"#include "BKE_customdata.hh"#include "BKE_mesh.hh"#include "BKE_mesh_mapping.hh"#include "BKE_mesh_remap.hh"#include "BKE_mesh_runtime.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 (BVHTreeFromMesh *treedata, BVHTreeNearest *nearest, const float co[3], const float max_dist_sq, float *r_hit_dist) |
| static bool | mesh_remap_bvhtree_query_raycast (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 1208 of file mesh_remap.cc.
Referenced by BKE_mesh_remap_calc_loops_from_mesh().
| #define MREMAP_DEFAULT_BUFSIZE 32 |
Definition at line 447 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 440 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 438 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 444 of file mesh_remap.cc.
Referenced by BKE_mesh_remap_calc_faces_from_mesh().
| #define MREMAP_RAYCAST_TRI_SAMPLES_MIN 4 |
Definition at line 443 of file mesh_remap.cc.
Referenced by BKE_mesh_remap_calc_faces_from_mesh().
| #define POLY_CENTER_INIT 1 |
Definition at line 1022 of file mesh_remap.cc.
Referenced by mesh_island_to_astar_graph_edge_process().
| #define POLY_COMPLETE 2 |
Definition at line 1023 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 1021 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 BKE_bvhtree_from_mesh_get(), BLI_space_transform_apply(), BVHTREE_FROM_VERTS, copy_v3_v3(), float, FLT_MAX, 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 673 of file mesh_remap.cc.
References BKE_bvhtree_from_mesh_get(), BKE_mesh_remap_init(), BKE_mesh_remap_item_define_invalid(), BLI_assert, BLI_space_transform_apply(), BLI_space_transform_apply_normal(), BVHTREE_FROM_CORNER_TRIS, BVHTREE_FROM_EDGES, BVHTREE_FROM_VERTS, 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, free_bvhtree_from_mesh(), BVHTreeRayHit::index, int, 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_mallocN, 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 2033 of file mesh_remap.cc.
References area_poly_v2(), area_tri_v2(), axis_dominant_v3_to_m3(), BKE_bvhtree_from_mesh_get(), 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(), BVHTREE_FROM_CORNER_TRIS, CLAMP, CLOG_WARN, copy_v3_v3(), copy_vn_fl(), blender::bke::mesh::face_center_calc(), Mesh::faces_num, float, FLT_MAX, free_bvhtree_from_mesh(), BVHTreeRayHit::index, blender::offset_indices::OffsetIndices< T >::index_range(), INIT_MINMAX2, int, invert_m3_m3(), MeshPairRemap::items, LOG, max_ff(), max_ii(), MEM_freeN(), MEM_mallocN, 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::offset_indices::OffsetIndices< T >::size(), 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 1210 of file mesh_remap.cc.
References ASTAR_STEPS_MAX, BKE_bvhtree_from_mesh_get(), 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(), BVHTREE_FROM_CORNER_TRIS, bvhtree_from_mesh_corner_tris_ex(), bvhtree_from_mesh_verts_ex(), BVHTREE_FROM_VERTS, CD_PROP_BOOL, closest_on_tri_to_point_v3(), 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(), float, FLT_MAX, free_bvhtree_from_mesh(), IslandResult::hit_dist, IslandResult::hit_point, BVHTreeRayHit::index, blender::offset_indices::OffsetIndices< T >::index_range(), blender::Span< T >::index_range(), IslandResult::index_src, MeshElemMap::indices, MeshIslandStore::innercut_type, int, MeshIslandStore::island_type, MeshIslandStore::islands, MeshIslandStore::islands_num, MeshIslandStore::item_type, MeshIslandStore::items_to_islands, len_squared_v3v3(), max_ii(), MEM_callocN, MEM_freeN(), MEM_mallocN, 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, 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 449 of file mesh_remap.cc.
References BKE_bvhtree_from_mesh_get(), BKE_mesh_remap_init(), BKE_mesh_remap_item_define_invalid(), BLI_assert, BLI_space_transform_apply(), BLI_space_transform_apply_normal(), BVHTREE_FROM_CORNER_TRIS, BVHTREE_FROM_EDGES, BVHTREE_FROM_VERTS, CLAMP, CLOG_WARN, BVHTreeRayHit::co, copy_v3_v3(), ELEM, float, FLT_MAX, free_bvhtree_from_mesh(), BVHTreeRayHit::index, MeshPairRemap::items, len_squared_v3v3(), line_point_factor_v3(), LOG, MEM_freeN(), MEM_mallocN, 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 245 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(), float, 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 316 of file mesh_remap.cc.
References BLI_memarena_free().
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 303 of file mesh_remap.cc.
References BKE_mesh_remap_free(), BLI_memarena_alloc(), BLI_memarena_new(), and BLI_MEMARENA_STD_BUFSIZE.
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 356 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 170 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(), float, MEM_freeN(), MEM_mallocN, 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 1085 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, float, MeshElemMap::indices, int, BLI_AStarGraph::mem, MEM_callocN, 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 1025 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(), len_v3v3(), POINTER_FROM_INT, POLY_CENTER_INIT, POLY_COMPLETE, POLY_UNSET, blender::offset_indices::GroupedSpan< T >::size(), size(), blender::Span< T >::slice(), and UNLIKELY.
Referenced by mesh_island_to_astar_graph().
|
static |
Definition at line 45 of file mesh_remap.cc.
References BLI_bvhtree_find_nearest(), len_squared_v3v3(), BVHTreeFromMesh::nearest_callback, sqrtf, and 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(), BVHTreeFromMesh::raycast_callback, and 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 1181 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 361 of file mesh_remap.cc.
References copy_v3_v3(), float, FLT_MAX, int, interp_weights_poly_v3(), len_squared_v3v3(), and MEM_reallocN.
Referenced by BKE_mesh_remap_calc_loops_from_mesh(), and BKE_mesh_remap_calc_verts_from_mesh().
|
static |
Definition at line 327 of file mesh_remap.cc.
References BLI_memarena_alloc(), MeshPairRemapItem::indices_src, MeshPairRemapItem::island, 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.
Referenced by BKE_mesh_remap_calc_edges_from_mesh(), BKE_mesh_remap_calc_faces_from_mesh(), and BKE_mesh_remap_calc_verts_from_mesh().