|
Blender V4.3
|
#include "RE_engine.h"Go to the source code of this file.
Macros | |
| #define | ORIENTATION_USE_PLANE(ty) ELEM(ty, ORIENTATION_NORMAL, ORIENTATION_EDGE, ORIENTATION_FACE) |
Enumerations | |
| enum | { ORIENTATION_NONE = 0 , ORIENTATION_NORMAL = 1 , ORIENTATION_VERT = 2 , ORIENTATION_EDGE = 3 , ORIENTATION_FACE = 4 } |
Functions | |
| bool | gimbal_axis_pose (Object *ob, const bPoseChannel *pchan, float gmat[3][3]) |
| bool | gimbal_axis_object (Object *ob, float gmat[3][3]) |
| short | transform_orientation_matrix_get (bContext *C, TransInfo *t, short orient_index, const float custom[3][3], float r_spacemtx[3][3]) |
| const char * | transform_orientations_spacename_get (TransInfo *t, short orient_type) |
| void | transform_orientations_current_set (TransInfo *t, short orient_index) |
| bool | transform_orientations_create_from_axis (float mat[3][3], const float x[3], const float y[3], const float z[3]) |
| bool | createSpaceNormal (float mat[3][3], const float normal[3]) |
| bool | createSpaceNormalTangent (float mat[3][3], const float normal[3], const float tangent[3]) |
| TransformOrientation * | addMatrixSpace (bContext *C, float mat[3][3], const char *name, bool overwrite) |
| void | applyTransformOrientation (const TransformOrientation *ts, float r_mat[3][3], char r_name[64]) |
| int | getTransformOrientation_ex (const Scene *scene, ViewLayer *view_layer, const View3D *v3d, Object *ob, Object *obedit, float normal[3], float plane[3], short around) |
| int | getTransformOrientation (const bContext *C, float normal[3], float plane[3]) |
| #define ORIENTATION_USE_PLANE | ( | ty | ) | ELEM(ty, ORIENTATION_NORMAL, ORIENTATION_EDGE, ORIENTATION_FACE) |
Definition at line 61 of file transform_orientations.hh.
Referenced by ED_getTransformOrientationMatrix().
| anonymous enum |
| Enumerator | |
|---|---|
| ORIENTATION_NONE | |
| ORIENTATION_NORMAL | |
| ORIENTATION_VERT | |
| ORIENTATION_EDGE | |
| ORIENTATION_FACE | |
Definition at line 54 of file transform_orientations.hh.
| TransformOrientation * addMatrixSpace | ( | bContext * | C, |
| float | mat[3][3], | ||
| const char * | name, | ||
| bool | overwrite ) |
Definition at line 475 of file transform_orientations.cc.
References BLI_addtail(), copy_m3_m3(), CTX_data_scene(), findOrientationName(), TransformOrientation::mat, MEM_callocN, TransformOrientation::name, STRNCPY, and uniqueOrientationName().
Referenced by createBoneSpace(), createCurveSpace(), createMeshSpace(), createObjectSpace(), and createViewSpace().
| void applyTransformOrientation | ( | const TransformOrientation * | ts, |
| float | r_mat[3][3], | ||
| char | r_name[64] ) |
Definition at line 537 of file transform_orientations.cc.
References BLI_strncpy(), copy_m3_m3(), TransformOrientation::mat, MAX_NAME, and TransformOrientation::name.
Referenced by ED_transform_calc_orientation_from_type_ex().
Definition at line 385 of file transform_orientations.cc.
References copy_v3_v3(), cross_v3_v3v3(), is_zero_v3(), normalize_m3(), and normalize_v3().
Referenced by createMeshSpace(), createTransMeshSkin(), createTransMeshVertCData(), ED_getTransformOrientationMatrix(), and VertsToTransData().
Definition at line 408 of file transform_orientations.cc.
References cross_v3_v3v3(), is_zero_v3(), negate_v3_v3(), normalize_v3(), and normalize_v3_v3().
Referenced by createBoneSpace(), createCurveSpace(), createMeshSpace(), createTransCurveVerts(), ED_getTransformOrientationMatrix(), and transform_convert_mesh_islands_calc().
Definition at line 1430 of file transform_orientations.cc.
References CTX_data_active_object(), CTX_data_edit_object(), CTX_data_scene(), CTX_data_view_layer(), CTX_wm_view3d(), getTransformOrientation_ex(), and V3D_AROUND_CENTER_BOUNDS.
Referenced by createBoneSpace(), createCurveSpace(), and createMeshSpace().
| int getTransformOrientation_ex | ( | const Scene * | scene, |
| ViewLayer * | view_layer, | ||
| const View3D * | v3d, | ||
| Object * | ob, | ||
| Object * | obedit, | ||
| float | normal[3], | ||
| float | plane[3], | ||
| short | around ) |
Logic explained:
Definition at line 896 of file transform_orientations.cc.
References bArmature::act_edbone, add_v3_v3(), add_v3_v3v3(), ANIM_bonecoll_is_visible_editbone(), 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_if_bonecoll_visible(), BKE_view_layer_base_find(), BKE_view_layer_synced_ensure(), 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, bPose::chanbase, BMVert::co, copy_m3_m4(), copy_v3_v3(), 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, Bone::flag, EditBone::flag, flag, MetaElem::flag, View3DOverlay::handle_display, BMEditSelection::htype, invert_m3_m3(), is_zero_v3(), BMEdge::l, l, MetaBall::lastelem, LIKELY, LISTBASE_FOREACH, Object::mode, mul_m3_v3(), mul_mat3_m4_v3(), negate_v3(), Nurb::next, BMFace::no, BMVert::no, normal_tri_v3(), normalize_v3(), OB_ARMATURE, OB_CURVES_LEGACY, OB_MBALL, OB_MESH, OB_MODE_ALL_PAINT, OB_MODE_PARTICLE_EDIT, OB_MODE_POSE, OB_SURF, 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(), 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().
Definition at line 316 of file transform_orientations.cc.
References axis_angle_to_gimbal_axis(), copy_m3_m4(), eulO_to_gimbal_axis(), mul_m3_m3m3(), normalize_m3(), Object::parent, Object::rot, ROT_MODE_AXISANGLE, Object::rotAngle, Object::rotAxis, Object::rotmode, and test_rotmode_euler().
Referenced by ED_transform_calc_orientation_from_type_ex(), and ObjectToTransData().
| bool gimbal_axis_pose | ( | Object * | ob, |
| const bPoseChannel * | pchan, | ||
| float | gmat[3][3] ) |
Definition at line 278 of file transform_orientations.cc.
References Bone::arm_mat, axis_angle_to_gimbal_axis(), bPoseChannel::bone, BONE_HINGE, Bone::bone_mat, copy_m3_m4(), bPoseChannel::eul, eulO_to_gimbal_axis(), Bone::flag, mul_m3_m3m3(), normalize_m3(), bPoseChannel::parent, bPoseChannel::pose_mat, ROT_MODE_AXISANGLE, bPoseChannel::rotAngle, bPoseChannel::rotAxis, bPoseChannel::rotmode, and test_rotmode_euler().
Referenced by add_pose_transdata(), and ED_transform_calc_orientation_from_type_ex().
| short transform_orientation_matrix_get | ( | bContext * | C, |
| TransInfo * | t, | ||
| short | orient_index, | ||
| const float | custom[3][3], | ||
| float | r_spacemtx[3][3] ) |
Sets the matrix of the specified space orientation. If the matrix cannot be obtained, an orientation different from the one informed is returned.
Definition at line 725 of file transform_orientations.cc.
References TransInfo::around, axis_angle_to_mat3_single(), copy_m3_m3(), CTX_data_active_object(), CTX_data_edit_object(), CTX_PAINT_CURVE, CTX_SEQUENCER_IMAGE, ED_transform_calc_orientation_from_type_ex(), Object::mode, mul_m3_m4m3(), normalize_m3(), OB_MODE_ALL_WEIGHT_PAINT, TransInfo::options, TransInfo::region, ARegion::regiondata, ARegion::regiontype, RGN_TYPE_WINDOW, StripTransform::rotation, TransInfo::scene, SEQ_select_active_get(), SPACE_SEQ, SPACE_VIEW3D, TransInfo::spacetype, Sequence::strip, Strip::transform, transform_object_deform_pose_armature_get(), unit_m3(), V3D_ORIENT_CUSTOM_MATRIX, V3D_ORIENT_LOCAL, V3D_ORIENT_VIEW, TransInfo::view, TransInfo::view_layer, 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] ) |
Those two fill in mat and return non-zero on success.
Definition at line 337 of file transform_orientations.cc.
References b, cross_v3_v3v3(), is_zero(), normalize_v3(), normalize_v3_v3(), project_plane_v3_v3v3(), unit_m3(), z(), and zero_m3().
Referenced by ED_transform_calc_orientation_from_type_ex(), handle_armature_parent_orientation(), handle_object_parent_orientation(), and ObjectToTransData().
| void transform_orientations_current_set | ( | TransInfo * | t, |
| short | orient_index ) |
Definition at line 809 of file transform_orientations.cc.
References copy_m3_m3(), invert_m3_m3_safe_ortho(), TransInfo::matrix, TransInfo::orient, TransInfo::orient_curr, TransInfo::spacemtx, TransInfo::spacemtx_inv, TransInfo::spacename, STRNCPY, transform_orientations_spacename_get(), and TransInfo::type.
Referenced by initSelectConstraint(), initTransInfo(), stopConstraint(), transform_event_modal_constraint(), and transform_mode_default_modal_orientation_set().
| const char * transform_orientations_spacename_get | ( | TransInfo * | t, |
| short | orient_type ) |
Definition at line 781 of file transform_orientations.cc.
References BKE_scene_transform_orientation_find(), BLI_assert, TransformOrientation::name, RPT_, TransInfo::scene, V3D_ORIENT_CURSOR, V3D_ORIENT_CUSTOM, V3D_ORIENT_CUSTOM_MATRIX, V3D_ORIENT_GIMBAL, V3D_ORIENT_GLOBAL, V3D_ORIENT_LOCAL, V3D_ORIENT_NORMAL, V3D_ORIENT_PARENT, and V3D_ORIENT_VIEW.
Referenced by setUserConstraint(), and transform_orientations_current_set().