Blender V4.3
uvedit_clipboard.cc File Reference
#include "BKE_context.hh"
#include "BKE_customdata.hh"
#include "BKE_editmesh.hh"
#include "BKE_layer.hh"
#include "BKE_mesh_mapping.hh"
#include "BKE_report.hh"
#include "DEG_depsgraph.hh"
#include "ED_mesh.hh"
#include "ED_screen.hh"
#include "WM_api.hh"
#include "uvedit_clipboard_graph_iso.hh"
#include "uvedit_intern.hh"

Go to the source code of this file.

Classes

class  UV_ClipboardBuffer
 

Functions

void UV_clipboard_free ()
 
static int iso_index_for_loop (const BMLoop *loop, UvElementMap *element_map, const int island_index)
 
static void add_iso_edge (GraphISO *graph, BMLoop *loop_v, BMLoop *loop_w, UvElementMap *element_map, int island_index)
 
static GraphISObuild_iso_graph (UvElementMap *element_map, const int island_index, int)
 
static bool find_isomorphism (UvElementMap *dest, const int dest_island_index, GraphISO *graph_source, const int cd_loop_uv_offset, blender::Vector< int > &r_label, bool *r_search_abandoned)
 
static int uv_copy_exec (bContext *C, wmOperator *)
 
static int uv_paste_exec (bContext *C, wmOperator *op)
 
void UV_OT_copy (wmOperatorType *ot)
 
void UV_OT_paste (wmOperatorType *ot)
 

Variables

static UV_ClipboardBufferuv_clipboard = nullptr
 

Detailed Description

Attempt to find a graph isomorphism between the topology of two different UV islands.

Note
On terminology, for the purposes of this file:
  • An iso_graph is a "Graph" in Graph Theory.
    • An iso_graph has an unordered set of iso_verts.
    • An iso_graph has an unordered set of iso_edges.
  • An iso_vert is a "Vertex" in Graph Theory
    • Each iso_vert has a label.
  • An iso_edge is an "Edge" in Graph Theory
    • Each iso_edge connects two iso_verts.
    • An iso_edge is undirected.

Definition in file uvedit_clipboard.cc.

Function Documentation

◆ add_iso_edge()

static void add_iso_edge ( GraphISO * graph,
BMLoop * loop_v,
BMLoop * loop_w,
UvElementMap * element_map,
int island_index )
static

Definition at line 101 of file uvedit_clipboard.cc.

References BLI_assert, BMLoop::f, and iso_index_for_loop().

Referenced by build_iso_graph().

◆ build_iso_graph()

◆ find_isomorphism()

static bool find_isomorphism ( UvElementMap * dest,
const int dest_island_index,
GraphISO * graph_source,
const int cd_loop_uv_offset,
blender::Vector< int > & r_label,
bool * r_search_abandoned )
static

◆ iso_index_for_loop()

static int iso_index_for_loop ( const BMLoop * loop,
UvElementMap * element_map,
const int island_index )
static

◆ UV_clipboard_free()

void UV_clipboard_free ( )

Definition at line 398 of file uvedit_clipboard.cc.

References uv_clipboard.

Referenced by uv_copy_exec(), and WM_exit_ex().

◆ uv_copy_exec()

◆ UV_OT_copy()

◆ UV_OT_paste()

◆ uv_paste_exec()

Variable Documentation

◆ uv_clipboard

UV_ClipboardBuffer* uv_clipboard = nullptr
static