|
Blender V5.0
|
#include "BLI_math_base.h"#include "BLI_math_vector_types.hh"#include "BLI_task.hh"#include "BKE_attribute.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 * > uv_map_layers) |
| void | BKE_mesh_merge_customdata_for_apply_modifier (Mesh *mesh) |
| anonymous enum |
| Enumerator | |
|---|---|
| CMP_CLOSE | |
| CMP_EQUAL | |
| CMP_APART | |
Definition at line 20 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 100 of file mesh_merge_customdata.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::bke::Corner, blender::bke::AttributeIter::data_type, blender::bke::AttributeIter::domain, blender::bke::Float2, blender::bke::AttributeAccessor::foreach_attribute(), blender::Vector< T, InlineBufferCapacity, Allocator >::is_empty(), blender::bke::MutableAttributeAccessor::lookup_for_write_span(), blender::bke::AttributeIter::name, and blender::threading::parallel_for().
Referenced by blender::ed::object::convert_mesh_to_mesh(), and blender::ed::object::modifier_apply_exec_ex().
Definition at line 26 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 56 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(), i, blender::Vector< T, InlineBufferCapacity, Allocator >::is_empty(), blender::Vector< T, InlineBufferCapacity, Allocator >::reserve(), blender::Span< T >::size(), and blender::Vector< T, InlineBufferCapacity, Allocator >::size().