|
Blender V4.3
|
#include "MEM_guardedalloc.h"#include "BLI_math_vector_types.hh"#include "BLI_task.hh"#include "BLI_utildefines.h"#include "BKE_customdata.hh"#include "BKE_mesh.hh"#include "BLI_strict_flags.h"Go to the source code of this file.
Enumerations | |
| enum | { CMP_CLOSE = 0 , CMP_EQUAL = 1 , CMP_APART = 2 } |
Functions | |
| static int | compare_v2_classify (const float uv_a[2], const float uv_b[2]) |
| static void | merge_uvs_for_vertex (const Span< int > loops_for_vert, Span< float2 * > mloopuv_layers) |
| void | BKE_mesh_merge_customdata_for_apply_modifier (Mesh *mesh) |
| anonymous enum |
| Enumerator | |
|---|---|
| CMP_CLOSE | |
| CMP_EQUAL | |
| CMP_APART | |
Definition at line 22 of file mesh_merge_customdata.cc.
| void BKE_mesh_merge_customdata_for_apply_modifier | ( | Mesh * | mesh | ) |
Account for custom-data such as UVs becoming detached because of imprecision in custom-data interpolation. Without running this operation subdivision surface can cause UVs to be disconnected, see: #81065.
Definition at line 102 of file mesh_merge_customdata.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append_unchecked(), blender::Vector< T, InlineBufferCapacity, Allocator >::as_span(), CD_PROP_FLOAT2, CustomData_get_layer_n_for_write(), CustomData_number_of_layers(), blender::threading::parallel_for(), and blender::Vector< T, InlineBufferCapacity, Allocator >::reserve().
Referenced by blender::ed::object::modifier_apply_exec_ex(), and blender::ed::object::object_convert_exec().
Definition at line 28 of file mesh_merge_customdata.cc.
References CMP_APART, CMP_CLOSE, CMP_EQUAL, and compare_ff_relative().
Referenced by merge_uvs_for_vertex().
|
static |
Definition at line 58 of file mesh_merge_customdata.cc.
References ATTR_FALLTHROUGH, BLI_assert, BLI_assert_unreachable, blender::Vector< T, InlineBufferCapacity, Allocator >::clear(), CMP_APART, CMP_CLOSE, CMP_EQUAL, compare_v2_classify(), blender::Vector< T, InlineBufferCapacity, Allocator >::extend_unchecked(), blender::Vector< T, InlineBufferCapacity, Allocator >::is_empty(), blender::Vector< T, InlineBufferCapacity, Allocator >::reserve(), blender::Span< T >::size(), and blender::Vector< T, InlineBufferCapacity, Allocator >::size().