Blender
V3.3
|
#include "DNA_mesh_types.h"
#include "DNA_meshdata_types.h"
#include "MEM_guardedalloc.h"
#include "BLI_alloca.h"
#include "BLI_bitmap.h"
#include "BLI_linklist_stack.h"
#include "BLI_math.h"
#include "BLI_memarena.h"
#include "BKE_context.h"
#include "BKE_crazyspace.h"
#include "BKE_editmesh.h"
#include "BKE_mesh.h"
#include "BKE_modifier.h"
#include "BKE_scene.h"
#include "ED_mesh.h"
#include "DEG_depsgraph_query.h"
#include "transform.h"
#include "transform_orientations.h"
#include "transform_snap.h"
#include "transform_convert.h"
Go to the source code of this file.
Classes | |
struct | TransCustomData_PartialUpdate |
struct | PartialTypeState |
struct | TransCustomDataMesh |
struct | TransCustomDataMergeGroup |
struct | TransCustomDataLayer |
Variables | |
TransConvertTypeInfo | TransConvertType_Mesh |
Container TransCustomData Creation | |
#define | PARTIAL_TYPE_MAX 2 |
enum | ePartialType { PARTIAL_NONE = -1 , PARTIAL_TYPE_GROUP = 0 , PARTIAL_TYPE_ALL = 1 } |
static void | tc_mesh_customdata_free_fn (struct TransInfo *t, struct TransDataContainer *tc, struct TransCustomData *custom_data) |
static void | tc_mesh_customdatacorrect_free (struct TransCustomDataLayer *tcld) |
static struct TransCustomDataMesh * | tc_mesh_customdata_ensure (TransDataContainer *tc) |
static void | tc_mesh_customdata_free (struct TransCustomDataMesh *tcmd) |
static void | tc_mesh_customdata_free_fn (struct TransInfo *UNUSED(t), struct TransDataContainer *UNUSED(tc), struct TransCustomData *custom_data) |
TransDataMirror Creation | |
#define | TRANSFORM_MAXDIST_MIRROR 0.00002f |
static bool | is_in_quadrant_v3 (const float co[3], const int quadrant[3], const float epsilon) |
void | transform_convert_mesh_mirrordata_calc (struct BMEditMesh *em, const bool use_select, const bool use_topology, const bool mirror_axis[3], struct TransMirrorData *r_mirror_data) |
void | transform_convert_mesh_mirrordata_free (struct TransMirrorData *mirror_data) |
#define FACE_SUBSTITUTE_INDEX INT_MIN |
Definition at line 173 of file transform_convert_mesh.c.
#define PARTIAL_TYPE_MAX 2 |
Definition at line 78 of file transform_convert_mesh.c.
#define TRANSFORM_MAXDIST_MIRROR 0.00002f |
Definition at line 1148 of file transform_convert_mesh.c.
#define USE_FACE_SUBSTITUTE |
Definition at line 171 of file transform_convert_mesh.c.
enum ePartialType |
Definition at line 61 of file transform_convert_mesh.c.
|
static |
Definition at line 913 of file transform_convert_mesh.c.
References BLI_assert, BM_elem_flag_test, BM_ELEM_HIDDEN, BM_elem_index_get, BM_ELEM_SELECT, BMVert::co, geodesic_distance_propagate_across_triangle(), i1, len_v3(), mul_m3_v3(), mul_v3_m3v3(), NULL, sub_v3_v3v3(), v1, and v2.
Referenced by transform_convert_mesh_connectivity_distance().
Definition at line 969 of file transform_convert_mesh.c.
References BM_elem_flag_test, BM_ELEM_HIDDEN, BM_FACES_OF_EDGE, BM_ITER_ELEM, and NULL.
Referenced by transform_convert_mesh_connectivity_distance().
Quick check if we can transform.
Definition at line 1457 of file transform_convert_mesh.c.
References Freestyle::a, BKE_editmesh_from_object(), BLI_assert, BMEditMesh::bm, bm, BM_elem_flag_test, BM_ELEM_HIDDEN, BM_ELEM_SELECT, BM_ELEM_TAG, BM_ITER_MESH, BM_ITER_MESH_INDEX, BM_vert_at_index(), BM_VERTS_OF_MESH, BMVert::co, copy_m3_m4(), copy_v3_v3(), TransMeshDataCrazySpace::defmats, TransData::dist, Mesh::editflag, ELEM, fabsf, MirrorDataVert::flag, FOREACH_TRANS_DATA_CONTAINER, MirrorDataVert::index, TransIslandData::island_vert_map, TransDataMirror::loc_src, ME_EDIT_MIRROR_TOPO, MEM_callocN, MEM_freeN, MEM_mallocN, TransMirrorData::mirror_elem_len, NULL, PSEUDOINVERSE_EPSILON, pseudoinverse_m3_m3(), TransMeshDataCrazySpace::quats, SCE_SELECT_VERTEX, SCE_SNAP_ROTATE, BMEditMesh::selectmode, t, T_PROP_CONNECTED, T_PROP_EDIT, T_PROP_EDIT_ALL, tc_mesh_transdata_center_copy(), TD_MIRROR_EDGE_X, TD_MIRROR_EDGE_Y, TD_MIRROR_EDGE_Z, TD_NOTCONNECTED, TD_SELECTED, TFM_SHRINKFATTEN, TFM_TRANSLATION, BMesh::totvert, BMesh::totvertsel, transform_convert_mesh_connectivity_distance(), transform_convert_mesh_crazyspace_detect(), transform_convert_mesh_crazyspace_free(), transform_convert_mesh_crazyspace_transdata_set(), transform_convert_mesh_islanddata_free(), transform_convert_mesh_islands_calc(), transform_convert_mesh_mirrordata_calc(), transform_convert_mesh_mirrordata_free(), TRANSFORM_MAXDIST_MIRROR, usingSnappingNormal(), V3D_AROUND_LOCAL_ORIGINS, TransMirrorData::vert_map, and VertsToTransData().
|
static |
Definition at line 1150 of file transform_convert_mesh.c.
References blender::robust_pred::epsilon.
Referenced by transform_convert_mesh_mirrordata_calc().
Definition at line 2032 of file transform_convert_mesh.c.
References applySnappingIndividual(), DEG_id_tag_update(), FOREACH_TRANS_DATA_CONTAINER, ID_RECALC_GEOMETRY, t, T_NO_MIRROR, tc_mesh_customdatacorrect_apply(), tc_mesh_customdatacorrect_restore(), tc_mesh_partial_types_calc(), tc_mesh_partial_update(), tc_mesh_transdata_mirror_apply(), TRANS_CANCEL, and transform_convert_clip_mirror_modifier_apply().
Definition at line 2071 of file transform_convert_mesh.c.
References BKE_editmesh_from_object(), BMEditMesh::bm, bm, BM_elem_flag_enable, BM_ELEM_SELECT, BM_ELEM_TAG, BM_mesh_elem_hflag_disable_all(), BM_VERT, ED_mesh_mirror_spatial_table_end(), EDBM_automerge(), EDBM_automerge_and_split(), EDBM_selectmode_flush_ex(), ELEM, FOREACH_TRANS_DATA_CONTAINER, SCE_SELECT_EDGE, SCE_SELECT_FACE, BMEditMesh::selectmode, t, T_AUTOMERGE, T_AUTOSPLIT, tc_mesh_customdatacorrect_apply(), TFM_EDGE_SLIDE, TFM_VERT_SLIDE, BMesh::totfacesel, and TRANS_CANCEL.
|
static |
Definition at line 95 of file transform_convert_mesh.c.
References BLI_assert, TransDataContainer::custom, TransCustomData::data, PartialTypeState::for_looptri, PartialTypeState::for_normals, TransCustomData::free_cb, MEM_callocN, NULL, PARTIAL_NONE, TransCustomDataMesh::partial_update_state_prev, tc_mesh_customdata_free_fn(), and TransCustomDataContainer::type.
Referenced by tc_mesh_customdatacorrect_create(), tc_mesh_partial_ensure(), and tc_mesh_partial_update().
|
static |
Definition at line 110 of file transform_convert_mesh.c.
References ARRAY_SIZE, BM_mesh_partial_destroy(), TransCustomData_PartialUpdate::cache, TransCustomDataMesh::cd_layer_correct, MEM_freeN, NULL, TransCustomDataMesh::partial_update, and tc_mesh_customdatacorrect_free().
Referenced by tc_mesh_customdata_free_fn().
|
static |
Referenced by tc_mesh_customdata_ensure().
|
static |
Definition at line 125 of file transform_convert_mesh.c.
References TransCustomData::data, NULL, and tc_mesh_customdata_free().
|
static |
Definition at line 641 of file transform_convert_mesh.c.
References TransCustomDataMesh::cd_layer_correct, TransDataContainer::custom, TransCustomData::data, TransDataContainer::data, TransCustomDataLayer::data, TransDataContainer::data_len, TransDataContainer::data_mirror, TransDataContainer::data_mirror_len, TransCustomDataLayer::merge_group, NULL, tc_mesh_customdatacorrect_apply_vert(), TransCustomDataContainer::type, and TransCustomDataLayer::use_merge_group.
Referenced by recalcData_mesh(), and special_aftertrans_update__mesh().
|
static |
Definition at line 500 of file transform_convert_mesh.c.
References BLI_array_alloca, BLI_ghash_lookup(), bm, TransCustomDataLayer::bm, BM_elem_index_get, BM_face_calc_center_median(), BM_face_interp_multires_ex(), BM_ITER_ELEM_INDEX, BM_iter_init(), BM_loop_interp_from_face(), BM_LOOPS_OF_VERT, BM_vert_loop_groups_data_layer_merge(), BM_vert_loop_groups_data_layer_merge_weights(), TransCustomDataMergeGroup::cd_loop_groups, TransCustomDataLayer::cd_loop_mdisp_offset, BMVert::co, BMIter::count, TransCustomDataLayer::customdatalayer_map, TransCustomDataLayer::customdatalayer_map_len, dist_signed_squared_to_corner_v3v3v3(), eps, BMLoop::f, FACE_SUBSTITUTE_INDEX, float(), CCL_NAMESPACE_BEGIN::isfinite(), l, len_squared_v3v3(), TransCustomDataLayer::merge_group, BMLoop::next, BMVert::no, NULL, TransCustomDataLayer::origfaces, BMLoop::prev, project_plane_normalized_v3_v3v3(), tc_mesh_customdatacorrect_face_substitute_get(), tc_mesh_vert_orig_co_get(), UNLIKELY, UNPACK3, TransCustomDataLayer::use_merge_group, BMLoop::v, and v.
Referenced by tc_mesh_customdatacorrect_apply().
|
static |
Definition at line 402 of file transform_convert_mesh.c.
References BLI_assert, TransCustomDataMesh::cd_layer_correct, NULL, tc_mesh_customdata_ensure(), tc_mesh_customdatacorrect_create_impl(), and TransCustomDataLayer::use_merge_group.
Referenced by transform_convert_mesh_customdatacorrect_init().
|
static |
Definition at line 353 of file transform_convert_mesh.c.
References TransCustomDataLayer::arena, BKE_editmesh_from_object(), BLI_memarena_new(), BLI_MEMARENA_STD_BUFSIZE, BMEditMesh::bm, bm, TransCustomDataLayer::bm, TransCustomDataLayer::cd_loop_mdisp_offset, CD_MDISPS, CustomData_has_layer(), CustomData_has_math(), TransDataContainer::data, TransDataContainer::data_len, TransDataContainer::data_mirror, TransDataContainer::data_mirror_len, BMesh::ldata, MEM_callocN, NULL, TransDataContainer::obedit, BMesh::shapenr, tc_mesh_customdatacorrect_init_container_generic(), tc_mesh_customdatacorrect_init_container_merge_group(), tc_mesh_customdatacorrect_init_vert(), and TransCustomDataLayer::use_merge_group.
Referenced by tc_mesh_customdatacorrect_create().
Definition at line 236 of file transform_convert_mesh.c.
References BLI_assert, BM_elem_index_get, FACE_SUBSTITUTE_INDEX, and BMFace::no.
Referenced by tc_mesh_customdatacorrect_apply_vert().
|
static |
Definition at line 209 of file transform_convert_mesh.c.
References BLI_assert, bm, TransCustomDataLayer::bm, BM_elem_index_set, BM_face_copy(), BM_FACE_FIRST_LOOP, BM_loop_interp_from_face(), TransCustomDataLayer::bm_origfaces, FACE_SUBSTITUTE_INDEX, is_zero_v3(), BMLoop::next, BMFace::no, and tc_mesh_customdatacorrect_find_best_face_substitute().
Referenced by tc_mesh_customdatacorrect_init_vert().
Search for a neighboring face with area and preferably without selected vertex. Used to replace area-less faces in custom-data correction.
Definition at line 179 of file transform_convert_mesh.c.
References BM_elem_flag_test, BM_ELEM_SELECT, BM_ITER_ELEM, BM_LOOPS_OF_FACE, BMLoop::f, is_zero_v3(), l, BMLoop::next, BMFace::no, NULL, BMLoop::radial_next, and BMLoop::v.
Referenced by tc_mesh_customdatacorrect_face_substitute_set().
|
static |
Definition at line 416 of file transform_convert_mesh.c.
References TransCustomDataLayer::arena, BLI_ghash_free(), BLI_memarena_free(), TransCustomDataLayer::bm, BM_mesh_free(), TransCustomDataLayer::bm_origfaces, bmesh_edit_end(), BMO_OPTYPE_FLAG_UNTAN_MULTIRES, TransCustomDataLayer::customdatalayer_map, MEM_freeN, TransCustomDataLayer::merge_group, NULL, TransCustomDataLayer::origfaces, and TransCustomDataLayer::origverts.
Referenced by tc_mesh_customdata_free(), and transform_convert_mesh_customdatacorrect_init().
|
static |
Definition at line 305 of file transform_convert_mesh.c.
References BLI_ghash_ptr_new(), bm, TransCustomDataLayer::bm, BM_LOOP, bm_mesh_allocsize_default, BM_mesh_copy_init_customdata_all_layers(), BM_mesh_create(), TransCustomDataLayer::bm_origfaces, bmesh_edit_begin(), BMO_OPTYPE_FLAG_UNTAN_MULTIRES, TransCustomDataLayer::cd_loop_mdisp_offset, CD_MDISPS, CustomData_get_offset(), BMesh::ldata, NULL, and TransCustomDataLayer::origfaces.
Referenced by tc_mesh_customdatacorrect_create_impl().
|
static |
Definition at line 326 of file transform_convert_mesh.c.
References TransCustomDataLayer::arena, BLI_assert, BLI_ghash_ptr_new_ex(), BLI_memarena_alloc(), bm, TransCustomDataLayer::bm, CustomData_has_math(), CustomData_layer_has_math(), TransCustomDataLayer::customdatalayer_map, TransCustomDataLayer::customdatalayer_map_len, TransCustomDataLayer::data, TransDataContainer::data_len, TransCustomDataLayer::data_len, TransDataContainer::data_mirror_len, BMesh::ldata, MEM_mallocN, TransCustomDataLayer::merge_group, TransCustomDataLayer::origverts, and CustomData::totlayer.
Referenced by tc_mesh_customdatacorrect_create_impl().
|
static |
Definition at line 244 of file transform_convert_mesh.c.
References angle_v3v3v3(), TransCustomDataLayer::arena, BLI_array_alloca, BLI_ghash_ensure_p(), BLI_ghash_insert(), BLI_memarena_alloc(), bm, TransCustomDataLayer::bm, BM_face_copy(), BM_iter_init(), BM_loop_find_next_nodouble(), BM_loop_find_prev_nodouble(), BM_LOOPS_OF_VERT, TransCustomDataLayer::bm_origfaces, BM_vert_loop_groups_data_layer_create(), TransCustomDataMergeGroup::cd_loop_groups, BMVert::co, BMIter::count, TransCustomDataLayer::customdatalayer_map, TransCustomDataLayer::customdatalayer_map_len, TransCustomDataLayer::data, BMLoop::f, is_zero_v3(), l, TransCustomDataLayer::merge_group, BMLoop::next, BMFace::no, NULL, TransCustomDataLayer::origfaces, TransCustomDataLayer::origverts, tc_mesh_customdatacorrect_face_substitute_set(), TransCustomDataLayer::use_merge_group, BMLoop::v, and v.
Referenced by tc_mesh_customdatacorrect_create_impl().
Definition at line 676 of file transform_convert_mesh.c.
References BLI_assert, BLI_ghashIterator_getKey(), BLI_ghashIterator_getValue(), bm, TransCustomDataLayer::bm, BM_elem_attrs_copy(), BM_FACE_FIRST_LOOP, TransCustomDataLayer::bm_origfaces, TransCustomDataMesh::cd_layer_correct, FOREACH_TRANS_DATA_CONTAINER, GHASH_ITER, BMFace::len, BMLoop::next, NULL, TransCustomDataLayer::origfaces, and t.
Referenced by recalcData_mesh().
|
static |
Definition at line 1685 of file transform_convert_mesh.c.
References BKE_editmesh_from_object(), BLI_assert, BLI_assert_unreachable, BLI_BITMAP_ENABLE, BLI_BITMAP_NEW, BLI_BITMAP_TEST, BMEditMesh::bm, BM_elem_index_get, BM_mesh_elem_index_ensure(), BM_mesh_partial_create_from_verts(), BM_mesh_partial_create_from_verts_group_multi(), BM_mesh_partial_create_from_verts_group_single(), BM_mesh_partial_destroy(), BM_VERT, TransCustomData_PartialUpdate::cache, TransDataContainer::data, TransDataContainer::data_mirror, TransDataContainer::data_mirror_len, equals_v3v3(), TransData::factor, TransDataMirror::loc_src, MEM_callocN, MEM_freeN, NULL, TransDataContainer::obedit, PARTIAL_NONE, PARTIAL_TYPE_ALL, PARTIAL_TYPE_GROUP, TransCustomDataMesh::partial_update, POINTER_OFFSET, TransCustomData_PartialUpdate::prop_size, TransCustomData_PartialUpdate::prop_size_prev, t, T_PROP_EDIT, tc_mesh_customdata_ensure(), TD_MIRROR_EDGE_AXIS_SHIFT, TD_MIRROR_EDGE_X, TD_MIRROR_EDGE_Y, TD_MIRROR_EDGE_Z, TD_MIRROR_X, TD_MIRROR_Y, TD_MIRROR_Z, BMesh::totvert, TransDataContainer::use_mirror_axis_any, and v.
Referenced by tc_mesh_partial_update().
|
static |
Definition at line 1877 of file transform_convert_mesh.c.
References activeSnap(), activeSnap_SnappingIndividual(), CON_APPLY, PartialTypeState::for_looptri, PartialTypeState::for_normals, PARTIAL_NONE, PARTIAL_TYPE_ALL, PARTIAL_TYPE_GROUP, t, TFM_RESIZE, TFM_ROTATION, TFM_TRANSLATION, usingSnappingNormal(), and validSnappingNormal().
Referenced by recalcData_mesh().
|
static |
Definition at line 1934 of file transform_convert_mesh.c.
References BKE_editmesh_from_object(), BKE_editmesh_looptri_and_normals_calc(), BKE_editmesh_looptri_calc_with_partial_ex(), BMEditMesh::bm, BM_mesh_normals_update_with_partial_ex(), PartialTypeState::for_looptri, PartialTypeState::for_normals, MAX2, TransDataContainer::obedit, PARTIAL_NONE, PARTIAL_TYPE_ALL, PARTIAL_TYPE_GROUP, TransCustomDataMesh::partial_update_state_prev, t, tc_mesh_customdata_ensure(), tc_mesh_partial_ensure(), BMesh::totvert, and BMesh::totvertsel.
Referenced by recalcData_mesh().
|
static |
Definition at line 1392 of file transform_convert_mesh.c.
References TransIslandData::center, and copy_v3_v3().
Referenced by createTransEditVerts(), and VertsToTransData().
|
static |
Definition at line 1997 of file transform_convert_mesh.c.
References copy_v3_v3(), TransDataContainer::data, TransDataContainer::data_mirror, TransDataContainer::data_mirror_len, TransDataMirror::loc_src, TD_MIRROR_EDGE_X, TD_MIRROR_EDGE_Y, TD_MIRROR_EDGE_Z, TD_MIRROR_X, TD_MIRROR_Y, TD_MIRROR_Z, and TransDataContainer::use_mirror_axis_any.
Referenced by recalcData_mesh().
|
static |
If we're sliding the vert, return its original location, if not, the current location is good.
Definition at line 494 of file transform_convert_mesh.c.
References BLI_ghash_lookup(), BMVert::co, TransCustomDataLayer::merge_group, TransCustomDataLayer::origverts, and v.
Referenced by tc_mesh_customdatacorrect_apply_vert().
void transform_convert_mesh_connectivity_distance | ( | struct BMesh * | bm, |
const float | mtx[3][3], | ||
float * | dists, | ||
int * | index | ||
) |
mtx | Measure distance in this space. |
dists | Store the closest connected distance to selected vertices. |
index | Optionally store the original index we're measuring the distance to (can be NULL). |
Definition at line 987 of file transform_convert_mesh.c.
References BLI_assert, BLI_LINKSTACK_DECLARE, BLI_LINKSTACK_FREE, BLI_LINKSTACK_INIT, BLI_LINKSTACK_POP, BLI_LINKSTACK_PUSH, BLI_LINKSTACK_SIZE, BLI_LINKSTACK_SWAP, bm, BM_edge_other_vert(), BM_EDGES_OF_MESH, BM_EDGES_OF_VERT, BM_elem_flag_disable, BM_elem_flag_enable, BM_elem_flag_set, BM_elem_flag_test, BM_ELEM_HIDDEN, BM_elem_index_get, BM_elem_index_set, BM_ELEM_SELECT, BM_ELEM_TAG, BM_ELEM_TAG_ALT, BM_ITER_ELEM, BM_ITER_MESH, BM_iter_mesh_count_flag(), BM_ITER_MESH_INDEX, BM_LOOPS_OF_EDGE, BM_VERT, BM_VERTS_OF_MESH, bmesh_test_dist_add(), bmesh_test_loose_edge(), e, ELEM, BMesh::elem_index_dirty, BMLoop::f, i1, l, LinkNode::next, BMLoop::next, NULL, queue, SWAP, v, v1, and v2.
Referenced by createTransEditVerts(), createTransMeshSkin(), and createTransMeshVertCData().
void transform_convert_mesh_crazyspace_detect | ( | TransInfo * | t, |
struct TransDataContainer * | tc, | ||
struct BMEditMesh * | em, | ||
struct TransMeshDataCrazySpace * | r_crazyspace_data | ||
) |
Detect CrazySpace [tm]. Vertices with space affected by quats are marked with BM_ELEM_TAG.
Definition at line 1289 of file transform_convert_mesh.c.
References BKE_crazyspace_get_first_deform_matrices_editbmesh(), BKE_crazyspace_get_mapped_editverts(), BKE_crazyspace_set_quats_editmesh(), BKE_editmesh_from_object(), BKE_modifiers_get_cage_index(), BKE_modifiers_is_correctable_deformed(), BKE_scene_graph_evaluated_ensure(), BMEditMesh::bm, CTX_data_main(), TransMeshDataCrazySpace::defmats, DEG_get_evaluated_id(), float(), Object::id, MEM_freeN, MEM_mallocN, NULL, TransDataContainer::obedit, TransMeshDataCrazySpace::quats, t, T_PROP_EDIT, T_PROP_EDIT_ALL, and BMesh::totvert.
Referenced by createTransEditVerts(), createTransMeshSkin(), and createTransMeshVertCData().
void transform_convert_mesh_crazyspace_free | ( | struct TransMeshDataCrazySpace * | r_crazyspace_data | ) |
Definition at line 1376 of file transform_convert_mesh.c.
References TransMeshDataCrazySpace::defmats, MEM_freeN, and TransMeshDataCrazySpace::quats.
Referenced by createTransEditVerts(), createTransMeshSkin(), and createTransMeshVertCData().
void transform_convert_mesh_crazyspace_transdata_set | ( | const float | mtx[3][3], |
const float | smtx[3][3], | ||
const float | defmat[3][3], | ||
const float | quat[4], | ||
struct TransData * | r_td | ||
) |
Definition at line 1340 of file transform_convert_mesh.c.
References copy_m3_m3(), invert_m3_m3(), TransData::mtx, mul_m3_m3m3(), mul_m3_series, quat_to_mat3(), and TransData::smtx.
Referenced by createTransEditVerts(), createTransMeshSkin(), and createTransMeshVertCData().
Definition at line 439 of file transform_convert_mesh.c.
References TransCustomDataMesh::cd_layer_correct, ELEM, FOREACH_TRANS_DATA_CONTAINER, NULL, t, tc_mesh_customdatacorrect_create(), tc_mesh_customdatacorrect_free(), TFM_ALIGN, TFM_BEND, TFM_EDGE_SLIDE, TFM_PUSHPULL, TFM_RESIZE, TFM_ROTATION, TFM_SHEAR, TFM_SHRINKFATTEN, TFM_TOSPHERE, TFM_TRACKBALL, TFM_TRANSLATION, TFM_VERT_SLIDE, UVCALC_TRANSFORM_CORRECT, UVCALC_TRANSFORM_CORRECT_KEEP_CONNECTED, and UVCALC_TRANSFORM_CORRECT_SLIDE.
Referenced by transform_mode_init().
void transform_convert_mesh_islanddata_free | ( | struct TransIslandData * | island_data | ) |
Definition at line 893 of file transform_convert_mesh.c.
References TransIslandData::axismtx, TransIslandData::center, TransIslandData::island_vert_map, and MEM_freeN.
Referenced by createTransEditVerts(), createTransMeshSkin(), and createTransMeshVertCData().
void transform_convert_mesh_islands_calc | ( | struct BMEditMesh * | em, |
const bool | calc_single_islands, | ||
const bool | calc_island_center, | ||
const bool | calc_island_axismtx, | ||
struct TransIslandData * | r_island_data | ||
) |
Definition at line 712 of file transform_convert_mesh.c.
References add_v3_v3(), axis_dominant_v3_to_m3(), BLI_assert, BMEditMesh::bm, bm, BM_EDGE, BM_editselection_center(), BM_editselection_normal(), BM_editselection_plane(), BM_elem_flag_test, BM_elem_index_get, BM_ELEM_SELECT, BM_FACE, BM_ITER_ELEM, BM_ITER_MESH_INDEX, BM_mesh_calc_edge_groups(), BM_mesh_calc_face_groups(), BM_mesh_elem_index_ensure(), BM_mesh_elem_table_ensure(), BM_VERT, BM_VERTS_OF_EDGE, BM_VERTS_OF_FACE, BM_VERTS_OF_MESH, BMVert::co, copy_v3_v3(), copy_vn_i(), createSpaceNormalTangent(), data, BMEditSelection::ele, BMesh::etable, BMesh::ftable, BMEditSelection::htype, invert_m3(), is_zero_v3(), itype, MEM_freeN, MEM_mallocN, MEM_reallocN, mul_v3_v3fl(), BMVert::no, normalize_v3(), NULL, SCE_SELECT_EDGE, SCE_SELECT_VERTEX, BMEditMesh::selectmode, BMesh::totedgesel, BMesh::totfacesel, BMesh::totvert, unit_m3(), v, and zero_v3().
Referenced by createTransEditVerts(), createTransMeshSkin(), and createTransMeshVertCData().
void transform_convert_mesh_mirrordata_calc | ( | struct BMEditMesh * | em, |
const bool | use_select, | ||
const bool | use_topology, | ||
const bool | mirror_axis[3], | ||
struct TransMirrorData * | r_mirror_data | ||
) |
Definition at line 1164 of file transform_convert_mesh.c.
References Freestyle::a, add_v3_v3(), BMEditMesh::bm, bm, BM_elem_flag_test, BM_ELEM_HIDDEN, BM_ELEM_SELECT, BM_ITER_MESH_INDEX, BM_VERTS_OF_MESH, BMVert::co, EDBM_verts_mirror_cache_begin_ex(), MirrorDataVert::flag, MirrorDataVert::index, is_in_quadrant_v3(), MEM_callocN, MEM_freeN, MEM_mallocN, MEM_SAFE_FREE, TransMirrorData::mirror_elem_len, NULL, TD_MIRROR_X, BMesh::totvert, TRANSFORM_MAXDIST_MIRROR, and TransMirrorData::vert_map.
Referenced by createTransEditVerts(), createTransMeshSkin(), and createTransMeshVertCData().
void transform_convert_mesh_mirrordata_free | ( | struct TransMirrorData * | mirror_data | ) |
Definition at line 1276 of file transform_convert_mesh.c.
References MEM_freeN, and TransMirrorData::vert_map.
Referenced by createTransEditVerts(), createTransMeshSkin(), and createTransMeshVertCData().
|
static |
Definition at line 1406 of file transform_convert_mesh.c.
References TransIslandData::axismtx, TransData::axismtx, BLI_assert, BM_elem_flag_test, BM_ELEM_HIDDEN, BM_ELEM_SELECT, BM_vert_calc_normal_ex(), BM_vert_calc_shell_factor_ex(), BMVert::co, copy_m3_m3(), copy_v3_v3(), createSpaceNormal(), TransData::ext, TransDataExtension::isize, BMVert::no, NULL, SCE_SELECT_FACE, BMEditMesh::selectmode, t, tc_mesh_transdata_center_copy(), TFM_SHRINKFATTEN, V3D_AROUND_LOCAL_ORIGINS, and TransData::val.
Referenced by createTransEditVerts().
TransConvertTypeInfo TransConvertType_Mesh |
Definition at line 2133 of file transform_convert_mesh.c.
Referenced by convert_type_get(), init_proportional_edit(), init_TransDataContainers(), initSnappingMode(), transform_mode_init(), and viewRedrawPost().