Blender  V3.3
Classes | Namespaces | Macros
mesh_merge_by_distance.cc File Reference
#include "BLI_array.hh"
#include "BLI_index_mask.hh"
#include "BLI_kdtree.h"
#include "BLI_math_vector.h"
#include "BLI_math_vector.hh"
#include "BLI_vector.hh"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "BKE_customdata.h"
#include "BKE_mesh.h"
#include "GEO_mesh_merge_by_distance.hh"

Go to the source code of this file.

Classes

struct  blender::geometry::WeldGroup
 
struct  blender::geometry::WeldGroupEdge
 
struct  blender::geometry::WeldVert
 
struct  blender::geometry::WeldEdge
 
struct  blender::geometry::WeldLoop
 
struct  blender::geometry::WeldPoly
 
struct  blender::geometry::WeldMesh
 
struct  blender::geometry::WeldLoopOfPolyIter
 
struct  blender::geometry::WeldVertexCluster
 

Namespaces

 blender
 
 blender::geometry
 

Macros

#define OUT_OF_CONTEXT   (int)(-1)
 
#define ELEM_COLLAPSED   (int)(-2)
 
#define ELEM_MERGED   (int)(-2)
 

Functions

Vert API
static Vector< WeldVert > blender::geometry::weld_vert_ctx_alloc_and_setup (Span< int > vert_dest_map, const int vert_kill_len)
 
static void blender::geometry::weld_vert_groups_setup (Span< WeldVert > wvert, Span< int > vert_dest_map, MutableSpan< int > r_vert_groups_map, Array< int > &r_vert_groups_buffer, Array< WeldGroup > &r_vert_groups)
 
Edge API
static Vector< WeldEdge > blender::geometry::weld_edge_ctx_alloc (Span< MEdge > medge, Span< int > vert_dest_map, MutableSpan< int > r_edge_dest_map, MutableSpan< int > r_edge_ctx_map)
 
static void blender::geometry::weld_edge_ctx_setup (MutableSpan< WeldGroup > r_vlinks, MutableSpan< int > r_edge_dest_map, MutableSpan< WeldEdge > r_wedge, int *r_edge_kiil_len)
 
static void blender::geometry::weld_edge_groups_setup (const int medge_len, const int edge_kill_len, MutableSpan< WeldEdge > wedge, Span< int > wedge_map, MutableSpan< int > r_edge_groups_map, Array< int > &r_edge_groups_buffer, Array< WeldGroupEdge > &r_edge_groups)
 
Poly and Loop API
static bool blender::geometry::weld_iter_loop_of_poly_begin (WeldLoopOfPolyIter &iter, const WeldPoly &wp, Span< WeldLoop > wloop, Span< MLoop > mloop, Span< int > loop_map, int *group_buffer)
 
static bool blender::geometry::weld_iter_loop_of_poly_next (WeldLoopOfPolyIter &iter)
 
static void blender::geometry::weld_poly_loop_ctx_alloc (Span< MPoly > mpoly, Span< MLoop > mloop, Span< int > vert_dest_map, Span< int > edge_dest_map, WeldMesh *r_weld_mesh)
 
static void blender::geometry::weld_poly_split_recursive (Span< int > vert_dest_map, int ctx_verts_len, WeldPoly *r_wp, WeldMesh *r_weld_mesh, int *r_poly_kill, int *r_loop_kill)
 
static void blender::geometry::weld_poly_loop_ctx_setup (Span< MLoop > mloop, const int mvert_len, Span< int > vert_dest_map, const int remain_edge_ctx_len, MutableSpan< WeldGroup > r_vlinks, WeldMesh *r_weld_mesh)
 
Mesh API
static void blender::geometry::weld_mesh_context_create (const Mesh &mesh, MutableSpan< int > vert_dest_map, const int vert_kill_len, WeldMesh *r_weld_mesh)
 
CustomData
static void blender::geometry::customdata_weld (const CustomData *source, CustomData *dest, const int *src_indices, int count, int dest_index)
 
Mesh Vertex Merging
static Meshblender::geometry::create_merged_mesh (const Mesh &mesh, MutableSpan< int > vert_dest_map, const int removed_vertex_count)
 
Merge Map Creation
std::optional< Mesh * > blender::geometry::mesh_merge_by_distance_all (const Mesh &mesh, IndexMask selection, float merge_distance)
 
std::optional< Mesh * > blender::geometry::mesh_merge_by_distance_connected (const Mesh &mesh, Span< bool > selection, float merge_distance, bool only_loose_edges)
 

Macro Definition Documentation

◆ ELEM_COLLAPSED

#define ELEM_COLLAPSED   (int)(-2)

Definition at line 26 of file mesh_merge_by_distance.cc.

◆ ELEM_MERGED

#define ELEM_MERGED   (int)(-2)

Definition at line 28 of file mesh_merge_by_distance.cc.

◆ OUT_OF_CONTEXT

#define OUT_OF_CONTEXT   (int)(-1)

Definition at line 24 of file mesh_merge_by_distance.cc.