Blender V4.3
mesh_merge_customdata.cc File Reference
#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)
 

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
CMP_CLOSE 
CMP_EQUAL 
CMP_APART 

Definition at line 22 of file mesh_merge_customdata.cc.

Function Documentation

◆ BKE_mesh_merge_customdata_for_apply_modifier()

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().

◆ compare_v2_classify()

static int compare_v2_classify ( const float uv_a[2],
const float uv_b[2] )
static

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().

◆ merge_uvs_for_vertex()