|
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, LISTBASE_FOREACH, max_ff(), FCurve::totvert, and BezTriple::vec.
Referenced by pose_propagate_exec().
|
static |
Definition at line 1723 of file pose_slide.cc.
References FCurve::bezt, BKE_fcurve_bezt_binarysearch_index(), FLT_MAX, LISTBASE_FOREACH, min_ff(), min_ii(), FCurve::totvert, and BezTriple::vec.
Referenced by 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, LISTBASE_FOREACH, and MEM_callocN().
Referenced by 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, LISTBASE_FOREACH, and MEM_callocN().
Referenced by pose_propagate_exec().
Definition at line 1762 of file pose_slide.cc.
References BLI_addtail(), BLI_freelistN(), ED_markers_make_cfra_list(), FrameLink::frame, LISTBASE_FOREACH, Scene::markers, and MEM_callocN().
Referenced by 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, and tPoseSlideObject::prev_frame.
Referenced by 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 ED_operator_posemode(), OPTYPE_BLOCKING, OPTYPE_GRAB_CURSOR_X, OPTYPE_REGISTER, OPTYPE_UNDO, ot, 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().
| void POSE_OT_blend_with_rest | ( | wmOperatorType * | ot | ) |
Definition at line 1543 of file pose_slide.cc.
References ED_operator_posemode(), OPTYPE_BLOCKING, OPTYPE_GRAB_CURSOR_X, OPTYPE_REGISTER, OPTYPE_UNDO, ot, 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().
| void POSE_OT_breakdown | ( | wmOperatorType * | ot | ) |
Definition at line 1602 of file pose_slide.cc.
References ED_operator_posemode(), OPTYPE_BLOCKING, OPTYPE_GRAB_CURSOR_X, OPTYPE_REGISTER, OPTYPE_UNDO, ot, pose_slide_breakdown_exec(), pose_slide_breakdown_invoke(), pose_slide_cancel(), pose_slide_modal(), and pose_slide_opdef_properties().
Referenced by ED_operatortypes_armature().
| void POSE_OT_propagate | ( | wmOperatorType * | ot | ) |
Definition at line 1906 of file pose_slide.cc.
References ED_operator_posemode(), FLT_MAX, OPTYPE_REGISTER, OPTYPE_UNDO, ot, 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, RNA_def_enum(), and RNA_def_float().
Referenced by ED_operatortypes_armature().
| void POSE_OT_push | ( | wmOperatorType * | ot | ) |
Definition at line 1424 of file pose_slide.cc.
References ED_operator_posemode(), OPTYPE_BLOCKING, OPTYPE_GRAB_CURSOR_X, OPTYPE_REGISTER, OPTYPE_UNDO, ot, pose_slide_cancel(), pose_slide_modal(), pose_slide_opdef_properties(), pose_slide_push_exec(), and pose_slide_push_invoke().
Referenced by ED_operatortypes_armature().
| void POSE_OT_relax | ( | wmOperatorType * | ot | ) |
Definition at line 1481 of file pose_slide.cc.
References ED_operator_posemode(), OPTYPE_BLOCKING, OPTYPE_GRAB_CURSOR_X, OPTYPE_REGISTER, OPTYPE_UNDO, ot, pose_slide_cancel(), pose_slide_modal(), pose_slide_opdef_properties(), pose_slide_relax_exec(), and pose_slide_relax_invoke().
Referenced by ED_operatortypes_armature().
|
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_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().
|
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_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_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_val(), PROP_BOOLEAN, PROP_ENUM, PROP_FLOAT, PROP_INT, ptr, 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().
|
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(), 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().
|
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(), POSESLIDE_BLEND, POSESLIDE_BLEND_REST, POSESLIDE_BREAKDOWN, POSESLIDE_PUSH, POSESLIDE_RELAX, tPoseSlideOp::prev_frame, and tPoseSlideOp::slider.
Referenced by pose_slide_apply_props(), 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(), poseAnim_mapping_getNextFCurve(), PS_LOCK_X, PS_LOCK_Y, and PS_LOCK_Z.
Referenced by pose_slide_apply().
|
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, poseAnim_mapping_autoKeyframe(), and tPoseSlideOp::scene.
Referenced by 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_exec_common(), pose_slide_exit(), pose_slide_init(), and POSESLIDE_BLEND_REST.
Referenced by POSE_OT_blend_with_rest().
|
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_exit(), pose_slide_init(), pose_slide_invoke_common(), POSESLIDE_BLEND_REST, and tPoseSlideOp::slider.
Referenced by POSE_OT_blend_with_rest().
|
static |
Definition at line 1638 of file pose_slide.cc.
References C, wmOperator::customdata, OPERATOR_CANCELLED, pose_slide_exec_common(), pose_slide_exit(), pose_slide_init(), and POSESLIDE_BLEND.
Referenced by POSE_OT_blend_to_neighbors().
|
static |
Definition at line 1624 of file pose_slide.cc.
References C, OPERATOR_CANCELLED, pose_slide_exit(), pose_slide_init(), pose_slide_invoke_common(), and POSESLIDE_BLEND.
Referenced by POSE_OT_blend_to_neighbors().
|
static |
Operator exec() - for breakdown.
Definition at line 1586 of file pose_slide.cc.
References C, wmOperator::customdata, OPERATOR_CANCELLED, pose_slide_exec_common(), pose_slide_exit(), pose_slide_init(), and POSESLIDE_BREAKDOWN.
Referenced by POSE_OT_breakdown().
|
static |
Operator invoke() - for 'breakdown' mode.
Definition at line 1569 of file pose_slide.cc.
References C, OPERATOR_CANCELLED, pose_slide_exit(), pose_slide_init(), pose_slide_invoke_common(), and POSESLIDE_BREAKDOWN.
Referenced by POSE_OT_breakdown().
|
static |
Common code for cancel()
Definition at line 1304 of file pose_slide.cc.
References C, and pose_slide_exit().
Referenced by POSE_OT_blend_to_neighbors(), POSE_OT_blend_with_rest(), POSE_OT_breakdown(), POSE_OT_push(), and POSE_OT_relax().
|
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, 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_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_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_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, 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_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, tPoseSlideOp::num, tPoseSlideObject::ob, tPoseSlideOp::ob_data_array, OB_MODE_POSE, View3D::overlay, tPoseSlideOp::overlay_flag, params, tPoseSlideOp::pfLinks, Object::pose, POSE_DO_UNLOCK, POSE_LOCKED, 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_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_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_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_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(), and POSE_OT_relax().
|
static |
Common code for defining RNA properties.
Definition at line 1335 of file pose_slide.cc.
References MAXFRAME, MINAFRAME, ot, prop_axis_lock_types, prop_channels_types, PROP_SKIP_SAVE, PS_TFM_ALL, RNA_def_enum(), RNA_def_float_factor(), RNA_def_int(), and RNA_def_property_flag().
Referenced by POSE_OT_blend_to_neighbors(), POSE_OT_blend_with_rest(), POSE_OT_breakdown(), POSE_OT_push(), and POSE_OT_relax().
|
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(), and POSESLIDE_PUSH.
Referenced by POSE_OT_push().
|
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(), and POSESLIDE_PUSH.
Referenced by POSE_OT_push().
|
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, poseAnim_mapping_refresh(), tPoseSlideOp::scene, and tPoseSlideObject::valid.
Referenced by pose_slide_apply(), pose_slide_invoke_common(), pose_slide_modal(), 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(), and POSESLIDE_RELAX.
Referenced by POSE_OT_relax().
|
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(), and POSESLIDE_RELAX.
Referenced by POSE_OT_relax().
|
static |
Reset changes made to current pose.
Definition at line 878 of file pose_slide.cc.
References tPoseSlideOp::pfLinks, and poseAnim_mapping_reset().
Referenced by pose_slide_modal().
|
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_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(), and pose_slide_modal().
|
static |
Definition at line 719 of file pose_slide.cc.
References ED_slider_factor_get(), and tPoseSlideOp::slider.
Referenced by pose_slide_rest_pose_apply().
|
static |
Definition at line 704 of file pose_slide.cc.
References tPoseSlideOp::axislock, ED_slider_factor_get(), lock, PS_LOCK_X, PS_LOCK_Y, PS_LOCK_Z, and tPoseSlideOp::slider.
Referenced by pose_slide_rest_pose_apply().
|
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, PS_TFM_ALL, PS_TFM_BBONE_SHAPE, PS_TFM_PROPS, wmOperator::ptr, and RNA_enum_set().
Referenced by pose_slide_modal().
|
static |
Handle an event to toggle channels mode.
Definition at line 1065 of file pose_slide.cc.
References tPoseSlideOp::axislock, tPoseSlideOp::channels, PS_TFM_ALL, wmOperator::ptr, and RNA_enum_set().
Referenced by pose_slide_modal().
|
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, and LISTBASE_FOREACH.
Referenced by pose_propagate_exec().
|
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().