Blender  V3.3
Classes
uvedit_unwrap_ops.c File Reference
#include <math.h>
#include <stdlib.h>
#include <string.h>
#include "MEM_guardedalloc.h"
#include "DNA_camera_types.h"
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_modifier_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "BLI_alloca.h"
#include "BLI_array.h"
#include "BLI_linklist.h"
#include "BLI_listbase.h"
#include "BLI_math.h"
#include "BLI_memarena.h"
#include "BLI_string.h"
#include "BLI_utildefines.h"
#include "BLI_uvproject.h"
#include "BLT_translation.h"
#include "BKE_cdderivedmesh.h"
#include "BKE_context.h"
#include "BKE_customdata.h"
#include "BKE_editmesh.h"
#include "BKE_image.h"
#include "BKE_layer.h"
#include "BKE_lib_id.h"
#include "BKE_main.h"
#include "BKE_material.h"
#include "BKE_mesh.h"
#include "BKE_report.h"
#include "BKE_scene.h"
#include "BKE_subsurf.h"
#include "DEG_depsgraph.h"
#include "GEO_uv_parametrizer.h"
#include "PIL_time.h"
#include "UI_interface.h"
#include "UI_view2d.h"
#include "ED_image.h"
#include "ED_mesh.h"
#include "ED_screen.h"
#include "ED_uvedit.h"
#include "ED_view3d.h"
#include "RNA_access.h"
#include "RNA_define.h"
#include "WM_api.h"
#include "WM_types.h"
#include "uvedit_intern.h"

Go to the source code of this file.

Classes

struct  UnwrapOptions
 
struct  UnwrapResultInfo
 
struct  MinStretch
 
struct  ThickFace
 

Functions

Utility Functions
static void modifier_unwrap_state (Object *obedit, const Scene *scene, bool *r_use_subsurf)
 
static bool ED_uvedit_ensure_uvs (Object *obedit)
 
UDIM Access
bool ED_uvedit_udim_params_from_image_space (const SpaceImage *sima, bool use_active, struct UVMapUDIM_Params *udim_params)
 
Average UV Islands Scale Operator
static int average_islands_scale_exec (bContext *C, wmOperator *op)
 
void UV_OT_average_islands_scale (wmOperatorType *ot)
 
UV Map Clip & Correct
static void uv_map_clip_correct_properties_ex (wmOperatorType *ot, bool clip_to_bounds)
 
static void uv_map_clip_correct_properties (wmOperatorType *ot)
 
static void uv_map_clip_correct_multi (Object **objects, uint objects_len, wmOperator *op, bool per_face_aspect)
 
static void uv_map_clip_correct (Object *ob, wmOperator *op)
 
Project UV From View Operator
static int uv_from_view_exec (bContext *C, wmOperator *op)
 
static int uv_from_view_invoke (bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
 
static bool uv_from_view_poll (bContext *C)
 
void UV_OT_project_from_view (wmOperatorType *ot)
 
Reset UV Operator
static int reset_exec (bContext *C, wmOperator *UNUSED(op))
 
void UV_OT_reset (wmOperatorType *ot)
 
Sphere UV Project Operator
static void uv_sphere_project (float target[2], const float source[3], const float center[3], const float rotmat[4][4])
 
static void uv_map_mirror (BMEditMesh *em, BMFace *efa)
 
static int sphere_project_exec (bContext *C, wmOperator *op)
 
void UV_OT_sphere_project (wmOperatorType *ot)
 
Cylinder UV Project Operator
static void uv_cylinder_project (float target[2], const float source[3], const float center[3], const float rotmat[4][4])
 
static int cylinder_project_exec (bContext *C, wmOperator *op)
 
void UV_OT_cylinder_project (wmOperatorType *ot)
 
Cube UV Project Operator
static void uvedit_unwrap_cube_project (BMesh *bm, float cube_size, bool use_select, const float center[3])
 
static int cube_project_exec (bContext *C, wmOperator *op)
 
void UV_OT_cube_project (wmOperatorType *ot)
 
Simple UVs for Texture Painting
void ED_uvedit_add_simple_uvs (Main *bmain, const Scene *scene, Object *ob)
 

UV Map Common Transforms

#define VIEW_ON_EQUATOR   0
 
#define VIEW_ON_POLES   1
 
#define ALIGN_TO_OBJECT   2
 
#define POLAR_ZX   0
 
#define POLAR_ZY   1
 
static void uv_map_transform_calc_bounds (BMEditMesh *em, float r_min[3], float r_max[3])
 
static void uv_map_transform_calc_center_median (BMEditMesh *em, float r_center[3])
 
static void uv_map_transform_center (const Scene *scene, View3D *v3d, Object *ob, BMEditMesh *em, float r_center[3], float r_bounds[2][3])
 
static void uv_map_rotation_matrix_ex (float result[4][4], RegionView3D *rv3d, Object *ob, float upangledeg, float sideangledeg, float radius, const float offset[4])
 
static void uv_map_rotation_matrix (float result[4][4], RegionView3D *rv3d, Object *ob, float upangledeg, float sideangledeg, float radius)
 
static void uv_map_transform (bContext *C, wmOperator *op, float rotmat[4][4])
 
static void uv_transform_properties (wmOperatorType *ot, int radius)
 
static void shrink_loop_uv_by_aspect_ratio (BMFace *efa, const int cd_loop_uv_offset, const float aspect_y)
 
static void correct_uv_aspect (Object *ob, BMEditMesh *em)
 
static void correct_uv_aspect_per_face (Object *ob, BMEditMesh *em)
 

Pack UV Islands Operator

enum  { PACK_UDIM_SRC_CLOSEST = 0 , PACK_UDIM_SRC_ACTIVE = 1 }
 
static void uvedit_pack_islands (const Scene *scene, Object *ob, BMesh *bm)
 
static void uvedit_pack_islands_multi (const Scene *scene, Object **objects, const uint objects_len, const UnwrapOptions *options, bool rotate, bool ignore_pinned)
 
static int pack_islands_exec (bContext *C, wmOperator *op)
 
void UV_OT_pack_islands (wmOperatorType *ot)
 

UV Unwrap Operator

enum  { UNWRAP_ERROR_NONUNIFORM = (1 << 0) , UNWRAP_ERROR_NEGATIVE = (1 << 1) }
 
static void uvedit_unwrap (const Scene *scene, Object *obedit, const UnwrapOptions *options, UnwrapResultInfo *result_info)
 
static void uvedit_unwrap_multi (const Scene *scene, Object **objects, const int objects_len, const UnwrapOptions *options, UnwrapResultInfo *result_info)
 
void ED_uvedit_live_unwrap (const Scene *scene, Object **objects, int objects_len)
 
static int unwrap_exec (bContext *C, wmOperator *op)
 
void UV_OT_unwrap (wmOperatorType *ot)
 

Parametrizer Conversion

typedef struct UnwrapOptions UnwrapOptions
 
typedef struct UnwrapResultInfo UnwrapResultInfo
 
static bool uvedit_have_selection (const Scene *scene, BMEditMesh *em, const UnwrapOptions *options)
 
static bool uvedit_have_selection_multi (const Scene *scene, Object **objects, const uint objects_len, const UnwrapOptions *options)
 
void ED_uvedit_get_aspect_from_material (Object *ob, const int material_index, float *r_aspx, float *r_aspy)
 
void ED_uvedit_get_aspect (Object *ob, float *r_aspx, float *r_aspy)
 
static bool uvedit_is_face_affected (const Scene *scene, BMFace *efa, const UnwrapOptions *options, const int cd_loop_uv_offset)
 
static void uvedit_prepare_pinned_indices (ParamHandle *handle, const Scene *scene, BMFace *efa, const UnwrapOptions *options, const int cd_loop_uv_offset)
 
static void construct_param_handle_face_add (ParamHandle *handle, const Scene *scene, BMFace *efa, ParamKey face_index, const UnwrapOptions *options, const int cd_loop_uv_offset)
 
static void construct_param_edge_set_seams (ParamHandle *handle, BMesh *bm, const UnwrapOptions *options)
 
static ParamHandleconstruct_param_handle (const Scene *scene, Object *ob, BMesh *bm, const UnwrapOptions *options, UnwrapResultInfo *result_info)
 
static ParamHandleconstruct_param_handle_multi (const Scene *scene, Object **objects, const uint objects_len, const UnwrapOptions *options)
 
static void texface_from_original_index (const Scene *scene, const int cd_loop_uv_offset, BMFace *efa, int index, float **r_uv, bool *r_pin, bool *r_select)
 
static ParamHandleconstruct_param_handle_subsurfed (const Scene *scene, Object *ob, BMEditMesh *em, const UnwrapOptions *options, UnwrapResultInfo *result_info)
 

Minimize Stretch Operator

typedef struct MinStretch MinStretch
 
static bool minimize_stretch_init (bContext *C, wmOperator *op)
 
static void minimize_stretch_iteration (bContext *C, wmOperator *op, bool interactive)
 
static void minimize_stretch_exit (bContext *C, wmOperator *op, bool cancel)
 
static int minimize_stretch_exec (bContext *C, wmOperator *op)
 
static int minimize_stretch_invoke (bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
 
static int minimize_stretch_modal (bContext *C, wmOperator *op, const wmEvent *event)
 
static void minimize_stretch_cancel (bContext *C, wmOperator *op)
 
void UV_OT_minimize_stretch (wmOperatorType *ot)
 

Smart UV Project Operator

typedef struct ThickFace ThickFace
 
static const float smart_uv_project_area_ignore = 1e-12f
 
static int smart_uv_project_thickface_area_cmp_fn (const void *tf_a_p, const void *tf_b_p)
 
static uint smart_uv_project_calculate_project_normals (const ThickFace *thick_faces, const uint thick_faces_len, BMesh *bm, const float project_angle_limit_half_cos, const float project_angle_limit_cos, const float area_weight, float(**r_project_normal_array)[3])
 
static int smart_project_exec (bContext *C, wmOperator *op)
 
void UV_OT_smart_project (wmOperatorType *ot)
 

Live UV Unwrap

struct {
   ParamHandle **   handles
 
   uint   len
 
   uint   len_alloc
 
g_live_unwrap = {NULL}
 
void ED_uvedit_live_unwrap_begin (Scene *scene, Object *obedit)
 
void ED_uvedit_live_unwrap_re_solve (void)
 
void ED_uvedit_live_unwrap_end (short cancel)
 

Macro Definition Documentation

◆ ALIGN_TO_OBJECT

#define ALIGN_TO_OBJECT   2

Definition at line 1352 of file uvedit_unwrap_ops.c.

◆ POLAR_ZX

#define POLAR_ZX   0

Definition at line 1354 of file uvedit_unwrap_ops.c.

◆ POLAR_ZY

#define POLAR_ZY   1

Definition at line 1355 of file uvedit_unwrap_ops.c.

◆ VIEW_ON_EQUATOR

#define VIEW_ON_EQUATOR   0

Definition at line 1350 of file uvedit_unwrap_ops.c.

◆ VIEW_ON_POLES

#define VIEW_ON_POLES   1

Definition at line 1351 of file uvedit_unwrap_ops.c.

Typedef Documentation

◆ MinStretch

typedef struct MinStretch MinStretch

◆ ThickFace

typedef struct ThickFace ThickFace

◆ UnwrapOptions

typedef struct UnwrapOptions UnwrapOptions

◆ UnwrapResultInfo

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
PACK_UDIM_SRC_CLOSEST 
PACK_UDIM_SRC_ACTIVE 

Definition at line 1098 of file uvedit_unwrap_ops.c.

◆ anonymous enum

anonymous enum
Enumerator
UNWRAP_ERROR_NONUNIFORM 
UNWRAP_ERROR_NEGATIVE 

Definition at line 1896 of file uvedit_unwrap_ops.c.

Function Documentation

◆ average_islands_scale_exec()

static int average_islands_scale_exec ( bContext C,
wmOperator op 
)
static

◆ construct_param_edge_set_seams()

static void construct_param_edge_set_seams ( ParamHandle handle,
BMesh bm,
const UnwrapOptions options 
)
static

◆ construct_param_handle()

static ParamHandle* construct_param_handle ( const Scene scene,
Object ob,
BMesh bm,
const UnwrapOptions options,
UnwrapResultInfo result_info 
)
static

◆ construct_param_handle_face_add()

static void construct_param_handle_face_add ( ParamHandle handle,
const Scene scene,
BMFace efa,
ParamKey  face_index,
const UnwrapOptions options,
const int  cd_loop_uv_offset 
)
static

◆ construct_param_handle_multi()

static ParamHandle* construct_param_handle_multi ( const Scene scene,
Object **  objects,
const uint  objects_len,
const UnwrapOptions options 
)
static

◆ construct_param_handle_subsurfed()

static ParamHandle* construct_param_handle_subsurfed ( const Scene scene,
Object ob,
BMEditMesh em,
const UnwrapOptions options,
UnwrapResultInfo result_info 
)
static

Unwrap handle initialization for subsurf aware-unwrapper. The many modifications required to make the original function(see above) work justified the existence of a new function.

Definition at line 577 of file uvedit_unwrap_ops.c.

References BKE_id_free(), BKE_mesh_from_bmesh_for_eval_nomain(), BLI_assert, BMEditMesh::bm, BM_EDGE, BM_edge_at_index(), BM_elem_flag_test, BM_ELEM_HIDDEN, BM_ELEM_SEAM, BM_ELEM_SELECT, BM_FACE, BM_face_at_index(), BM_mesh_elem_index_ensure(), BM_mesh_elem_table_ensure(), BM_VERT, CD_MLOOPUV, CD_ORIGINDEX, CDDM_from_mesh(), MVert::co, UnwrapResultInfo::count_failed, CustomData_get_offset(), Object::data, ED_uvedit_get_aspect(), faceMap, ListBase::first, GEO_uv_parametrizer_aspect_ratio(), GEO_uv_parametrizer_construct_begin(), GEO_uv_parametrizer_construct_end(), GEO_uv_parametrizer_edge_set_seam(), GEO_uv_parametrizer_face_add(), DerivedMesh::getEdgeArray, DerivedMesh::getEdgeDataArray, DerivedMesh::getLoopArray, DerivedMesh::getNumEdges, DerivedMesh::getNumPolys, DerivedMesh::getPolyArray, DerivedMesh::getPolyDataArray, DerivedMesh::getVertArray, DerivedMesh::getVertDataArray, BMesh::ldata, SubsurfModifierData::levels, MPoly::loopstart, MEM_freeN, MEM_mallocN, Object::modifiers, NULL, options, ORIGINDEX_NONE, DerivedMesh::release, scene, select(), SubsurfModifierData::subdivType, SUBSURF_IN_EDIT_MODE, subsurf_make_derived_from_derived(), texface_from_original_index(), Scene::toolsettings, MPoly::totloop, ToolSettings::uv_flag, UV_SYNC_SELECTION, v, and MLoop::v.

Referenced by ED_uvedit_live_unwrap_begin(), and uvedit_unwrap().

◆ correct_uv_aspect()

static void correct_uv_aspect ( Object ob,
BMEditMesh em 
)
static

◆ correct_uv_aspect_per_face()

static void correct_uv_aspect_per_face ( Object ob,
BMEditMesh em 
)
static

◆ cube_project_exec()

static int cube_project_exec ( bContext C,
wmOperator op 
)
static

◆ cylinder_project_exec()

static int cylinder_project_exec ( bContext C,
wmOperator op 
)
static

◆ ED_uvedit_add_simple_uvs()

void ED_uvedit_add_simple_uvs ( Main bmain,
const Scene scene,
Object ob 
)

◆ ED_uvedit_ensure_uvs()

static bool ED_uvedit_ensure_uvs ( Object obedit)
static

◆ ED_uvedit_get_aspect()

void ED_uvedit_get_aspect ( Object ob,
float r_aspx,
float r_aspy 
)

◆ ED_uvedit_get_aspect_from_material()

void ED_uvedit_get_aspect_from_material ( Object ob,
const int  material_index,
float r_aspx,
float r_aspy 
)

◆ ED_uvedit_live_unwrap()

void ED_uvedit_live_unwrap ( const Scene scene,
Object **  objects,
int  objects_len 
)

◆ ED_uvedit_live_unwrap_begin()

void ED_uvedit_live_unwrap_begin ( Scene scene,
Object obedit 
)

◆ ED_uvedit_live_unwrap_end()

void ED_uvedit_live_unwrap_end ( short  cancel)

◆ ED_uvedit_live_unwrap_re_solve()

void ED_uvedit_live_unwrap_re_solve ( void  )

◆ ED_uvedit_udim_params_from_image_space()

bool ED_uvedit_udim_params_from_image_space ( const SpaceImage sima,
bool  use_active,
struct UVMapUDIM_Params udim_params 
)

◆ minimize_stretch_cancel()

static void minimize_stretch_cancel ( bContext C,
wmOperator op 
)
static

Definition at line 1000 of file uvedit_unwrap_ops.c.

References C, and minimize_stretch_exit().

Referenced by UV_OT_minimize_stretch().

◆ minimize_stretch_exec()

static int minimize_stretch_exec ( bContext C,
wmOperator op 
)
static

◆ minimize_stretch_exit()

static void minimize_stretch_exit ( bContext C,
wmOperator op,
bool  cancel 
)
static

◆ minimize_stretch_init()

static bool minimize_stretch_init ( bContext C,
wmOperator op 
)
static

◆ minimize_stretch_invoke()

static int minimize_stretch_invoke ( bContext C,
wmOperator op,
const wmEvent UNUSEDevent 
)
static

◆ minimize_stretch_iteration()

static void minimize_stretch_iteration ( bContext C,
wmOperator op,
bool  interactive 
)
static

◆ minimize_stretch_modal()

static int minimize_stretch_modal ( bContext C,
wmOperator op,
const wmEvent event 
)
static

◆ modifier_unwrap_state()

static void modifier_unwrap_state ( Object obedit,
const Scene scene,
bool r_use_subsurf 
)
static

◆ pack_islands_exec()

static int pack_islands_exec ( bContext C,
wmOperator op 
)
static

◆ reset_exec()

static int reset_exec ( bContext C,
wmOperator UNUSEDop 
)
static

◆ shrink_loop_uv_by_aspect_ratio()

static void shrink_loop_uv_by_aspect_ratio ( BMFace efa,
const int  cd_loop_uv_offset,
const float  aspect_y 
)
static

◆ smart_project_exec()

static int smart_project_exec ( bContext C,
wmOperator op 
)
static

◆ smart_uv_project_calculate_project_normals()

static uint smart_uv_project_calculate_project_normals ( const ThickFace thick_faces,
const uint  thick_faces_len,
BMesh bm,
const float  project_angle_limit_half_cos,
const float  project_angle_limit_cos,
const float  area_weight,
float(**)  r_project_normal_array[3] 
)
static

◆ smart_uv_project_thickface_area_cmp_fn()

static int smart_uv_project_thickface_area_cmp_fn ( const void tf_a_p,
const void tf_b_p 
)
static

Definition at line 2111 of file uvedit_unwrap_ops.c.

References ThickFace::area, and smart_uv_project_area_ignore.

Referenced by smart_project_exec().

◆ sphere_project_exec()

static int sphere_project_exec ( bContext C,
wmOperator op 
)
static

◆ texface_from_original_index()

static void texface_from_original_index ( const Scene scene,
const int  cd_loop_uv_offset,
BMFace efa,
int  index,
float **  r_uv,
bool r_pin,
bool r_select 
)
static

◆ unwrap_exec()

static int unwrap_exec ( bContext C,
wmOperator op 
)
static

◆ uv_cylinder_project()

static void uv_cylinder_project ( float  target[2],
const float  source[3],
const float  center[3],
const float  rotmat[4][4] 
)
static

◆ uv_from_view_exec()

static int uv_from_view_exec ( bContext C,
wmOperator op 
)
static

◆ uv_from_view_invoke()

static int uv_from_view_invoke ( bContext C,
wmOperator op,
const wmEvent UNUSEDevent 
)
static

◆ uv_from_view_poll()

static bool uv_from_view_poll ( bContext C)
static

Definition at line 2620 of file uvedit_unwrap_ops.c.

References C, CTX_wm_region_view3d(), ED_operator_uvmap(), and NULL.

Referenced by UV_OT_project_from_view().

◆ uv_map_clip_correct()

static void uv_map_clip_correct ( Object ob,
wmOperator op 
)
static

◆ uv_map_clip_correct_multi()

static void uv_map_clip_correct_multi ( Object **  objects,
uint  objects_len,
wmOperator op,
bool  per_face_aspect 
)
static
Parameters
per_face_aspectCalculate the aspect ratio per-face, otherwise use a single aspect for all UV's based on the material of the active face. TODO: using per-face aspect may split UV islands so more advanced UV projection methods such as "Unwrap" & "Smart UV Projections" will need to handle aspect correction themselves. For now keep using a single aspect for all faces in this case.

Definition at line 1717 of file uvedit_unwrap_ops.c.

References BKE_editmesh_from_object(), BMEditMesh::bm, BM_ELEM_CD_GET_VOID_P, BM_elem_flag_test, BM_ELEM_SELECT, BM_FACES_OF_MESH, BM_ITER_ELEM, BM_ITER_MESH, BM_LOOPS_OF_FACE, CD_MLOOPUV, clamp_v2(), correct_uv_aspect(), correct_uv_aspect_per_face(), CustomData_get_offset(), INIT_MINMAX2, l, BMesh::ldata, max, min, minmax_v2v2_v2(), wmOperator::ptr, RNA_boolean_get(), RNA_struct_find_property(), and MLoopUV::uv.

Referenced by smart_project_exec(), uv_from_view_exec(), and uv_map_clip_correct().

◆ uv_map_clip_correct_properties()

static void uv_map_clip_correct_properties ( wmOperatorType ot)
static

◆ uv_map_clip_correct_properties_ex()

static void uv_map_clip_correct_properties_ex ( wmOperatorType ot,
bool  clip_to_bounds 
)
static

◆ uv_map_mirror()

static void uv_map_mirror ( BMEditMesh em,
BMFace efa 
)
static

◆ uv_map_rotation_matrix()

static void uv_map_rotation_matrix ( float  result[4][4],
RegionView3D rv3d,
Object ob,
float  upangledeg,
float  sideangledeg,
float  radius 
)
static

Definition at line 1496 of file uvedit_unwrap_ops.c.

References offset, result, and uv_map_rotation_matrix_ex().

Referenced by uv_map_transform().

◆ uv_map_rotation_matrix_ex()

static void uv_map_rotation_matrix_ex ( float  result[4][4],
RegionView3D rv3d,
Object ob,
float  upangledeg,
float  sideangledeg,
float  radius,
const float  offset[4] 
)
static

◆ uv_map_transform()

static void uv_map_transform ( bContext C,
wmOperator op,
float  rotmat[4][4] 
)
static

◆ uv_map_transform_calc_bounds()

static void uv_map_transform_calc_bounds ( BMEditMesh em,
float  r_min[3],
float  r_max[3] 
)
static

◆ uv_map_transform_calc_center_median()

static void uv_map_transform_calc_center_median ( BMEditMesh em,
float  r_center[3] 
)
static

◆ uv_map_transform_center()

static void uv_map_transform_center ( const Scene scene,
View3D v3d,
Object ob,
BMEditMesh em,
float  r_center[3],
float  r_bounds[2][3] 
)
static

◆ UV_OT_average_islands_scale()

void UV_OT_average_islands_scale ( wmOperatorType ot)

◆ UV_OT_cube_project()

void UV_OT_cube_project ( wmOperatorType ot)

◆ UV_OT_cylinder_project()

void UV_OT_cylinder_project ( wmOperatorType ot)

◆ UV_OT_minimize_stretch()

void UV_OT_minimize_stretch ( wmOperatorType ot)

◆ UV_OT_pack_islands()

void UV_OT_pack_islands ( wmOperatorType ot)

◆ UV_OT_project_from_view()

void UV_OT_project_from_view ( wmOperatorType ot)

◆ UV_OT_reset()

void UV_OT_reset ( wmOperatorType ot)

◆ UV_OT_smart_project()

void UV_OT_smart_project ( wmOperatorType ot)

◆ UV_OT_sphere_project()

void UV_OT_sphere_project ( wmOperatorType ot)

◆ UV_OT_unwrap()

void UV_OT_unwrap ( wmOperatorType ot)

◆ uv_sphere_project()

static void uv_sphere_project ( float  target[2],
const float  source[3],
const float  center[3],
const float  rotmat[4][4] 
)
static

◆ uv_transform_properties()

static void uv_transform_properties ( wmOperatorType ot,
int  radius 
)
static

◆ uvedit_have_selection()

static bool uvedit_have_selection ( const Scene scene,
BMEditMesh em,
const UnwrapOptions options 
)
static

◆ uvedit_have_selection_multi()

static bool uvedit_have_selection_multi ( const Scene scene,
Object **  objects,
const uint  objects_len,
const UnwrapOptions options 
)
static

◆ uvedit_is_face_affected()

static bool uvedit_is_face_affected ( const Scene scene,
BMFace efa,
const UnwrapOptions options,
const int  cd_loop_uv_offset 
)
static

◆ uvedit_pack_islands()

static void uvedit_pack_islands ( const Scene scene,
Object ob,
BMesh bm 
)
static

◆ uvedit_pack_islands_multi()

static void uvedit_pack_islands_multi ( const Scene scene,
Object **  objects,
const uint  objects_len,
const UnwrapOptions options,
bool  rotate,
bool  ignore_pinned 
)
static

◆ uvedit_prepare_pinned_indices()

static void uvedit_prepare_pinned_indices ( ParamHandle handle,
const Scene scene,
BMFace efa,
const UnwrapOptions options,
const int  cd_loop_uv_offset 
)
static

◆ uvedit_unwrap()

static void uvedit_unwrap ( const Scene scene,
Object obedit,
const UnwrapOptions options,
UnwrapResultInfo result_info 
)
static

◆ uvedit_unwrap_cube_project()

static void uvedit_unwrap_cube_project ( BMesh bm,
float  cube_size,
bool  use_select,
const float  center[3] 
)
static

◆ uvedit_unwrap_multi()

static void uvedit_unwrap_multi ( const Scene scene,
Object **  objects,
const int  objects_len,
const UnwrapOptions options,
UnwrapResultInfo result_info 
)
static

Variable Documentation

◆ 

struct { ... } g_live_unwrap

◆ handles

ParamHandle** handles

◆ len

uint len

Definition at line 1268 of file uvedit_unwrap_ops.c.

◆ len_alloc

uint len_alloc

◆ smart_uv_project_area_ignore

const float smart_uv_project_area_ignore = 1e-12f
static