|
Blender V4.3
|
#include "MEM_guardedalloc.h"#include "BLI_array.hh"#include "BLI_blenlib.h"#include "BLI_math_rotation.h"#include "BLT_translation.hh"#include "DNA_anim_types.h"#include "DNA_armature_types.h"#include "DNA_object_types.h"#include "DNA_scene_types.h"#include "DNA_vec_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 "UI_resources.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 |
Macros | |
| #define | SLIDE_PIXEL_DISTANCE (300 * U.pixelsize) |
| #define | OVERSHOOT_RANGE_DELTA 0.2f |
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_SIZE , 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.
| #define OVERSHOOT_RANGE_DELTA 0.2f |
Definition at line 79 of file pose_slide.cc.
| #define SLIDE_PIXEL_DISTANCE (300 * U.pixelsize) |
Definition at line 78 of file pose_slide.cc.
Definition at line 1682 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_SIZE | |
| PS_TFM_BBONE_SHAPE | |
| PS_TFM_PROPS | |
Definition at line 104 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 92 of file pose_slide.cc.
Definition at line 1749 of file pose_slide.cc.
References FCurve::bezt, LISTBASE_FOREACH, max_ff(), FCurve::totvert, and BezTriple::vec.
Referenced by pose_propagate_exec().
Definition at line 1726 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 1777 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 1803 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 1765 of file pose_slide.cc.
References BLI_addtail(), BLI_freelistN(), ED_markers_make_cfra_list(), FrameLink::frame, LISTBASE_FOREACH, 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 313 of file pose_slide.cc.
References tPoseSlideOp::ob_data_array.
Referenced by pose_slide_apply_quat(), and pose_slide_apply_val().
| void POSE_OT_blend_to_neighbors | ( | wmOperatorType * | ot | ) |
Definition at line 1657 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, ot, wmOperatorType::poll, 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 1550 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, ot, wmOperatorType::poll, 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 1607 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, ot, wmOperatorType::poll, 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 1909 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, ot, wmOperatorType::poll, 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().
| void POSE_OT_push | ( | wmOperatorType * | ot | ) |
Definition at line 1433 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, ot, wmOperatorType::poll, 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 1490 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, ot, wmOperatorType::poll, 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 1825 of file pose_slide.cc.
References BKE_report(), BKE_scene_frame_get(), BLI_addtail(), BLI_freelistN(), BLI_listbase_is_empty(), 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 791 of file pose_slide.cc.
References BKE_nla_tweakedit_remap(), tPoseSlideOp::channels, ELEM, bPoseChannel::eul, bPoseChannel::flag, LISTBASE_FOREACH, bPoseChannel::loc, tPoseSlideOp::next_frame, NLATIME_CONVERT_UNMAP, tPoseSlideOp::ob_data_array, tPoseSlideOp::pfLinks, POSE_BBONE_SHAPE, POSE_LOC, POSE_ROT, POSE_SIZE, pose_slide_apply_props(), pose_slide_apply_quat(), pose_slide_apply_vec3(), pose_slide_refresh(), tPoseSlideOp::prev_frame, PS_TFM_ALL, PS_TFM_BBONE_SHAPE, PS_TFM_LOC, PS_TFM_PROPS, PS_TFM_ROT, PS_TFM_SIZE, ROT_MODE_AXISANGLE, bPoseChannel::rotmode, and bPoseChannel::size.
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 450 of file pose_slide.cc.
References FCurve::array_index, tPChanFCurveLink::fcurves, float, 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(), 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 578 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, float, 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 334 of file pose_slide.cc.
References tPoseSlideOp::current_frame, ED_slider_factor_get(), evaluate_fcurve(), fabs(), float, 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 415 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 865 of file pose_slide.cc.
References 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 1534 of file pose_slide.cc.
References 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 1515 of file pose_slide.cc.
References 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 1641 of file pose_slide.cc.
References 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 1629 of file pose_slide.cc.
References 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 1591 of file pose_slide.cc.
References 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 1576 of file pose_slide.cc.
References 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 1313 of file pose_slide.cc.
References 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 887 of file pose_slide.cc.
References tPoseSlideOp::area, tPoseSlideOp::axislock, tPoseSlideOp::channels, ED_area_status_text(), ED_slider_status_string_get(), ED_workspace_status_text(), ELEM, hasNumInput(), IFACE_, tPoseSlideOp::mode, tPoseSlideOp::num, NUM_STR_REP_LEN, outputNumInput(), 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_SIZE, tPoseSlideOp::scene, tPoseSlideOp::slider, SNPRINTF, STRNCPY, and UI_MAX_DRAW_STR.
Referenced by pose_slide_invoke_common(), and pose_slide_modal().
|
static |
Common code for exec() methods.
Definition at line 1322 of file pose_slide.cc.
References 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 269 of file pose_slide.cc.
References tPoseSlideOp::area, 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, and ScrArea::spacedata.
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 197 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_unique_data(), 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(), bPose::flag, NumInput::idx_max, 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, tPoseSlideOp::pfLinks, Object::pose, POSE_LOCKED, poseAnim_mapping_get(), poseAnim_object_get(), tPoseSlideObject::prev_frame, tPoseSlideOp::prev_frame, wmOperator::ptr, Scene::r, tPoseSlideOp::region, blender::Array< T, InlineBufferCapacity, Allocator >::reinitialize(), RNA_enum_get(), RNA_float_get(), RNA_int_get(), tPoseSlideOp::scene, tPoseSlideOp::slider, 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 981 of file pose_slide.cc.
References tPoseSlideOp::area, BKE_nla_tweakedit_remap(), BKE_report(), 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(), ListBase::first, View3DOverlay::flag, float, tPoseSlideOp::keylist, LISTBASE_FOREACH, tPoseSlideOp::mode, ActKeyColumn::next, tPoseSlideOp::next_frame, NLATIME_CONVERT_UNMAP, tPoseSlideOp::ob_data_array, OPERATOR_CANCELLED, OPERATOR_RUNNING_MODAL, View3D::overlay, tPoseSlideOp::overlay_flag, 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, tPoseSlideOp::prev_frame, wmOperator::ptr, wmOperator::reports, RNA_int_set(), RPT_ERROR, tPoseSlideOp::slider, ScrArea::spacedata, 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 1127 of file pose_slide.cc.
References applyNumInput(), tPoseSlideOp::area, CTX_wm_window(), wmOperator::customdata, ED_area_status_text(), 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_SIZE, wmOperator::ptr, tPoseSlideOp::region, RIGHTMOUSE, RNA_float_set(), tPoseSlideOp::slider, ScrArea::spacedata, 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 1344 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(), 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(), and POSE_OT_relax().
|
static |
Operator exec() callback - for push.
Definition at line 1417 of file pose_slide.cc.
References 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 1402 of file pose_slide.cc.
References 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 299 of file pose_slide.cc.
References tPoseSlideOp::ob_data_array, poseAnim_mapping_refresh(), and tPoseSlideOp::scene.
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 1474 of file pose_slide.cc.
References 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 1459 of file pose_slide.cc.
References 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 874 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 734 of file pose_slide.cc.
References tPoseSlideOp::channels, ELEM, bPoseChannel::eul, bPoseChannel::flag, LISTBASE_FOREACH, bPoseChannel::loc, tPoseSlideOp::pfLinks, POSE_BBONE_SHAPE, POSE_LOC, POSE_ROT, POSE_SIZE, 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_SIZE, bPoseChannel::quat, ROT_MODE_AXISANGLE, bPoseChannel::rotmode, and bPoseChannel::size.
Referenced by pose_slide_exec_common(), pose_slide_invoke_common(), and pose_slide_modal().
|
static |
Definition at line 715 of file pose_slide.cc.
References ED_slider_factor_get(), and tPoseSlideOp::slider.
Referenced by pose_slide_rest_pose_apply().
|
static |
Definition at line 700 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 1098 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 1075 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 1705 of file pose_slide.cc.
References FCurve::bezt, evaluate_fcurve(), INSERTKEY_NOFLAGS, and LISTBASE_FOREACH.
Referenced by pose_propagate_exec().
|
static |
Definition at line 186 of file pose_slide.cc.
Referenced by pose_slide_opdef_properties().
|
static |
Property enum for ePoseSlide_Channels.
Definition at line 171 of file pose_slide.cc.
Referenced by pose_slide_opdef_properties().