|
Blender V4.3
|
#include "DNA_anim_types.h"#include "DNA_constraint_types.h"#include "DNA_mesh_types.h"#include "MEM_guardedalloc.h"#include "BLI_kdtree.h"#include "BLI_linklist_stack.h"#include "BLI_listbase.h"#include "BLI_math_matrix.h"#include "BLI_math_vector.h"#include "BLI_math_vector.hh"#include "BKE_action.hh"#include "BKE_anim_data.hh"#include "BKE_context.hh"#include "BKE_global.hh"#include "BKE_layer.hh"#include "BKE_lib_id.hh"#include "BKE_modifier.hh"#include "BKE_nla.hh"#include "BKE_scene.hh"#include "ED_particle.hh"#include "ED_screen.hh"#include "ED_screen_types.hh"#include "ED_sequencer.hh"#include "ANIM_keyframing.hh"#include "ANIM_nla.hh"#include "UI_view2d.hh"#include "WM_types.hh"#include "DEG_depsgraph_build.hh"#include "transform.hh"#include "transform_convert.hh"Go to the source code of this file.
For the realtime animation recording feature, handle overlapping data.
Definition at line 1173 of file transform_convert.cc.
References AnimData::act_blendmode, AnimData::act_extendmode, AnimData::act_influence, AnimData::action, ADT_NLA_EDIT_ON, ANIMPLAY_FLAG_JUMPED, TransInfo::animtimer, blender::animrig::nla::assign_action_slot_handle(), AUTOKEY_FLAG_INSERTAVAILABLE, AUTOKEY_FLAG_LAYERED_RECORD, BKE_animdata_from_id(), BKE_nlastack_add_strip(), BKE_nlastrip_validate_fcurves(), NlaStrip::blendmode, BLI_assert, BLI_assert_msg, wmTimer::customdata, ELEM, NlaStrip::extendmode, ListBase::first, AnimData::flag, NlaStrip::flag, ScreenAnimData::flag, ID_IS_OVERRIDE_LIBRARY, NlaStrip::influence, blender::animrig::is_keying_flag(), AnimData::nla_tracks, NLASTRIP_EXTEND_NOTHING, NLASTRIP_FLAG_ACTIVE, NLASTRIP_FLAG_AUTO_BLENDS, NLASTRIP_FLAG_SELECT, NLASTRIP_FLAG_USR_INFLUENCE, TransInfo::scene, AnimData::slot_handle, blender::animrig::unassign_action(), and UNUSED_VARS_NDEBUG.
Referenced by recalcData_objects(), recalcData_pose(), and recalcData_sequencer_image().
Definition at line 395 of file transform_convert.cc.
References BLI_LINKSTACK_DECLARE, BLI_LINKSTACK_FREE, BLI_LINKSTACK_INIT, BLI_LINKSTACK_POP, BLI_LINKSTACK_PUSH, TransData::dist, FLT_MAX, len_v3(), TransData::mtx, mul_m3_v3(), sub_v3_v3v3(), and TD_SELECTED.
Referenced by createTransCurveVerts(), createTransGPencil_curves(), createTransGPencil_strokes(), and createTransParticleVerts().
| void clipUVData | ( | TransInfo * | t | ) |
Definition at line 476 of file transform_convert.cc.
References TransInfo::aspect, FOREACH_TRANS_DATA_CONTAINER, max_ff(), min_ff(), and TD_SKIP.
Referenced by apply_shear(), applyResize(), applyRotation(), and applyTranslation().
Little helper function for ObjectToTransData used to give certain constraints (ChildOf, FollowPath, and others that may be added) inverse corrections for transform, so that they aren't in CrazySpace. These particular constraints benefit from this, but others don't, hence this semi-hack ;-) - Aligorith
Definition at line 546 of file transform_convert.cc.
References ACTCON_MIX_BEFORE, ACTCON_MIX_BEFORE_FULL, ACTCON_MIX_BEFORE_SPLIT, CHILDOF_LOCX, CHILDOF_LOCY, CHILDOF_LOCZ, CONSTRAINT_DISABLE, CONSTRAINT_OFF, CONSTRAINT_TYPE_ACTION, CONSTRAINT_TYPE_ARMATURE, CONSTRAINT_TYPE_CHILDOF, CONSTRAINT_TYPE_CLAMPTO, CONSTRAINT_TYPE_FOLLOWPATH, CONSTRAINT_TYPE_FOLLOWTRACK, CONSTRAINT_TYPE_OBJECTSOLVER, CONSTRAINT_TYPE_ROTLIKE, CONSTRAINT_TYPE_TRANSFORM, CONSTRAINT_TYPE_TRANSLIKE, ELEM, LISTBASE_FOREACH, TransInfo::mode, ROTLIKE_MIX_BEFORE, ROTLIKE_MIX_OFFSET, TFM_ROTATION, TFM_TRANSLATION, TRANS_MIXROT_BEFORE, TRANS_ROTATION, TRANSLIKE_MIX_BEFORE, TRANSLIKE_MIX_BEFORE_FULL, and TRANSLIKE_MIX_BEFORE_SPLIT.
Referenced by add_pose_transdata(), and ObjectToTransData().
|
static |
Definition at line 876 of file transform_convert.cc.
References BKE_view_layer_active_object_get(), BKE_view_layer_synced_ensure(), TransInfo::context, CTX_CURSOR, CTX_EDGE_DATA, CTX_GPENCIL_STROKES, CTX_MASK, CTX_MOVIECLIP, CTX_PAINT_CURVE, CTX_SEQUENCER_IMAGE, CTX_TEXTURE_SPACE, TransInfo::depsgraph, ELEM, Object::mode, TransInfo::mode, OB_ARMATURE, OB_CURVES, OB_CURVES_LEGACY, OB_GPENCIL_LEGACY, OB_GREASE_PENCIL, OB_LATTICE, OB_MBALL, OB_MESH, OB_MODE_ALL_PAINT, OB_MODE_ALL_PAINT_GPENCIL, OB_MODE_ALL_WEIGHT_PAINT, OB_MODE_PARTICLE_EDIT, OB_MODE_POSE, OB_MODE_SCULPT, OB_MODE_SCULPT_CURVES, OB_SURF, TransInfo::obedit_type, TransInfo::options, PE_get_current(), PE_start_edit(), TransInfo::region, ARegion::regiontype, RGN_TYPE_PREVIEW, TransInfo::scene, Object::sculpt, sequencer_retiming_mode_is_active(), SPACE_ACTION, SPACE_CLIP, SPACE_GRAPH, SPACE_IMAGE, SPACE_NLA, SPACE_NODE, SPACE_SEQ, SPACE_VIEW3D, TransInfo::spacetype, TFM_BWEIGHT, TFM_SHEAR, TFM_SHRINKFATTEN, TFM_SKIN_RESIZE, TFM_VERT_CREASE, TransConvertType_Action, TransConvertType_Cursor3D, TransConvertType_CursorImage, TransConvertType_CursorSequencer, TransConvertType_Curve, TransConvertType_Curves, TransConvertType_EditArmature, TransConvertType_GPencil, TransConvertType_Graph, TransConvertType_GreasePencil, TransConvertType_Lattice, TransConvertType_Mask, TransConvertType_MBall, TransConvertType_Mesh, TransConvertType_MeshEdge, TransConvertType_MeshSkin, TransConvertType_MeshUV, TransConvertType_MeshVertCData, TransConvertType_NLA, TransConvertType_Node, TransConvertType_Object, TransConvertType_ObjectTexSpace, TransConvertType_PaintCurve, TransConvertType_Particle, TransConvertType_Pose, TransConvertType_Sculpt, TransConvertType_Sequencer, TransConvertType_SequencerImage, TransConvertType_SequencerRetiming, TransConvertType_Tracking, TransConvertType_TrackingCurves, transform_object_deform_pose_armature_get(), and TransInfo::view_layer.
Referenced by create_trans_data().
Definition at line 684 of file transform_convert.cc.
References BLI_assert, TransInfo::data_container, TransInfo::data_container_len, TransInfo::data_len_all, ELEM, and MEM_reallocN.
Referenced by create_trans_data().
Definition at line 1017 of file transform_convert.cc.
References BKE_scene_graph_evaluated_ensure(), BKE_view_layer_active_object_get(), BKE_view_layer_synced_ensure(), BLI_assert, View3D::camera, TransInfo::context, convert_type_get(), countAndCleanTransDataContainer(), TransConvertTypeInfo::create_trans_data, CTX_CAMERA, CTX_data_main(), CTX_OBJECT, CTX_OBMODE_XFORM_OBDATA, CTX_OBMODE_XFORM_SKIP_CHILDREN, CTX_POSE_BONE, TransInfo::data_len_all, TransInfo::data_type, TransInfo::depsgraph, NumInput::flag, TransInfo::flag, TransConvertTypeInfo::flags, Object::id, ID_TAG_DOIT, init_proportional_edit(), init_TransDataContainers(), TransInfo::num, NUM_NO_FRACTION, View3D::ob_center, TransInfo::obedit_type, TransInfo::options, RegionView3D::persp, printf, TransInfo::region, ARegion::regiondata, ARegion::regiontype, RGN_TYPE_WINDOW, RV3D_CAMOB, SCE_XFORM_DATA_ORIGIN, SCE_XFORM_SKIP_CHILDREN, TransInfo::scene, TransInfo::settings, SPACE_VIEW3D, TransInfo::spacetype, ID::tag, TransConvertType_Object, TransConvertType_Pose, TransConvertType_Sequencer, TransConvertType_SequencerImage, ToolSettings::transform_flag, TransInfo::view, and TransInfo::view_layer.
Referenced by calculateTransformCenter(), and initTransform().
This function tests if a point is on the "mouse" side of the cursor/frame-marking.
Definition at line 526 of file transform_convert.cc.
Referenced by ActionFCurveToTransData(), count_fcurve_keys(), count_gplayer_frames(), count_grease_pencil_frames(), count_masklayer_frames(), createTransActionData(), createTransGraphEditData(), createTransNlaData(), GPLayerToTransData(), graph_key_shortest_dist(), GreasePencilLayerToTransData(), and MaskLayerToTransData().
|
static |
Definition at line 712 of file transform_convert.cc.
References BLI_assert, CTX_NO_PET, TransInfo::data_len_all, TransInfo::data_type, ELEM, TransInfo::flag, OB_CURVES, OB_CURVES_LEGACY, TransInfo::obedit_type, TransInfo::options, set_prop_dist(), sort_trans_data_dist(), sort_trans_data_selected_first(), T_PROP_CONNECTED, T_PROP_EDIT, TransConvertType_Action, TransConvertType_Curve, TransConvertType_Curves, TransConvertType_GPencil, TransConvertType_Graph, TransConvertType_GreasePencil, TransConvertType_Lattice, TransConvertType_Mask, TransConvertType_MBall, TransConvertType_Mesh, TransConvertType_MeshEdge, TransConvertType_MeshSkin, TransConvertType_MeshUV, TransConvertType_MeshVertCData, TransConvertType_Node, TransConvertType_Object, and TransConvertType_Particle.
Referenced by create_trans_data().
|
static |
Definition at line 785 of file transform_convert.cc.
References BKE_view_layer_array_from_objects_in_mode_params(), BLI_assert, copy_m3_m4(), copy_m4_m4(), TransInfo::data_container, TransInfo::data_container_len, TransInfo::data_type, ELEM, TransInfo::flag, TransDataContainer::imat, TransDataContainer::imat3, invert_m3_m3(), invert_m4_m4_fallback(), TransDataContainer::mat, TransDataContainer::mat3, TransDataContainer::mat3_unit, ME_SYMMETRY_X, ME_SYMMETRY_Y, ME_SYMMETRY_Z, MEM_callocN, MEM_freeN(), Object::mode, normalize_m3_m3(), OB_ARMATURE, OB_MESH, OB_MODE_EDIT, OB_MODE_OBJECT, OB_MODE_POSE, TransDataContainer::obedit, params, TransDataContainer::poseobj, TransInfo::scene, SPACE_VIEW3D, TransInfo::spacetype, T_2D_EDIT, T_NO_MIRROR, TransConvertType_Curve, TransConvertType_Curves, TransConvertType_EditArmature, TransConvertType_GPencil, TransConvertType_GreasePencil, TransConvertType_Lattice, TransConvertType_MBall, TransConvertType_Mesh, TransConvertType_MeshEdge, TransConvertType_MeshSkin, TransConvertType_MeshUV, TransConvertType_MeshVertCData, TransConvertType_Pose, Object::type, TransDataContainer::use_local_mat, TransDataContainer::use_mirror_axis_x, TransDataContainer::use_mirror_axis_y, TransDataContainer::use_mirror_axis_z, TransInfo::view, and TransInfo::view_layer.
Referenced by create_trans_data().
| TransDataCurveHandleFlags * initTransDataCurveHandles | ( | TransData * | td, |
| BezTriple * | bezt ) |
Utility function for getting the handle data from bezier's.
Definition at line 457 of file transform_convert.cc.
References BezTriple::h1, TransDataCurveHandleFlags::h1, BezTriple::h2, TransDataCurveHandleFlags::h2, TransData::hdata, TransDataCurveHandleFlags::ih1, TransDataCurveHandleFlags::ih2, MEM_mallocN, and TD_BEZTRIPLE.
Referenced by createTransCurveVerts(), createTransGPencil_curves(), and createTransGraphEditData().
|
static |
Adjust pose-channel's auto-ik chainlen.
Definition at line 311 of file transform_convert.cc.
References bPoseChannel::constflag, CONSTRAINT_DISABLE, CONSTRAINT_IK_TEMP, CONSTRAINT_OFF, CONSTRAINT_TYPE_KINEMATIC, bPoseChannel::constraints, LISTBASE_FOREACH, PCHAN_HAS_IK, PCHAN_HAS_NO_TARGET, and bKinematicConstraint::rootbone.
Referenced by transform_autoik_update().
|
static |
Definition at line 174 of file transform_convert.cc.
References TransDataContainer::mat, TransData::mtx, mul_v3_m3v3(), mul_v3_m4v3(), project_v3_v3v3(), sub_v3_v3(), and TransDataContainer::use_local_mat.
Referenced by set_prop_dist().
| void recalc_data | ( | TransInfo * | t | ) |
Called for updating while transform acts, once per redraw.
Definition at line 1275 of file transform_convert.cc.
References TransInfo::data_type, and TransConvertTypeInfo::recalc_data.
Referenced by apply_shear(), apply_value_impl(), applyAlign(), applyBakeTime(), applyBoneEnvelope(), applyBoneRoll(), applyBoneSize(), applyCurveShrinkFatten(), applyEdgeSlide(), applyGPOpacity(), applyGPShrinkFatten(), applyMaskShrinkFatten(), applyMirror(), applyNormalRotation(), applyPushPull(), applyResize(), applyRotation(), applySeqSlide(), applyShrinkFatten(), applySkinResize(), applyTilt(), applyTimeScale(), applyTimeSlide(), applyTimeTranslate(), applyToSphere(), applyTrackball(), applyTranslation(), applyTransObjects(), applyVertSlide(), Bend(), BKE_object_handle_update_ex(), and restoreTransObjects().
|
static |
Distance calculated from not-selected vertex to nearest selected vertex.
Definition at line 210 of file transform_convert.cc.
References TransInfo::around, TransData::axismtx, BLI_assert, copy_m3_m3(), copy_v3_v3(), TransData::dist, TransInfo::flag, FOREACH_TRANS_DATA_CONTAINER, MEM_freeN(), MEM_mallocN, normalize_v3_v3(), prop_dist_loc_get(), TransData::rdist, TransInfo::region, ARegion::regiondata, ARegion::regiontype, RGN_TYPE_WINDOW, SPACE_VIEW3D, TransInfo::spacetype, T_PROP_PROJECTED, TD_SELECTED, transdata_check_local_islands(), and RegionView3D::viewinv.
Referenced by init_proportional_edit().
| void sort_trans_data_dist | ( | TransInfo * | t | ) |
Definition at line 131 of file transform_convert.cc.
References FOREACH_TRANS_DATA_CONTAINER, and sort_trans_data_dist_container().
Referenced by init_proportional_edit(), and transformEvent().
|
static |
Definition at line 113 of file transform_convert.cc.
References TransDataContainer::data, TransDataContainer::data_len, TransInfo::flag, T_PROP_CONNECTED, TD_SELECTED, trans_data_compare_dist(), and trans_data_compare_rdist().
Referenced by sort_trans_data_dist().
|
static |
Definition at line 167 of file transform_convert.cc.
References FOREACH_TRANS_DATA_CONTAINER, and sort_trans_data_selected_first_container().
Referenced by init_proportional_edit().
|
static |
Make TD_SELECTED first in the array.
Definition at line 141 of file transform_convert.cc.
References TransDataContainer::data, TransDataContainer::data_len, and TD_SELECTED.
Referenced by sort_trans_data_selected_first().
Inserting keys, point-cache, redraw events.
Definition at line 638 of file transform_convert.cc.
References BLI_assert, TransInfo::context, CTX_data_main(), TransInfo::data_len_all, TransInfo::data_type, TransInfo::mode, TransConvertTypeInfo::special_aftertrans_update, and TFM_DUMMY.
Referenced by calculateTransformCenter(), and transformEnd().
Definition at line 657 of file transform_convert.cc.
References CTX_CURSOR, CTX_OBJECT, CTX_POSE_BONE, CTX_TEXTURE_SPACE, TransInfo::flag, G_TRANSFORM_CURSOR, G_TRANSFORM_EDIT, G_TRANSFORM_FCURVES, G_TRANSFORM_OBJ, G_TRANSFORM_SEQ, TransInfo::options, SPACE_GRAPH, SPACE_SEQ, TransInfo::spacetype, and T_EDIT.
Referenced by transformops_data().
|
static |
Definition at line 85 of file transform_convert.cc.
References b, and TransData::dist.
Referenced by sort_trans_data_dist_container().
|
static |
Definition at line 99 of file transform_convert.cc.
References b, and TransData::rdist.
Referenced by sort_trans_data_dist_container().
| void transform_around_single_fallback | ( | TransInfo * | t | ) |
Definition at line 76 of file transform_convert.cc.
References TransInfo::data_len_all, and transform_around_single_fallback_ex().
Referenced by createTransArmatureVerts().
Transforming around ourselves is no use, fallback to individual origins, useful for curve/armatures.
Definition at line 58 of file transform_convert.cc.
References TransInfo::around, ELEM, TransInfo::flag, T_OVERRIDE_CENTER, transform_mode_use_local_origins(), V3D_AROUND_ACTIVE, V3D_AROUND_CENTER_BOUNDS, V3D_AROUND_CENTER_MEDIAN, and V3D_AROUND_LOCAL_ORIGINS.
Referenced by createTransCurveVerts(), createTransGPencil_curves(), and transform_around_single_fallback().
| void transform_autoik_update | ( | TransInfo * | t, |
| short | mode ) |
Change the chain-length of auto-IK.
Definition at line 346 of file transform_convert.cc.
References ToolSettings::autoik_chainlen, TransInfo::context, CTX_data_main(), DEG_relations_tag_update(), ELEM, FOREACH_TRANS_DATA_CONTAINER, LISTBASE_FOREACH, pchan_autoik_adjust(), and TransInfo::settings.
Referenced by createTransPose(), and transformEvent().
| void transform_convert_clip_mirror_modifier_apply | ( | TransDataContainer * | tc | ) |
Definition at line 1094 of file transform_convert.cc.
References copy_v3_v3(), TransDataContainer::data, TransDataContainer::data_len, eModifierMode_Realtime, eModifierType_Mirror, fabsf, ListBase::first, MirrorModifierData::flag, invert_m4_m4(), MirrorModifierData::mirror_ob, MOD_MIR_AXIS_X, MOD_MIR_AXIS_Y, MOD_MIR_AXIS_Z, MOD_MIR_CLIPPING, ModifierData::mode, Object::modifiers, mul_m4_m4m4(), mul_m4_v3(), ModifierData::next, TransDataContainer::obedit, TD_SKIP, MirrorModifierData::tolerance, and ModifierData::type.
Referenced by recalcData_curve(), and recalcData_mesh().
| void transform_convert_flush_handle2D | ( | TransData * | td, |
| TransData2D * | td2d, | ||
| const float | y_fac ) |
Definition at line 1255 of file transform_convert.cc.
References TransData2D::h1, TransData2D::h2, TransData2D::ih1, TransData2D::ih2, TD_MOVEHANDLE1, and TD_MOVEHANDLE2.
Referenced by flushTransGraphData(), and recalcData_actedit().
Used for TFM_TIME_EXTEND.
Definition at line 504 of file transform_convert.cc.
References TransInfo::flag, MouseInput::imval, TransInfo::mouse, T_MODAL, T_NO_MIRROR, UI_view2d_region_to_view(), and TransInfo::view.
Referenced by createTransActionData(), createTransGraphEditData(), createTransNlaData(), and createTransSeqData().
| bool transform_mode_use_local_origins | ( | const TransInfo * | t | ) |
Definition at line 53 of file transform_convert.cc.
References ELEM, TransInfo::mode, TFM_RESIZE, TFM_ROTATION, and TFM_TRACKBALL.
Referenced by createTransCurveVerts(), createTransGPencil_curves(), and transform_around_single_fallback_ex().