|
Blender V4.5
|
#include "MEM_guardedalloc.h"#include "BLI_array.hh"#include "BLI_listbase.h"#include "BLI_math_rotation.h"#include "BLI_string.h"#include "BLT_translation.hh"#include "DNA_anim_types.h"#include "DNA_object_types.h"#include "DNA_scene_types.h"#include "BKE_fcurve.hh"#include "BKE_nla.hh"#include "BKE_context.hh"#include "BKE_layer.hh"#include "BKE_report.hh"#include "BKE_scene.hh"#include "BKE_unit.hh"#include "RNA_access.hh"#include "RNA_define.hh"#include "RNA_prototypes.hh"#include "WM_api.hh"#include "WM_types.hh"#include "UI_interface.hh"#include "ED_keyframes_edit.hh"#include "ED_keyframes_keylist.hh"#include "ED_markers.hh"#include "ED_numinput.hh"#include "ED_screen.hh"#include "ED_util.hh"#include "ANIM_fcurve.hh"#include "armature_intern.hh"Go to the source code of this file.
Classes | |
| struct | tPoseSlideObject |
| struct | tPoseSlideOp |
| struct | FrameLink |
Enumerations | |
| enum | ePoseSlide_AxisLock { PS_LOCK_X = (1 << 0) , PS_LOCK_Y = (1 << 1) , PS_LOCK_Z = (1 << 2) } |
| enum | ePoseSlide_Modes { POSESLIDE_PUSH = 0 , POSESLIDE_RELAX , POSESLIDE_BREAKDOWN , POSESLIDE_BLEND_REST , POSESLIDE_BLEND } |
| enum | ePoseSlide_Channels { PS_TFM_ALL = 0 , PS_TFM_LOC , PS_TFM_ROT , PS_TFM_SCALE , PS_TFM_BBONE_SHAPE , PS_TFM_PROPS } |
| enum | ePosePropagate_Termination { POSE_PROPAGATE_LAST_KEY = 0 , POSE_PROPAGATE_NEXT_KEY , POSE_PROPAGATE_BEFORE_FRAME , POSE_PROPAGATE_BEFORE_END , POSE_PROPAGATE_SELECTED_KEYS , POSE_PROPAGATE_SELECTED_MARKERS } |
Variables | |
| static const EnumPropertyItem | prop_channels_types [] |
| static const EnumPropertyItem | prop_axis_lock_types [] |
Push & Relax, Breakdowner
These tools provide the animator with various capabilities for interactively controlling the spacing of poses, but also for 'pushing' and/or 'relaxing' extremes as they see fit.
Propagate
This tool copies elements of the selected pose to successive keyframes, allowing the animator to go back and modify the poses for some "static" pose controls, without having to repeatedly doing a "next paste" dance.
Pose Sculpting (TODO)
This is yet to be implemented, but the idea here is to use sculpting techniques to make it easier to pose rigs by allowing rigs to be manipulated using a familiar paint-based interface.
Definition in file pose_slide.cc.
Definition at line 1679 of file pose_slide.cc.
| enum ePoseSlide_AxisLock |
| enum ePoseSlide_Channels |
Transforms/Channels to Affect.
| Enumerator | |
|---|---|
| PS_TFM_ALL | |
| PS_TFM_LOC | |
| PS_TFM_ROT | |
| PS_TFM_SCALE | |
| PS_TFM_BBONE_SHAPE | |
| PS_TFM_PROPS | |
Definition at line 98 of file pose_slide.cc.
| enum ePoseSlide_Modes |
Pose Sliding Modes.
| Enumerator | |
|---|---|
| POSESLIDE_PUSH | Exaggerate the pose. |
| POSESLIDE_RELAX | soften the pose. |
| POSESLIDE_BREAKDOWN | Slide between the endpoint poses, finding a 'soft' spot. |
| POSESLIDE_BLEND_REST | |
| POSESLIDE_BLEND | |
Definition at line 86 of file pose_slide.cc.
|
static |
Definition at line 1746 of file pose_slide.cc.
References FCurve::bezt, find_last_key(), LISTBASE_FOREACH, max_ff(), FCurve::totvert, and BezTriple::vec.
Referenced by find_last_key(), and pose_propagate_exec().
|
static |
Definition at line 1723 of file pose_slide.cc.
References FCurve::bezt, BKE_fcurve_bezt_binarysearch_index(), find_next_key(), FLT_MAX, LISTBASE_FOREACH, min_ff(), min_ii(), FCurve::totvert, and BezTriple::vec.
Referenced by find_next_key(), and pose_propagate_exec().
|
static |
Definition at line 1774 of file pose_slide.cc.
References BLI_addtail(), ED_keylist_create(), ED_keylist_free(), ED_keylist_listbase(), fcurve_to_keylist(), FrameLink::frame, get_keyed_frames_in_range(), LISTBASE_FOREACH, and MEM_callocN().
Referenced by get_keyed_frames_in_range(), and pose_propagate_exec().
Definition at line 1800 of file pose_slide.cc.
References BLI_addtail(), ED_keylist_create(), ED_keylist_free(), ED_keylist_listbase(), fcurve_to_keylist(), FLT_MAX, FrameLink::frame, get_selected_frames(), LISTBASE_FOREACH, and MEM_callocN().
Referenced by get_selected_frames(), and pose_propagate_exec().
Definition at line 1762 of file pose_slide.cc.
References BLI_addtail(), BLI_freelistN(), ED_markers_make_cfra_list(), FrameLink::frame, get_selected_marker_positions(), LISTBASE_FOREACH, Scene::markers, and MEM_callocN().
Referenced by get_selected_marker_positions(), and pose_propagate_exec().
|
static |
Although this lookup is not ideal, we won't be dealing with a lot of objects at a given time. But if it comes to that we can instead store prev/next frame in the tPChanFCurveLink.
Definition at line 317 of file pose_slide.cc.
References tPoseSlideObject::next_frame, tPoseSlideObject::ob, tPoseSlideOp::ob_data_array, pose_frame_range_from_object_get(), and tPoseSlideObject::prev_frame.
Referenced by pose_frame_range_from_object_get(), pose_slide_apply_quat(), and pose_slide_apply_val().
| void POSE_OT_blend_to_neighbors | ( | wmOperatorType * | ot | ) |
Definition at line 1654 of file pose_slide.cc.
References wmOperatorType::cancel, wmOperatorType::description, ED_operator_posemode(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::invoke, wmOperatorType::modal, wmOperatorType::name, OPTYPE_BLOCKING, OPTYPE_GRAB_CURSOR_X, OPTYPE_REGISTER, OPTYPE_UNDO, wmOperatorType::poll, POSE_OT_blend_to_neighbors(), pose_slide_blend_to_neighbors_exec(), pose_slide_blend_to_neighbors_invoke(), pose_slide_cancel(), pose_slide_modal(), and pose_slide_opdef_properties().
Referenced by ED_operatortypes_armature(), and POSE_OT_blend_to_neighbors().
| void POSE_OT_blend_with_rest | ( | wmOperatorType * | ot | ) |
Definition at line 1543 of file pose_slide.cc.
References wmOperatorType::cancel, wmOperatorType::description, ED_operator_posemode(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::invoke, wmOperatorType::modal, wmOperatorType::name, OPTYPE_BLOCKING, OPTYPE_GRAB_CURSOR_X, OPTYPE_REGISTER, OPTYPE_UNDO, wmOperatorType::poll, POSE_OT_blend_with_rest(), pose_slide_blend_rest_exec(), pose_slide_blend_rest_invoke(), pose_slide_cancel(), pose_slide_modal(), and pose_slide_opdef_properties().
Referenced by ED_operatortypes_armature(), and POSE_OT_blend_with_rest().
| void POSE_OT_breakdown | ( | wmOperatorType * | ot | ) |
Definition at line 1602 of file pose_slide.cc.
References wmOperatorType::cancel, wmOperatorType::description, ED_operator_posemode(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::invoke, wmOperatorType::modal, wmOperatorType::name, OPTYPE_BLOCKING, OPTYPE_GRAB_CURSOR_X, OPTYPE_REGISTER, OPTYPE_UNDO, wmOperatorType::poll, POSE_OT_breakdown(), pose_slide_breakdown_exec(), pose_slide_breakdown_invoke(), pose_slide_cancel(), pose_slide_modal(), and pose_slide_opdef_properties().
Referenced by ED_operatortypes_armature(), and POSE_OT_breakdown().
| void POSE_OT_propagate | ( | wmOperatorType * | ot | ) |
Definition at line 1906 of file pose_slide.cc.
References wmOperatorType::description, ED_operator_posemode(), wmOperatorType::exec, wmOperatorType::flag, FLT_MAX, wmOperatorType::idname, wmOperatorType::name, OPTYPE_REGISTER, OPTYPE_UNDO, wmOperatorType::poll, POSE_OT_propagate(), POSE_PROPAGATE_BEFORE_END, POSE_PROPAGATE_BEFORE_FRAME, pose_propagate_exec(), POSE_PROPAGATE_LAST_KEY, POSE_PROPAGATE_NEXT_KEY, POSE_PROPAGATE_SELECTED_KEYS, POSE_PROPAGATE_SELECTED_MARKERS, wmOperatorType::prop, RNA_def_enum(), RNA_def_float(), and wmOperatorType::srna.
Referenced by ED_operatortypes_armature(), and POSE_OT_propagate().
| void POSE_OT_push | ( | wmOperatorType * | ot | ) |
Definition at line 1424 of file pose_slide.cc.
References wmOperatorType::cancel, wmOperatorType::description, ED_operator_posemode(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::invoke, wmOperatorType::modal, wmOperatorType::name, OPTYPE_BLOCKING, OPTYPE_GRAB_CURSOR_X, OPTYPE_REGISTER, OPTYPE_UNDO, wmOperatorType::poll, POSE_OT_push(), pose_slide_cancel(), pose_slide_modal(), pose_slide_opdef_properties(), pose_slide_push_exec(), and pose_slide_push_invoke().
Referenced by ED_operatortypes_armature(), and POSE_OT_push().
| void POSE_OT_relax | ( | wmOperatorType * | ot | ) |
Definition at line 1481 of file pose_slide.cc.
References wmOperatorType::cancel, wmOperatorType::description, ED_operator_posemode(), wmOperatorType::exec, wmOperatorType::flag, wmOperatorType::idname, wmOperatorType::invoke, wmOperatorType::modal, wmOperatorType::name, OPTYPE_BLOCKING, OPTYPE_GRAB_CURSOR_X, OPTYPE_REGISTER, OPTYPE_UNDO, wmOperatorType::poll, POSE_OT_relax(), pose_slide_cancel(), pose_slide_modal(), pose_slide_opdef_properties(), pose_slide_relax_exec(), and pose_slide_relax_invoke().
Referenced by ED_operatortypes_armature(), and POSE_OT_relax().
|
static |
Definition at line 1822 of file pose_slide.cc.
References BKE_report(), BKE_scene_frame_get(), BLI_addtail(), BLI_freelistN(), BLI_listbase_is_empty(), C, CTX_data_scene(), CTX_data_view_layer(), CTX_wm_view3d(), find_last_key(), find_next_key(), FLT_MAX, FOREACH_OBJECT_IN_MODE_BEGIN, FOREACH_OBJECT_IN_MODE_END, FrameLink::frame, get_keyed_frames_in_range(), get_selected_frames(), get_selected_marker_positions(), MEM_callocN(), OB_ARMATURE, OB_MODE_POSE, OPERATOR_CANCELLED, OPERATOR_FINISHED, POSE_PROPAGATE_BEFORE_END, POSE_PROPAGATE_BEFORE_FRAME, pose_propagate_exec(), POSE_PROPAGATE_LAST_KEY, POSE_PROPAGATE_NEXT_KEY, POSE_PROPAGATE_SELECTED_KEYS, POSE_PROPAGATE_SELECTED_MARKERS, poseAnim_mapping_free(), poseAnim_mapping_get(), poseAnim_mapping_refresh(), propagate_curve_values(), wmOperator::ptr, wmOperator::reports, RNA_enum_get(), RNA_float_get(), and RPT_ERROR.
Referenced by POSE_OT_propagate(), and pose_propagate_exec().
|
static |
apply() - perform the pose sliding based on weighting various poses.
Definition at line 795 of file pose_slide.cc.
References Object::adt, BKE_nla_tweakedit_remap(), C, tPoseSlideOp::channels, ELEM, bPoseChannel::eul, bPoseChannel::flag, LISTBASE_FOREACH, bPoseChannel::loc, tPoseSlideObject::next_frame, tPoseSlideOp::next_frame, NLATIME_CONVERT_UNMAP, tPoseSlideObject::ob, tPoseSlideOp::ob_data_array, tPoseSlideOp::pfLinks, POSE_BBONE_SHAPE, POSE_LOC, POSE_ROT, POSE_SCALE, pose_slide_apply(), pose_slide_apply_props(), pose_slide_apply_quat(), pose_slide_apply_vec3(), pose_slide_refresh(), tPoseSlideObject::prev_frame, tPoseSlideOp::prev_frame, PS_TFM_ALL, PS_TFM_BBONE_SHAPE, PS_TFM_LOC, PS_TFM_PROPS, PS_TFM_ROT, PS_TFM_SCALE, ROT_MODE_AXISANGLE, bPoseChannel::rotmode, bPoseChannel::scale, and tPoseSlideObject::valid.
Referenced by pose_slide_apply(), pose_slide_exec_common(), pose_slide_invoke_common(), and pose_slide_modal().
|
static |
Helper for apply() - perform sliding for custom properties or bbone properties.
Definition at line 454 of file pose_slide.cc.
References FCurve::array_index, tPChanFCurveLink::fcurves, len(), LISTBASE_FOREACH, tPChanFCurveLink::ob, tPChanFCurveLink::pchan, tPChanFCurveLink::pchan_path, pose_slide_apply_props(), pose_slide_apply_val(), PROP_BOOLEAN, PROP_ENUM, PROP_FLOAT, PROP_INT, FCurve::rna_path, RNA_pointer_create_discrete(), RNA_property_array_check(), RNA_property_array_length(), RNA_property_boolean_get(), RNA_property_boolean_get_index(), RNA_property_boolean_set(), RNA_property_boolean_set_index(), RNA_property_float_get(), RNA_property_float_get_index(), RNA_property_float_set(), RNA_property_float_set_index(), RNA_property_int_get(), RNA_property_int_get_index(), RNA_property_int_set(), RNA_property_int_set_index(), RNA_property_type(), RNA_struct_find_property(), and UNLIKELY.
Referenced by pose_slide_apply(), and pose_slide_apply_props().
|
static |
Helper for apply() - perform sliding for quaternion rotations (using quat blending).
Definition at line 582 of file pose_slide.cc.
References FCurve::array_index, BLI_assert, BLI_assert_msg, BLI_sprintfN(), copy_qt_qt(), tPoseSlideOp::current_frame, LinkData::data, ED_slider_factor_get(), ELEM, evaluate_fcurve(), fabs(), tPChanFCurveLink::fcurves, interp_qt_qtqt(), MEM_freeN(), tPoseSlideOp::mode, tPoseSlideOp::next_frame, normalize_qt(), normalize_qt_qt(), tPChanFCurveLink::ob, tPChanFCurveLink::pchan, tPChanFCurveLink::pchan_path, pose_frame_range_from_object_get(), pose_slide_apply_quat(), poseAnim_mapping_getNextFCurve(), POSESLIDE_BLEND, POSESLIDE_BREAKDOWN, POSESLIDE_PUSH, POSESLIDE_RELAX, tPoseSlideOp::prev_frame, bPoseChannel::quat, quat_to_compatible_quat(), and tPoseSlideOp::slider.
Referenced by pose_slide_apply(), and pose_slide_apply_quat().
|
static |
Helper for apply() - perform sliding for some value.
Definition at line 338 of file pose_slide.cc.
References tPoseSlideOp::current_frame, ED_slider_factor_get(), evaluate_fcurve(), fabs(), interpf(), tPoseSlideOp::mode, tPoseSlideOp::next_frame, pose_frame_range_from_object_get(), pose_slide_apply_val(), POSESLIDE_BLEND, POSESLIDE_BLEND_REST, POSESLIDE_BREAKDOWN, POSESLIDE_PUSH, POSESLIDE_RELAX, tPoseSlideOp::prev_frame, and tPoseSlideOp::slider.
Referenced by pose_slide_apply_props(), pose_slide_apply_val(), and pose_slide_apply_vec3().
|
static |
Helper for apply() - perform sliding for some 3-element vector.
Definition at line 419 of file pose_slide.cc.
References FCurve::array_index, tPoseSlideOp::axislock, BLI_assert, BLI_sprintfN(), LinkData::data, tPChanFCurveLink::fcurves, lock, MEM_freeN(), tPChanFCurveLink::ob, tPChanFCurveLink::pchan_path, pose_slide_apply_val(), pose_slide_apply_vec3(), poseAnim_mapping_getNextFCurve(), PS_LOCK_X, PS_LOCK_Y, and PS_LOCK_Z.
Referenced by pose_slide_apply(), and pose_slide_apply_vec3().
|
static |
Perform auto-key-framing after changes were made + confirmed.
Definition at line 869 of file pose_slide.cc.
References C, tPoseSlideOp::current_frame, tPoseSlideOp::pfLinks, pose_slide_autoKeyframe(), poseAnim_mapping_autoKeyframe(), and tPoseSlideOp::scene.
Referenced by pose_slide_autoKeyframe(), pose_slide_exec_common(), and pose_slide_modal().
|
static |
Operator exec() - for push.
Definition at line 1527 of file pose_slide.cc.
References C, wmOperator::customdata, OPERATOR_CANCELLED, pose_slide_blend_rest_exec(), pose_slide_exec_common(), pose_slide_exit(), pose_slide_init(), and POSESLIDE_BLEND_REST.
Referenced by POSE_OT_blend_with_rest(), and pose_slide_blend_rest_exec().
|
static |
Operator invoke() - for 'blend with rest pose' mode.
Definition at line 1506 of file pose_slide.cc.
References C, wmOperator::customdata, ED_slider_factor_bounds_set(), ED_slider_factor_set(), OPERATOR_CANCELLED, pose_slide_blend_rest_invoke(), pose_slide_exit(), pose_slide_init(), pose_slide_invoke_common(), POSESLIDE_BLEND_REST, and tPoseSlideOp::slider.
Referenced by POSE_OT_blend_with_rest(), and pose_slide_blend_rest_invoke().
|
static |
Definition at line 1638 of file pose_slide.cc.
References C, wmOperator::customdata, OPERATOR_CANCELLED, pose_slide_blend_to_neighbors_exec(), pose_slide_exec_common(), pose_slide_exit(), pose_slide_init(), and POSESLIDE_BLEND.
Referenced by POSE_OT_blend_to_neighbors(), and pose_slide_blend_to_neighbors_exec().
|
static |
Definition at line 1624 of file pose_slide.cc.
References C, OPERATOR_CANCELLED, pose_slide_blend_to_neighbors_invoke(), pose_slide_exit(), pose_slide_init(), pose_slide_invoke_common(), and POSESLIDE_BLEND.
Referenced by POSE_OT_blend_to_neighbors(), and pose_slide_blend_to_neighbors_invoke().
|
static |
Operator exec() - for breakdown.
Definition at line 1586 of file pose_slide.cc.
References C, wmOperator::customdata, OPERATOR_CANCELLED, pose_slide_breakdown_exec(), pose_slide_exec_common(), pose_slide_exit(), pose_slide_init(), and POSESLIDE_BREAKDOWN.
Referenced by POSE_OT_breakdown(), and pose_slide_breakdown_exec().
|
static |
Operator invoke() - for 'breakdown' mode.
Definition at line 1569 of file pose_slide.cc.
References C, OPERATOR_CANCELLED, pose_slide_breakdown_invoke(), pose_slide_exit(), pose_slide_init(), pose_slide_invoke_common(), and POSESLIDE_BREAKDOWN.
Referenced by POSE_OT_breakdown(), and pose_slide_breakdown_invoke().
|
static |
Common code for cancel()
Definition at line 1304 of file pose_slide.cc.
References C, pose_slide_cancel(), and pose_slide_exit().
Referenced by POSE_OT_blend_to_neighbors(), POSE_OT_blend_with_rest(), POSE_OT_breakdown(), POSE_OT_push(), POSE_OT_relax(), and pose_slide_cancel().
|
static |
Draw percentage indicator in status-bar.
TODO: Include hints about locks here.
Definition at line 891 of file pose_slide.cc.
References tPoseSlideOp::area, tPoseSlideOp::axislock, C, tPoseSlideOp::channels, ED_slider_property_label_set(), ED_slider_status_get(), ELEM, ListBase::first, View3DOverlay::flag, hasNumInput(), IFACE_, WorkspaceStatus::item(), WorkspaceStatus::item_bool(), tPoseSlideOp::mode, tPoseSlideOp::num, NUM_STR_REP_LEN, outputNumInput(), View3D::overlay, pose_slide_draw_status(), POSESLIDE_BLEND, POSESLIDE_BREAKDOWN, POSESLIDE_PUSH, POSESLIDE_RELAX, PS_LOCK_X, PS_LOCK_Y, PS_LOCK_Z, PS_TFM_BBONE_SHAPE, PS_TFM_LOC, PS_TFM_PROPS, PS_TFM_ROT, PS_TFM_SCALE, tPoseSlideOp::scene, tPoseSlideOp::slider, SPACE_VIEW3D, ScrArea::spacedata, ScrArea::spacetype, Scene::unit, and V3D_OVERLAY_HIDE_BONES.
Referenced by pose_slide_draw_status(), pose_slide_invoke_common(), and pose_slide_modal().
|
static |
Common code for exec() methods.
Definition at line 1313 of file pose_slide.cc.
References C, ELEM, tPoseSlideOp::mode, OPERATOR_FINISHED, pose_slide_apply(), pose_slide_autoKeyframe(), pose_slide_exec_common(), pose_slide_exit(), pose_slide_rest_pose_apply(), and POSESLIDE_BLEND_REST.
Referenced by pose_slide_blend_rest_exec(), pose_slide_blend_to_neighbors_exec(), pose_slide_breakdown_exec(), pose_slide_exec_common(), pose_slide_push_exec(), and pose_slide_relax_exec().
|
static |
Exiting the operator (free data).
Definition at line 273 of file pose_slide.cc.
References tPoseSlideOp::area, C, wmOperator::customdata, ED_keylist_free(), ED_slider_destroy(), ListBase::first, View3DOverlay::flag, tPoseSlideOp::keylist, View3D::overlay, tPoseSlideOp::overlay_flag, tPoseSlideOp::pfLinks, pose_slide_exit(), poseAnim_mapping_free(), tPoseSlideOp::slider, SPACE_VIEW3D, ScrArea::spacedata, and ScrArea::spacetype.
Referenced by pose_slide_blend_rest_exec(), pose_slide_blend_rest_invoke(), pose_slide_blend_to_neighbors_exec(), pose_slide_blend_to_neighbors_invoke(), pose_slide_breakdown_exec(), pose_slide_breakdown_invoke(), pose_slide_cancel(), pose_slide_exec_common(), pose_slide_exit(), pose_slide_invoke_common(), pose_slide_modal(), pose_slide_push_exec(), pose_slide_push_invoke(), pose_slide_relax_exec(), and pose_slide_relax_invoke().
|
static |
Operator custom-data initialization.
Definition at line 192 of file pose_slide.cc.
References Object::adt, tPoseSlideOp::area, tPoseSlideOp::axislock, B_UNIT_NONE, BKE_nla_tweakedit_remap(), BKE_view_layer_array_from_objects_in_mode_params(), C, RenderData::cfra, tPoseSlideOp::channels, CTX_data_scene(), CTX_data_view_layer(), CTX_wm_area(), CTX_wm_region(), CTX_wm_view3d(), tPoseSlideOp::current_frame, wmOperator::customdata, ED_keylist_create(), ED_slider_create(), ED_slider_factor_set(), ListBase::first, bPose::flag, View3DOverlay::flag, NumInput::idx_max, blender::Vector< T, InlineBufferCapacity, Allocator >::index_range(), initNumInput(), tPoseSlideOp::keylist, tPoseSlideOp::mode, tPoseSlideObject::next_frame, tPoseSlideOp::next_frame, NLATIME_CONVERT_UNMAP, ObjectsInModeParams::no_dup_data, tPoseSlideOp::num, tPoseSlideObject::ob, tPoseSlideOp::ob_data_array, OB_MODE_POSE, ObjectsInModeParams::object_mode, View3D::overlay, tPoseSlideOp::overlay_flag, tPoseSlideOp::pfLinks, Object::pose, POSE_DO_UNLOCK, POSE_LOCKED, pose_slide_init(), poseAnim_mapping_get(), poseAnim_object_get(), tPoseSlideObject::prev_frame, tPoseSlideOp::prev_frame, wmOperator::ptr, Scene::r, tPoseSlideOp::region, Array< T, InlineBufferCapacity, Allocator >::reinitialize(), RNA_enum_get(), RNA_float_get(), RNA_int_get(), tPoseSlideOp::scene, blender::Vector< T, InlineBufferCapacity, Allocator >::size(), tPoseSlideOp::slider, SPACE_VIEW3D, ScrArea::spacedata, ScrArea::spacetype, NumInput::unit_type, and tPoseSlideObject::valid.
Referenced by pose_slide_blend_rest_exec(), pose_slide_blend_rest_invoke(), pose_slide_blend_to_neighbors_exec(), pose_slide_blend_to_neighbors_invoke(), pose_slide_breakdown_exec(), pose_slide_breakdown_invoke(), pose_slide_init(), pose_slide_push_exec(), pose_slide_push_invoke(), pose_slide_relax_exec(), and pose_slide_relax_invoke().
|
static |
Common code for invoke() methods.
Definition at line 974 of file pose_slide.cc.
References Object::adt, BKE_nla_tweakedit_remap(), BKE_report(), C, ActKeyColumn::cfra, CTX_wm_window(), tPoseSlideOp::current_frame, wmOperator::customdata, ED_keylist_find_exact(), ED_keylist_find_next(), ED_keylist_find_prev(), ED_keylist_is_empty(), ED_keylist_prepare_for_direct_access(), ED_slider_init(), ELEM, fcurve_to_keylist(), tPoseSlideOp::keylist, LISTBASE_FOREACH, tPoseSlideOp::mode, ActKeyColumn::next, tPoseSlideObject::next_frame, tPoseSlideOp::next_frame, NLATIME_CONVERT_UNMAP, tPoseSlideObject::ob, tPoseSlideOp::ob_data_array, OPERATOR_CANCELLED, OPERATOR_RUNNING_MODAL, tPoseSlideOp::pfLinks, pose_slide_apply(), pose_slide_draw_status(), pose_slide_exit(), pose_slide_invoke_common(), pose_slide_refresh(), pose_slide_rest_pose_apply(), POSESLIDE_BLEND_REST, ActKeyColumn::prev, tPoseSlideObject::prev_frame, tPoseSlideOp::prev_frame, wmOperator::ptr, wmOperator::reports, RNA_int_set(), RPT_ERROR, tPoseSlideOp::slider, tPoseSlideObject::valid, WM_CURSOR_EW_SCROLL, WM_cursor_modal_set(), and WM_event_add_modal_handler().
Referenced by pose_slide_blend_rest_invoke(), pose_slide_blend_to_neighbors_invoke(), pose_slide_breakdown_invoke(), pose_slide_invoke_common(), pose_slide_push_invoke(), and pose_slide_relax_invoke().
|
static |
Operator modal() callback.
Definition at line 1117 of file pose_slide.cc.
References applyNumInput(), tPoseSlideOp::area, C, CTX_wm_window(), wmOperator::customdata, ED_region_tag_redraw(), ED_slider_factor_get(), ED_slider_factor_set(), ED_slider_modal(), ED_workspace_status_text(), ELEM, EVT_BKEY, EVT_CKEY, EVT_ESCKEY, EVT_GKEY, EVT_HKEY, EVT_PADENTER, EVT_RETKEY, EVT_RKEY, EVT_SKEY, EVT_XKEY, EVT_YKEY, EVT_ZKEY, ListBase::first, View3DOverlay::flag, handleNumInput(), hasNumInput(), KM_PRESS, LEFTMOUSE, tPoseSlideOp::mode, MOUSEMOVE, tPoseSlideOp::num, OPERATOR_CANCELLED, OPERATOR_FINISHED, OPERATOR_PASS_THROUGH, OPERATOR_RUNNING_MODAL, View3D::overlay, pose_slide_apply(), pose_slide_autoKeyframe(), pose_slide_draw_status(), pose_slide_exit(), pose_slide_modal(), pose_slide_refresh(), pose_slide_reset(), pose_slide_rest_pose_apply(), pose_slide_toggle_axis_locks(), pose_slide_toggle_channels_mode(), POSESLIDE_BLEND_REST, PS_LOCK_X, PS_LOCK_Y, PS_LOCK_Z, PS_TFM_BBONE_SHAPE, PS_TFM_LOC, PS_TFM_PROPS, PS_TFM_ROT, PS_TFM_SCALE, wmOperator::ptr, tPoseSlideOp::region, RIGHTMOUSE, RNA_float_set(), tPoseSlideOp::slider, SPACE_VIEW3D, ScrArea::spacedata, ScrArea::spacetype, wmEvent::type, V3D_OVERLAY_HIDE_BONES, wmEvent::val, and WM_cursor_modal_restore().
Referenced by POSE_OT_blend_to_neighbors(), POSE_OT_blend_with_rest(), POSE_OT_breakdown(), POSE_OT_push(), POSE_OT_relax(), and pose_slide_modal().
|
static |
Common code for defining RNA properties.
Definition at line 1335 of file pose_slide.cc.
References MAXFRAME, MINAFRAME, pose_slide_opdef_properties(), prop_axis_lock_types, prop_channels_types, PROP_SKIP_SAVE, PS_TFM_ALL, RNA_def_enum(), RNA_def_float_factor(), RNA_def_int(), RNA_def_property_flag(), and wmOperatorType::srna.
Referenced by POSE_OT_blend_to_neighbors(), POSE_OT_blend_with_rest(), POSE_OT_breakdown(), POSE_OT_push(), POSE_OT_relax(), and pose_slide_opdef_properties().
|
static |
Operator exec() callback - for push.
Definition at line 1408 of file pose_slide.cc.
References C, wmOperator::customdata, OPERATOR_CANCELLED, pose_slide_exec_common(), pose_slide_exit(), pose_slide_init(), pose_slide_push_exec(), and POSESLIDE_PUSH.
Referenced by POSE_OT_push(), and pose_slide_push_exec().
|
static |
Operator invoke() callback for 'push from breakdown' mode.
Definition at line 1393 of file pose_slide.cc.
References C, OPERATOR_CANCELLED, pose_slide_exit(), pose_slide_init(), pose_slide_invoke_common(), pose_slide_push_invoke(), and POSESLIDE_PUSH.
Referenced by POSE_OT_push(), and pose_slide_push_invoke().
|
static |
Helper for apply() / reset() - refresh the data.
Definition at line 303 of file pose_slide.cc.
References C, tPoseSlideObject::ob, tPoseSlideOp::ob_data_array, pose_slide_refresh(), poseAnim_mapping_refresh(), tPoseSlideOp::scene, and tPoseSlideObject::valid.
Referenced by pose_slide_apply(), pose_slide_invoke_common(), pose_slide_modal(), pose_slide_refresh(), and pose_slide_rest_pose_apply().
|
static |
Operator exec() - for relax.
Definition at line 1465 of file pose_slide.cc.
References C, wmOperator::customdata, OPERATOR_CANCELLED, pose_slide_exec_common(), pose_slide_exit(), pose_slide_init(), pose_slide_relax_exec(), and POSESLIDE_RELAX.
Referenced by POSE_OT_relax(), and pose_slide_relax_exec().
|
static |
Invoke callback - for 'relax to breakdown' mode.
Definition at line 1450 of file pose_slide.cc.
References C, OPERATOR_CANCELLED, pose_slide_exit(), pose_slide_init(), pose_slide_invoke_common(), pose_slide_relax_invoke(), and POSESLIDE_RELAX.
Referenced by POSE_OT_relax(), and pose_slide_relax_invoke().
|
static |
Reset changes made to current pose.
Definition at line 878 of file pose_slide.cc.
References tPoseSlideOp::pfLinks, pose_slide_reset(), and poseAnim_mapping_reset().
Referenced by pose_slide_modal(), and pose_slide_reset().
|
static |
apply() - perform the pose sliding between the current pose and the rest pose.
Definition at line 738 of file pose_slide.cc.
References C, tPoseSlideOp::channels, ELEM, bPoseChannel::eul, bPoseChannel::flag, LISTBASE_FOREACH, bPoseChannel::loc, tPoseSlideOp::pfLinks, POSE_BBONE_SHAPE, POSE_LOC, POSE_ROT, POSE_SCALE, pose_slide_refresh(), pose_slide_rest_pose_apply(), pose_slide_rest_pose_apply_other_rot(), pose_slide_rest_pose_apply_vec3(), PS_TFM_ALL, PS_TFM_BBONE_SHAPE, PS_TFM_LOC, PS_TFM_PROPS, PS_TFM_ROT, PS_TFM_SCALE, bPoseChannel::quat, ROT_MODE_AXISANGLE, bPoseChannel::rotmode, and bPoseChannel::scale.
Referenced by pose_slide_exec_common(), pose_slide_invoke_common(), pose_slide_modal(), and pose_slide_rest_pose_apply().
|
static |
Definition at line 719 of file pose_slide.cc.
References ED_slider_factor_get(), pose_slide_rest_pose_apply_other_rot(), and tPoseSlideOp::slider.
Referenced by pose_slide_rest_pose_apply(), and pose_slide_rest_pose_apply_other_rot().
|
static |
Definition at line 704 of file pose_slide.cc.
References tPoseSlideOp::axislock, ED_slider_factor_get(), lock, pose_slide_rest_pose_apply_vec3(), PS_LOCK_X, PS_LOCK_Y, PS_LOCK_Z, and tPoseSlideOp::slider.
Referenced by pose_slide_rest_pose_apply(), and pose_slide_rest_pose_apply_vec3().
|
static |
Handle an event to toggle axis locks - returns whether any change in state is needed.
Definition at line 1088 of file pose_slide.cc.
References tPoseSlideOp::axislock, tPoseSlideOp::channels, ELEM, pose_slide_toggle_axis_locks(), PS_TFM_ALL, PS_TFM_BBONE_SHAPE, PS_TFM_PROPS, wmOperator::ptr, and RNA_enum_set().
Referenced by pose_slide_modal(), and pose_slide_toggle_axis_locks().
|
static |
Handle an event to toggle channels mode.
Definition at line 1065 of file pose_slide.cc.
References tPoseSlideOp::axislock, tPoseSlideOp::channels, pose_slide_toggle_channels_mode(), PS_TFM_ALL, wmOperator::ptr, and RNA_enum_set().
Referenced by pose_slide_modal(), and pose_slide_toggle_channels_mode().
|
static |
Definition at line 1702 of file pose_slide.cc.
References FCurve::bezt, evaluate_fcurve(), blender::animrig::get_keyframe_settings(), blender::animrig::insert_vert_fcurve(), INSERTKEY_NOFLAGS, LISTBASE_FOREACH, and propagate_curve_values().
Referenced by pose_propagate_exec(), and propagate_curve_values().
|
static |
Definition at line 181 of file pose_slide.cc.
Referenced by pose_slide_opdef_properties().
|
static |
Property enum for ePoseSlide_Channels.
Definition at line 165 of file pose_slide.cc.
Referenced by pose_slide_opdef_properties().