|
Blender V5.0
|
#include "BLI_math_matrix.h"#include "BLI_math_vector_types.hh"#include "BLI_offset_indices.hh"#include "BKE_mesh_mapping.hh"Go to the source code of this file.
Classes | |
| struct | MeshPairRemapItem |
| struct | MeshPairRemap |
Functions | |
| void | BKE_mesh_remap_init (MeshPairRemap *map, int items_num) |
| void | BKE_mesh_remap_free (MeshPairRemap *map) |
| void | BKE_mesh_remap_item_define_invalid (MeshPairRemap *map, int index) |
| float | BKE_mesh_remap_calc_difference_from_mesh (const SpaceTransform *space_transform, blender::Span< blender::float3 > vert_positions_dst, const Mesh *me_src) |
| void | BKE_mesh_remap_find_best_match_from_mesh (blender::Span< blender::float3 > vert_positions_dst, const Mesh *me_src, SpaceTransform *r_space_transform) |
| void | BKE_mesh_remap_calc_verts_from_mesh (int mode, const SpaceTransform *space_transform, float max_dist, float ray_radius, blender::Span< blender::float3 > vert_positions_dst, const Mesh *me_src, Mesh *me_dst, MeshPairRemap *r_map) |
| void | BKE_mesh_remap_calc_edges_from_mesh (int mode, const SpaceTransform *space_transform, float max_dist, float ray_radius, blender::Span< blender::float3 > vert_positions_dst, blender::Span< blender::int2 > edges_dst, const Mesh *me_src, Mesh *me_dst, MeshPairRemap *r_map) |
| void | BKE_mesh_remap_calc_loops_from_mesh (int mode, const SpaceTransform *space_transform, float max_dist, float ray_radius, const Mesh *mesh_dst, blender::Span< blender::float3 > vert_positions_dst, blender::Span< int > corner_verts_dst, const blender::OffsetIndices< int > faces_dst, const Mesh *me_src, MeshRemapIslandsCalc gen_islands_src, float islands_precision_src, MeshPairRemap *r_map) |
| void | BKE_mesh_remap_calc_faces_from_mesh (int mode, const SpaceTransform *space_transform, float max_dist, float ray_radius, const Mesh *mesh_dst, blender::Span< blender::float3 > vert_positions_dst, blender::Span< int > corner_verts, const blender::OffsetIndices< int > faces_dst, const Mesh *me_src, MeshPairRemap *r_map) |
| float BKE_mesh_remap_calc_difference_from_mesh | ( | const SpaceTransform * | space_transform, |
| blender::Span< blender::float3 > | vert_positions_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.
| void BKE_mesh_remap_calc_edges_from_mesh | ( | int | mode, |
| const SpaceTransform * | space_transform, | ||
| float | max_dist, | ||
| float | ray_radius, | ||
| blender::Span< blender::float3 > | vert_positions_dst, | ||
| blender::Span< blender::int2 > | edges_dst, | ||
| const Mesh * | me_src, | ||
| Mesh * | me_dst, | ||
| MeshPairRemap * | r_map ) |
Referenced by BKE_object_data_transfer_ex().
| void BKE_mesh_remap_calc_faces_from_mesh | ( | int | mode, |
| const SpaceTransform * | space_transform, | ||
| float | max_dist, | ||
| float | ray_radius, | ||
| const Mesh * | mesh_dst, | ||
| blender::Span< blender::float3 > | vert_positions_dst, | ||
| blender::Span< int > | corner_verts, | ||
| const blender::OffsetIndices< int > | faces_dst, | ||
| const Mesh * | me_src, | ||
| MeshPairRemap * | r_map ) |
Referenced by BKE_object_data_transfer_ex().
| void BKE_mesh_remap_calc_loops_from_mesh | ( | int | mode, |
| const SpaceTransform * | space_transform, | ||
| float | max_dist, | ||
| float | ray_radius, | ||
| const Mesh * | mesh_dst, | ||
| blender::Span< blender::float3 > | vert_positions_dst, | ||
| blender::Span< int > | corner_verts_dst, | ||
| const blender::OffsetIndices< int > | faces_dst, | ||
| const Mesh * | me_src, | ||
| MeshRemapIslandsCalc | gen_islands_src, | ||
| float | islands_precision_src, | ||
| MeshPairRemap * | r_map ) |
Referenced by BKE_object_data_transfer_ex().
| void BKE_mesh_remap_calc_verts_from_mesh | ( | int | mode, |
| const SpaceTransform * | space_transform, | ||
| float | max_dist, | ||
| float | ray_radius, | ||
| blender::Span< blender::float3 > | vert_positions_dst, | ||
| const Mesh * | me_src, | ||
| Mesh * | me_dst, | ||
| MeshPairRemap * | r_map ) |
Referenced by BKE_object_data_transfer_ex().
| void BKE_mesh_remap_find_best_match_from_mesh | ( | blender::Span< blender::float3 > | vert_positions_dst, |
| const Mesh * | me_src, | ||
| SpaceTransform * | r_space_transform ) |
Set r_space_transform so that best bbox of dst matches best bbox of src.
Referenced by BKE_object_data_transfer_ex().
| 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, |
| 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, |
| 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().