|
Blender
V2.93
|
#include <ctype.h>#include <stddef.h>#include <string.h>#include "MEM_guardedalloc.h"#include "DNA_armature_types.h"#include "DNA_curve_types.h"#include "DNA_meta_types.h"#include "DNA_object_types.h"#include "DNA_scene_types.h"#include "DNA_screen_types.h"#include "DNA_space_types.h"#include "DNA_view3d_types.h"#include "BLI_listbase.h"#include "BLI_math.h"#include "BLI_string.h"#include "BLI_string_utils.h"#include "BLI_utildefines.h"#include "BKE_action.h"#include "BKE_armature.h"#include "BKE_context.h"#include "BKE_curve.h"#include "BKE_editmesh.h"#include "BKE_layer.h"#include "BKE_report.h"#include "BKE_scene.h"#include "BLT_translation.h"#include "ED_armature.h"#include "transform.h"#include "transform_orientations.h"Go to the source code of this file.
Macros | |
| #define | SEL_F1 (1 << 0) |
| #define | SEL_F2 (1 << 1) |
| #define | SEL_F3 (1 << 2) |
| #define SEL_F1 (1 << 0) |
| #define SEL_F2 (1 << 1) |
| #define SEL_F3 (1 << 2) |
| TransformOrientation* addMatrixSpace | ( | bContext * | C, |
| float | mat[3][3], | ||
| const char * | name, | ||
| const bool | overwrite | ||
| ) |
Definition at line 387 of file transform_orientations.c.
References BLI_addtail(), BLI_strncpy(), C, copy_m3_m3(), CTX_data_scene(), findOrientationName(), TransformOrientation::mat, MEM_callocN, TransformOrientation::name, NULL, scene, Scene::transform_spaces, and uniqueOrientationName().
Referenced by createBoneSpace(), createCurveSpace(), createMeshSpace(), createObjectSpace(), and createViewSpace().
| void applyTransformOrientation | ( | const TransformOrientation * | ts, |
| float | r_mat[3][3], | ||
| char * | r_name | ||
| ) |
Definition at line 448 of file transform_orientations.c.
References BLI_strncpy(), copy_m3_m3(), TransformOrientation::mat, MAX_NAME, and TransformOrientation::name.
Referenced by ED_transform_calc_orientation_from_type_ex().
|
static |
Definition at line 459 of file transform_orientations.c.
References BONE_SELECTED, BONE_TRANSFORM, Bone::childbase, ListBase::first, Bone::flag, Bone::layer, bArmature::layer, and Bone::next.
Referenced by getTransformOrientation_ex().
| void BIF_clearTransformOrientation | ( | bContext * | C | ) |
Definition at line 60 of file transform_orientations.c.
References ARRAY_SIZE, BLI_freelistN(), C, CTX_data_scene(), TransformOrientationSlot::index_custom, Scene::orientation_slots, scene, Scene::transform_spaces, TransformOrientationSlot::type, V3D_ORIENT_CUSTOM, and V3D_ORIENT_GLOBAL.
| int BIF_countTransformOrientation | ( | const bContext * | C | ) |
Definition at line 441 of file transform_orientations.c.
References BLI_listbase_count(), C, CTX_data_scene(), scene, and Scene::transform_spaces.
| bool BIF_createTransformOrientation | ( | bContext * | C, |
| ReportList * | reports, | ||
| const char * | name, | ||
| const bool | use_view, | ||
| const bool | activate, | ||
| const bool | overwrite | ||
| ) |
Definition at line 347 of file transform_orientations.c.
References activate(), BIF_selectTransformOrientation(), C, createBoneSpace(), createCurveSpace(), createMeshSpace(), createObjectSpace(), createViewSpace(), CTX_data_active_object(), CTX_data_edit_object(), Object::mode, NULL, OB_ARMATURE, OB_CURVE, OB_MESH, OB_MODE_POSE, and Object::type.
Referenced by create_orientation_exec().
| void BIF_removeTransformOrientation | ( | bContext * | C, |
| TransformOrientation * | target | ||
| ) |
Definition at line 419 of file transform_orientations.c.
References BKE_scene_transform_orientation_remove(), C, and CTX_data_scene().
Referenced by BIF_removeTransformOrientationIndex().
| void BIF_removeTransformOrientationIndex | ( | bContext * | C, |
| int | index | ||
| ) |
Definition at line 424 of file transform_orientations.c.
References BIF_removeTransformOrientation(), BKE_scene_transform_orientation_find(), C, and CTX_data_scene().
Referenced by delete_orientation_exec().
| void BIF_selectTransformOrientation | ( | bContext * | C, |
| TransformOrientation * | target | ||
| ) |
Definition at line 430 of file transform_orientations.c.
References BKE_scene_transform_orientation_get_index(), BLI_assert, C, CTX_data_scene(), TransformOrientationSlot::index_custom, Scene::orientation_slots, SCE_ORIENT_DEFAULT, scene, TransformOrientationSlot::type, and V3D_ORIENT_CUSTOM.
Referenced by BIF_createTransformOrientation().
Definition at line 747 of file transform_orientations.c.
References bm, BM_EDGE, BM_EDGES_OF_MESH, bm_mesh_elems_select_get_n__internal(), min_ii(), and BMesh::totedgesel.
Referenced by getTransformOrientation_ex().
|
static |
utility function - get first n, selected vert/edge/faces
Definition at line 686 of file transform_orientations.c.
References BLI_assert, BLI_listbase_is_empty(), bm, BM_EDGE, BM_EDGES_OF_MESH, BM_elem_flag_test, BM_ELEM_SELECT, BM_FACE, BM_FACES_OF_MESH, BM_ITER_MESH, BM_VERT, BM_VERTS_OF_MESH, BMEditSelection::ele, ELEM, BMElem::head, BMHeader::htype, BMEditSelection::htype, itype, ListBase::last, BMEditSelection::prev, and BMesh::selected.
Referenced by bm_mesh_edges_select_get_n(), and bm_mesh_verts_select_get_n().
Definition at line 742 of file transform_orientations.c.
References bm, bm_mesh_elems_select_get_n__internal(), BM_VERT, BM_VERTS_OF_MESH, min_ii(), and BMesh::totvertsel.
Referenced by getTransformOrientation_ex().
|
static |
Definition at line 151 of file transform_orientations.c.
References addMatrixSpace(), BKE_reports_prepend(), C, createSpaceNormalTangent(), getTransformOrientation(), normal, and NULL.
Referenced by BIF_createTransformOrientation().
|
static |
Definition at line 173 of file transform_orientations.c.
References addMatrixSpace(), BKE_reports_prepend(), C, createSpaceNormalTangent(), getTransformOrientation(), normal, and NULL.
Referenced by BIF_createTransformOrientation().
|
static |
Definition at line 195 of file transform_orientations.c.
References addMatrixSpace(), BKE_reports_prepend(), C, createSpaceNormal(), createSpaceNormalTangent(), getTransformOrientation(), normal, NULL, ORIENTATION_EDGE, ORIENTATION_FACE, ORIENTATION_VERT, and type.
Referenced by BIF_createTransformOrientation().
|
static |
Definition at line 125 of file transform_orientations.c.
References addMatrixSpace(), C, copy_m3_m4(), CTX_data_active_base(), Object::id, ID::name, normalize_m3(), NULL, Base::object, and Object::obmat.
Referenced by BIF_createTransformOrientation().
Definition at line 292 of file transform_orientations.c.
References copy_v3_v3(), cross_v3_v3v3(), is_zero_v3(), normal, normalize_m3(), and normalize_v3().
Referenced by createMeshSpace(), createTransMeshSkin(), ED_getTransformOrientationMatrix(), and VertsToTransData().
Definition at line 320 of file transform_orientations.c.
References cross_v3_v3v3(), is_zero_v3(), negate_v3_v3(), normal, normalize_v3(), and normalize_v3_v3().
Referenced by createBoneSpace(), createCurveSpace(), createMeshSpace(), createTransCurveVerts(), ED_getTransformOrientationMatrix(), and transform_convert_mesh_islands_calc().
|
static |
Definition at line 96 of file transform_orientations.c.
References addMatrixSpace(), C, View3D::camera, copy_m3_m4(), CTX_wm_region_view3d(), CTX_wm_view3d(), Object::id, ID::name, normalize_m3(), NULL, RegionView3D::persp, RV3D_CAMOB, and RegionView3D::viewinv.
Referenced by BIF_createTransformOrientation().
| void ED_getTransformOrientationMatrix | ( | const bContext * | C, |
| struct Object * | ob, | ||
| struct Object * | obedit, | ||
| const short | around, | ||
| float | r_orientation_mat[3][3] | ||
| ) |
Definition at line 1302 of file transform_orientations.c.
References BLI_assert, C, createSpaceNormal(), createSpaceNormalTangent(), getTransformOrientation_ex(), is_zero_v3(), normal, ORIENTATION_EDGE, ORIENTATION_FACE, ORIENTATION_NONE, ORIENTATION_NORMAL, ORIENTATION_USE_PLANE, ORIENTATION_VERT, type, and unit_m3().
Referenced by ED_transform_calc_orientation_from_type_ex().
Definition at line 487 of file transform_orientations.c.
References BKE_scene_orientation_get_index(), C, CTX_data_edit_object(), CTX_data_scene(), CTX_data_view_layer(), CTX_wm_region(), ED_transform_calc_orientation_from_type_ex(), OBACT, ARegion::regiondata, SCE_ORIENT_DEFAULT, scene, Scene::toolsettings, and ToolSettings::transform_pivot_point.
| short ED_transform_calc_orientation_from_type_ex | ( | const bContext * | C, |
| float | r_mat[3][3], | ||
| Scene * | scene, | ||
| RegionView3D * | rv3d, | ||
| Object * | ob, | ||
| Object * | obedit, | ||
| const short | orientation_index, | ||
| const int | pivot_point | ||
| ) |
r_mat to be orthogonal should use orthogonalize_m3.A non orthogonal matrix may be returned when:
Definition at line 511 of file transform_orientations.c.
References applyTransformOrientation(), ATTR_FALLTHROUGH, BKE_scene_cursor_rot_to_mat3(), BKE_scene_transform_orientation_find(), BLI_assert, C, copy_m3_m4(), Scene::cursor, ED_getTransformOrientationMatrix(), gimbal_axis(), Object::mode, normalize_m3(), NULL, OB_MODE_POSE, Object::obmat, scene, transform_orientations_create_from_axis(), unit_m3(), UNPACK3, V3D_ORIENT_CURSOR, V3D_ORIENT_CUSTOM, V3D_ORIENT_CUSTOM_MATRIX, V3D_ORIENT_GIMBAL, V3D_ORIENT_GLOBAL, V3D_ORIENT_LOCAL, V3D_ORIENT_NORMAL, V3D_ORIENT_VIEW, and RegionView3D::viewinv.
Referenced by ED_transform_calc_orientation_from_type(), and transform_orientation_matrix_get().
|
static |
Definition at line 76 of file transform_orientations.c.
References BLI_findstring().
Referenced by addMatrixSpace(), and uniqueOrientationNameCheck().
Definition at line 1291 of file transform_orientations.c.
References C, CTX_data_active_object(), CTX_data_edit_object(), getTransformOrientation_ex(), normal, and V3D_AROUND_CENTER_BOUNDS.
Referenced by createBoneSpace(), createCurveSpace(), and createMeshSpace().
| int getTransformOrientation_ex | ( | const bContext * | C, |
| struct Object * | ob, | ||
| struct Object * | obedit, | ||
| float | normal[3], | ||
| float | plane[3], | ||
| const short | around | ||
| ) |
Logic explained:
Definition at line 760 of file transform_orientations.c.
References Freestyle::a, bArmature::act_edbone, add_v3_v3(), add_v3_v3v3(), armature_bone_transflags_update_recursive(), BASE_SELECTED, Nurb::bezt, BKE_curve_editNurbs_get(), BKE_curve_nurb_vert_active_get(), BKE_editmesh_from_object(), BKE_nurb_bezt_calc_normal(), BKE_nurb_bezt_calc_plane(), BKE_nurb_bpoint_calc_normal(), BKE_nurb_bpoint_calc_plane(), BKE_nurb_bpoint_get_next(), BKE_nurb_bpoint_get_prev(), BKE_pose_channel_active(), BKE_view_layer_base_find(), BLI_assert, BMEditMesh::bm, BM_EDGE, BM_edge_calc_length_squared(), BM_edge_exists(), BM_edge_is_boundary(), BM_edge_ordered_verts(), BM_edge_other_vert(), BM_editselection_normal(), BM_editselection_plane(), BM_elem_flag_test, BM_ELEM_SELECT, BM_FACE, BM_face_calc_tangent_auto(), BM_FACES_OF_MESH, BM_ITER_MESH, BM_mesh_active_vert_get(), bm_mesh_edges_select_get_n(), bm_mesh_verts_select_get_n(), BM_select_history_active_get(), BM_VERT, BM_vert_edge_pair(), BM_vert_tri_calc_tangent_edge(), BM_VERTS_OF_MESH, bPoseChannel::bone, BONE_CONNECTED, BONE_ROOTSEL, BONE_SELECTED, BONE_TIPSEL, BONE_TRANSFORM, bArmature::bonebase, Nurb::bp, C, bPose::chanbase, BMVert::co, copy_m3_m4(), copy_v3_v3(), CTX_data_view_layer(), CTX_wm_view3d(), CU_BEZIER, CURVE_HANDLE_NONE, Object::data, dot_v3v3(), e, ED_armature_ebone_to_mat3(), bArmature::edbo, MetaBall::editelems, ELEM, BezTriple::f1, BPoint::f1, BezTriple::f2, BezTriple::f3, ListBase::first, EditBone::flag, Bone::flag, MetaElem::flag, View3DOverlay::handle_display, BMEditSelection::htype, invert_m3_m3(), is_zero_v3(), BMEdge::l, l, MetaBall::lastelem, EditBone::layer, bArmature::layer, LIKELY, Object::mode, mul_m3_v3(), mul_mat3_m4_v3(), negate_v3(), EditBone::next, bPoseChannel::next, Nurb::next, MetaElem::next, BMVert::no, BMFace::no, normal, normal_tri_v3(), normalize_v3(), NULL, OB_ARMATURE, OB_CURVE, OB_MBALL, OB_MESH, OB_MODE_ALL_PAINT, OB_MODE_PARTICLE_EDIT, OB_MODE_POSE, OB_SURF, Object::obmat, ORIENTATION_EDGE, ORIENTATION_FACE, ORIENTATION_NONE, ORIENTATION_NORMAL, ORIENTATION_VERT, ortho_v3_v3(), View3D::overlay, EditBone::parent, Nurb::pntsu, Nurb::pntsv, Object::pose, bPoseChannel::pose_mat, project_plane_normalized_v3_v3v3(), project_v3_v3v3(), MetaElem::quat, quat_to_mat3(), result, SEL_F1, SEL_F2, SEL_F3, SELECT, sub_v3_v3(), sub_v3_v3v3(), SWAP, BMesh::totedgesel, BMesh::totfacesel, BMesh::totvertsel, transpose_m3(), Nurb::type, Object::type, UNLIKELY, BMLoop::v, v, BMEdge::v1, BMEdge::v2, V3D_AROUND_ACTIVE, V3D_AROUND_LOCAL_ORIGINS, BezTriple::vec, BPoint::vec, and zero_v3().
Referenced by ED_getTransformOrientationMatrix(), and getTransformOrientation().
| short transform_orientation_matrix_get | ( | bContext * | C, |
| TransInfo * | t, | ||
| short | orient_index, | ||
| const float | custom[3][3], | ||
| float | r_spacemtx[3][3] | ||
| ) |
Definition at line 593 of file transform_orientations.c.
References C, copy_m3_m3(), CTX_data_active_object(), CTX_data_edit_object(), CTX_PAINT_CURVE, ED_transform_calc_orientation_from_type_ex(), Object::mode, mul_m3_m4m3(), normalize_m3(), NULL, OB_MODE_ALL_WEIGHT_PAINT, RGN_TYPE_WINDOW, scene, SPACE_VIEW3D, t, transform_object_deform_pose_armature_get(), unit_m3(), V3D_ORIENT_CUSTOM_MATRIX, V3D_ORIENT_VIEW, and RegionView3D::viewmat.
Referenced by initTransInfo().
| bool transform_orientations_create_from_axis | ( | float | mat[3][3], |
| const float | x[3], | ||
| const float | y[3], | ||
| const float | z[3] | ||
| ) |
Definition at line 244 of file transform_orientations.c.
References Freestyle::a, cross_v3_v3v3(), is_zero(), normalize_v3(), normalize_v3_v3(), project_plane_v3_v3v3(), unit_m3(), x, y, z, and zero_m3().
Referenced by ED_transform_calc_orientation_from_type_ex(), and ObjectToTransData().
| void transform_orientations_current_set | ( | TransInfo * | t, |
| const short | orient_index | ||
| ) |
Definition at line 672 of file transform_orientations.c.
References BLI_strncpy(), copy_m3_m3(), invert_m3_m3_safe_ortho(), t, and transform_orientations_spacename_get().
Referenced by initSelectConstraint(), initTransInfo(), stopConstraint(), transform_event_modal_constraint(), and transform_mode_default_modal_orientation_set().
| const char* transform_orientations_spacename_get | ( | TransInfo * | t, |
| const short | orient_type | ||
| ) |
Definition at line 646 of file transform_orientations.c.
References BKE_scene_transform_orientation_find(), BLI_assert, TransformOrientation::name, t, TIP_, V3D_ORIENT_CURSOR, V3D_ORIENT_CUSTOM, V3D_ORIENT_CUSTOM_MATRIX, V3D_ORIENT_GIMBAL, V3D_ORIENT_GLOBAL, V3D_ORIENT_LOCAL, V3D_ORIENT_NORMAL, and V3D_ORIENT_VIEW.
Referenced by setUserConstraint(), and transform_orientations_current_set().
|
static |
Definition at line 86 of file transform_orientations.c.
References BLI_uniquename_cb(), BLT_I18NCONTEXT_ID_SCENE, CTX_DATA_, NULL, and uniqueOrientationNameCheck().
Referenced by addMatrixSpace().
|
static |
Definition at line 81 of file transform_orientations.c.
References findOrientationName(), and NULL.
Referenced by uniqueOrientationName().