Blender
V3.3
|
#include "MEM_guardedalloc.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "BLI_math.h"
#include "BLI_task.hh"
#include "BLI_utildefines.h"
#include "BKE_customdata.h"
#include "BKE_mesh.h"
#include "BKE_mesh_mapping.h"
#include "BLI_memarena.h"
#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< MLoopUV * > mloopuv_layers) |
void | BKE_mesh_merge_customdata_for_apply_modifier (Mesh *me) |
anonymous enum |
Enumerator | |
---|---|
CMP_CLOSE | |
CMP_EQUAL | |
CMP_APART |
Definition at line 25 of file mesh_merge_customdata.cc.
Account for custom-data such as UV's becoming detached because of of imprecision in custom-data interpolation. Without running this operation subdivision surface can cause UV's to be disconnected, see: T81065.
Definition at line 104 of file mesh_merge_customdata.cc.
References Freestyle::a, blender::Vector< T, InlineBufferCapacity, Allocator >::append_unchecked(), blender::Vector< T, InlineBufferCapacity, Allocator >::as_span(), BKE_mesh_vert_loop_map_create(), CD_MLOOPUV, CustomData_get_layer_n(), CustomData_number_of_layers(), Mesh::ldata, Mesh::mloop, Mesh::mpoly, blender::threading::parallel_for(), blender::Vector< T, InlineBufferCapacity, Allocator >::reserve(), Mesh::totloop, Mesh::totpoly, and Mesh::totvert.
Referenced by modifier_apply_exec_ex(), and object_convert_exec().
Definition at line 31 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 60 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::Vector< T, InlineBufferCapacity, Allocator >::resize(), blender::Span< T >::size(), and blender::Vector< T, InlineBufferCapacity, Allocator >::size().