Blender V2.61 - r43446
Defines | Functions

keyframes_edit.c File Reference

#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <float.h>
#include "MEM_guardedalloc.h"
#include "BLI_blenlib.h"
#include "BLI_math.h"
#include "BLI_utildefines.h"
#include "DNA_anim_types.h"
#include "DNA_armature_types.h"
#include "DNA_camera_types.h"
#include "DNA_key_types.h"
#include "DNA_lamp_types.h"
#include "DNA_lattice_types.h"
#include "DNA_mesh_types.h"
#include "DNA_material_types.h"
#include "DNA_object_types.h"
#include "DNA_meta_types.h"
#include "DNA_node_types.h"
#include "DNA_particle_types.h"
#include "DNA_scene_types.h"
#include "DNA_space_types.h"
#include "DNA_world_types.h"
#include "BKE_fcurve.h"
#include "BKE_key.h"
#include "BKE_material.h"
#include "ED_anim_api.h"
#include "ED_keyframes_edit.h"
#include "ED_markers.h"

Go to the source code of this file.

Defines

#define KEYFRAME_OK_CHECKS(check)
#define KEY_CHECK_OK(_index)   IS_EQF(bezt->vec[_index][0], ked->f1)
#define KEY_CHECK_OK(_index)   ((bezt->vec[_index][0] > ked->f1) && (bezt->vec[_index][0] < ked->f2))
#define KEY_CHECK_OK(_index)   IS_EQF(bezt->vec[_index][1], ked->f1)
#define KEY_CHECK_OK(_index)   ((bezt->vec[_index][1] > ked->f1) && (bezt->vec[_index][1] < ked->f2))
#define KEY_CHECK_OK(_index)   BLI_in_rctf(ked->data, bezt->vec[_index][0], bezt->vec[_index][1])
#define ENSURE_HANDLES_MATCH(bezt)

Functions

short ANIM_fcurve_keyframes_loop (KeyframeEditData *ked, FCurve *fcu, KeyframeEditFunc key_ok, KeyframeEditFunc key_cb, FcuEditFunc fcu_cb)
static short agrp_keyframes_loop (KeyframeEditData *ked, bActionGroup *agrp, KeyframeEditFunc key_ok, KeyframeEditFunc key_cb, FcuEditFunc fcu_cb)
static short act_keyframes_loop (KeyframeEditData *ked, bAction *act, KeyframeEditFunc key_ok, KeyframeEditFunc key_cb, FcuEditFunc fcu_cb)
static short ob_keyframes_loop (KeyframeEditData *ked, bDopeSheet *ads, Object *ob, KeyframeEditFunc key_ok, KeyframeEditFunc key_cb, FcuEditFunc fcu_cb)
static short scene_keyframes_loop (KeyframeEditData *ked, bDopeSheet *ads, Scene *sce, KeyframeEditFunc key_ok, KeyframeEditFunc key_cb, FcuEditFunc fcu_cb)
static short summary_keyframes_loop (KeyframeEditData *ked, bAnimContext *ac, KeyframeEditFunc key_ok, KeyframeEditFunc key_cb, FcuEditFunc fcu_cb)
short ANIM_animchannel_keyframes_loop (KeyframeEditData *ked, bDopeSheet *ads, bAnimListElem *ale, KeyframeEditFunc key_ok, KeyframeEditFunc key_cb, FcuEditFunc fcu_cb)
short ANIM_animchanneldata_keyframes_loop (KeyframeEditData *ked, bDopeSheet *ads, void *data, int keytype, KeyframeEditFunc key_ok, KeyframeEditFunc key_cb, FcuEditFunc fcu_cb)
void ANIM_editkeyframes_refresh (bAnimContext *ac)
static short ok_bezier_frame (KeyframeEditData *ked, BezTriple *bezt)
static short ok_bezier_framerange (KeyframeEditData *ked, BezTriple *bezt)
static short ok_bezier_selected (KeyframeEditData *UNUSED(ked), BezTriple *bezt)
static short ok_bezier_value (KeyframeEditData *ked, BezTriple *bezt)
static short ok_bezier_valuerange (KeyframeEditData *ked, BezTriple *bezt)
static short ok_bezier_region (KeyframeEditData *ked, BezTriple *bezt)
KeyframeEditFunc ANIM_editkeyframes_ok (short mode)
short bezt_calc_average (KeyframeEditData *ked, BezTriple *bezt)
short bezt_to_cfraelem (KeyframeEditData *ked, BezTriple *bezt)
void bezt_remap_times (KeyframeEditData *ked, BezTriple *bezt)
static short snap_bezier_nearest (KeyframeEditData *UNUSED(ked), BezTriple *bezt)
static short snap_bezier_nearestsec (KeyframeEditData *ked, BezTriple *bezt)
static short snap_bezier_cframe (KeyframeEditData *ked, BezTriple *bezt)
static short snap_bezier_nearmarker (KeyframeEditData *ked, BezTriple *bezt)
static short snap_bezier_horizontal (KeyframeEditData *UNUSED(ked), BezTriple *bezt)
static short snap_bezier_value (KeyframeEditData *ked, BezTriple *bezt)
KeyframeEditFunc ANIM_editkeyframes_snap (short type)
static short mirror_bezier_cframe (KeyframeEditData *ked, BezTriple *bezt)
static short mirror_bezier_yaxis (KeyframeEditData *UNUSED(ked), BezTriple *bezt)
static short mirror_bezier_xaxis (KeyframeEditData *UNUSED(ked), BezTriple *bezt)
static short mirror_bezier_marker (KeyframeEditData *ked, BezTriple *bezt)
static short mirror_bezier_value (KeyframeEditData *ked, BezTriple *bezt)
KeyframeEditFunc ANIM_editkeyframes_mirror (short type)
static short set_bezier_auto (KeyframeEditData *UNUSED(ked), BezTriple *bezt)
static short set_bezier_auto_clamped (KeyframeEditData *UNUSED(ked), BezTriple *bezt)
static short set_bezier_vector (KeyframeEditData *UNUSED(ked), BezTriple *bezt)
static short bezier_isfree (KeyframeEditData *UNUSED(ked), BezTriple *bezt)
static short set_bezier_align (KeyframeEditData *UNUSED(ked), BezTriple *bezt)
static short set_bezier_free (KeyframeEditData *UNUSED(ked), BezTriple *bezt)
KeyframeEditFunc ANIM_editkeyframes_handles (short code)
static short set_bezt_constant (KeyframeEditData *UNUSED(ked), BezTriple *bezt)
static short set_bezt_linear (KeyframeEditData *UNUSED(ked), BezTriple *bezt)
static short set_bezt_bezier (KeyframeEditData *UNUSED(ked), BezTriple *bezt)
KeyframeEditFunc ANIM_editkeyframes_ipo (short code)
static short set_keytype_keyframe (KeyframeEditData *UNUSED(ked), BezTriple *bezt)
static short set_keytype_breakdown (KeyframeEditData *UNUSED(ked), BezTriple *bezt)
static short set_keytype_extreme (KeyframeEditData *UNUSED(ked), BezTriple *bezt)
static short set_keytype_jitter (KeyframeEditData *UNUSED(ked), BezTriple *bezt)
KeyframeEditFunc ANIM_editkeyframes_keytype (short code)
static short select_bezier_add (KeyframeEditData *ked, BezTriple *bezt)
static short select_bezier_subtract (KeyframeEditData *ked, BezTriple *bezt)
static short select_bezier_invert (KeyframeEditData *UNUSED(ked), BezTriple *bezt)
KeyframeEditFunc ANIM_editkeyframes_select (short selectmode)
static short selmap_build_bezier_more (KeyframeEditData *ked, BezTriple *bezt)
static short selmap_build_bezier_less (KeyframeEditData *ked, BezTriple *bezt)
KeyframeEditFunc ANIM_editkeyframes_buildselmap (short mode)
short bezt_selmap_flush (KeyframeEditData *ked, BezTriple *bezt)

Detailed Description

Definition in file keyframes_edit.c.


Define Documentation

#define ENSURE_HANDLES_MATCH (   bezt)
Value:
if (bezt->h1 != bezt->h2) { \
            if ELEM3(bezt->h1, HD_ALIGN, HD_AUTO, HD_AUTO_ANIM) bezt->h1= HD_FREE; \
            if ELEM3(bezt->h2, HD_ALIGN, HD_AUTO, HD_AUTO_ANIM) bezt->h2= HD_FREE; \
        }

Definition at line 764 of file keyframes_edit.c.

Referenced by set_bezier_auto(), and set_bezier_auto_clamped().

#define KEY_CHECK_OK (   _index)    ((bezt->vec[_index][0] > ked->f1) && (bezt->vec[_index][0] < ked->f2))
#define KEY_CHECK_OK (   _index)    BLI_in_rctf(ked->data, bezt->vec[_index][0], bezt->vec[_index][1])
#define KEY_CHECK_OK (   _index)    ((bezt->vec[_index][1] > ked->f1) && (bezt->vec[_index][1] < ked->f2))
#define KEY_CHECK_OK (   _index)    IS_EQF(bezt->vec[_index][1], ked->f1)
#define KEY_CHECK_OK (   _index)    IS_EQF(bezt->vec[_index][0], ked->f1)
#define KEYFRAME_OK_CHECKS (   check)
Value:
{ \
        if (check(1)) \
            ok |= KEYFRAME_OK_KEY; \
         \
        if (ked && (ked->iterflags & KEYFRAME_ITER_INCL_HANDLES)) { \
            if (check(0)) \
                ok |= KEYFRAME_OK_H1; \
            if (check(2)) \
                ok |= KEYFRAME_OK_H2; \
        } \
    }

Definition at line 421 of file keyframes_edit.c.

Referenced by ok_bezier_frame(), ok_bezier_framerange(), ok_bezier_region(), ok_bezier_value(), and ok_bezier_valuerange().


Function Documentation

static short act_keyframes_loop ( KeyframeEditData ked,
bAction act,
KeyframeEditFunc  key_ok,
KeyframeEditFunc  key_cb,
FcuEditFunc  fcu_cb 
) [static]
static short agrp_keyframes_loop ( KeyframeEditData ked,
bActionGroup agrp,
KeyframeEditFunc  key_ok,
KeyframeEditFunc  key_cb,
FcuEditFunc  fcu_cb 
) [static]
short ANIM_animchannel_keyframes_loop ( KeyframeEditData ked,
bDopeSheet ads,
bAnimListElem ale,
KeyframeEditFunc  key_ok,
KeyframeEditFunc  key_cb,
FcuEditFunc  fcu_cb 
)
short ANIM_animchanneldata_keyframes_loop ( KeyframeEditData ked,
bDopeSheet ads,
void *  data,
int  keytype,
KeyframeEditFunc  key_ok,
KeyframeEditFunc  key_cb,
FcuEditFunc  fcu_cb 
)
KeyframeEditFunc ANIM_editkeyframes_buildselmap ( short  mode)
KeyframeEditFunc ANIM_editkeyframes_handles ( short  code)
KeyframeEditFunc ANIM_editkeyframes_ipo ( short  code)
KeyframeEditFunc ANIM_editkeyframes_keytype ( short  code)
KeyframeEditFunc ANIM_editkeyframes_mirror ( short  type)
KeyframeEditFunc ANIM_editkeyframes_ok ( short  mode)
void ANIM_editkeyframes_refresh ( bAnimContext ac)
KeyframeEditFunc ANIM_editkeyframes_select ( short  selectmode)
KeyframeEditFunc ANIM_editkeyframes_snap ( short  type)
short ANIM_fcurve_keyframes_loop ( KeyframeEditData ked,
FCurve fcu,
KeyframeEditFunc  key_ok,
KeyframeEditFunc  key_cb,
FcuEditFunc  fcu_cb 
)
static short bezier_isfree ( KeyframeEditData UNUSEDked,
BezTriple bezt 
) [static]

Definition at line 807 of file keyframes_edit.c.

References BezTriple::f1, BezTriple::f3, BezTriple::h1, BezTriple::h2, and SELECT.

Referenced by ANIM_editkeyframes_handles().

short bezt_calc_average ( KeyframeEditData ked,
BezTriple bezt 
)
void bezt_remap_times ( KeyframeEditData ked,
BezTriple bezt 
)
short bezt_selmap_flush ( KeyframeEditData ked,
BezTriple bezt 
)
short bezt_to_cfraelem ( KeyframeEditData ked,
BezTriple bezt 
)
static short mirror_bezier_cframe ( KeyframeEditData ked,
BezTriple bezt 
) [static]
static short mirror_bezier_marker ( KeyframeEditData ked,
BezTriple bezt 
) [static]
static short mirror_bezier_value ( KeyframeEditData ked,
BezTriple bezt 
) [static]
static short mirror_bezier_xaxis ( KeyframeEditData UNUSEDked,
BezTriple bezt 
) [static]

Definition at line 701 of file keyframes_edit.c.

References KDL::diff(), BezTriple::f2, SELECT, and BezTriple::vec.

Referenced by ANIM_editkeyframes_mirror().

static short mirror_bezier_yaxis ( KeyframeEditData UNUSEDked,
BezTriple bezt 
) [static]

Definition at line 689 of file keyframes_edit.c.

References KDL::diff(), BezTriple::f2, SELECT, and BezTriple::vec.

Referenced by ANIM_editkeyframes_mirror().

static short ob_keyframes_loop ( KeyframeEditData ked,
bDopeSheet ads,
Object ob,
KeyframeEditFunc  key_ok,
KeyframeEditFunc  key_cb,
FcuEditFunc  fcu_cb 
) [static]
static short ok_bezier_frame ( KeyframeEditData ked,
BezTriple bezt 
) [static]

Definition at line 436 of file keyframes_edit.c.

References KEY_CHECK_OK, and KEYFRAME_OK_CHECKS.

Referenced by ANIM_editkeyframes_ok().

static short ok_bezier_framerange ( KeyframeEditData ked,
BezTriple bezt 
) [static]

Definition at line 449 of file keyframes_edit.c.

References KEY_CHECK_OK, and KEYFRAME_OK_CHECKS.

Referenced by ANIM_editkeyframes_ok().

static short ok_bezier_region ( KeyframeEditData ked,
BezTriple bezt 
) [static]

Definition at line 502 of file keyframes_edit.c.

References KeyframeEditData::data, KEY_CHECK_OK, and KEYFRAME_OK_CHECKS.

Referenced by ANIM_editkeyframes_ok().

static short ok_bezier_selected ( KeyframeEditData UNUSEDked,
BezTriple bezt 
) [static]

Definition at line 462 of file keyframes_edit.c.

References BEZSELECTED, and KEYFRAME_OK_ALL.

Referenced by ANIM_editkeyframes_ok().

static short ok_bezier_value ( KeyframeEditData ked,
BezTriple bezt 
) [static]

Definition at line 473 of file keyframes_edit.c.

References KEY_CHECK_OK, and KEYFRAME_OK_CHECKS.

Referenced by ANIM_editkeyframes_ok().

static short ok_bezier_valuerange ( KeyframeEditData ked,
BezTriple bezt 
) [static]

Definition at line 489 of file keyframes_edit.c.

References KEY_CHECK_OK, and KEYFRAME_OK_CHECKS.

Referenced by ANIM_editkeyframes_ok().

static short scene_keyframes_loop ( KeyframeEditData ked,
bDopeSheet ads,
Scene sce,
KeyframeEditFunc  key_ok,
KeyframeEditFunc  key_cb,
FcuEditFunc  fcu_cb 
) [static]
static short select_bezier_add ( KeyframeEditData ked,
BezTriple bezt 
) [static]
static short select_bezier_invert ( KeyframeEditData UNUSEDked,
BezTriple bezt 
) [static]

Definition at line 977 of file keyframes_edit.c.

References BezTriple::f1, BezTriple::f2, BezTriple::f3, and SELECT.

Referenced by ANIM_editkeyframes_select().

static short select_bezier_subtract ( KeyframeEditData ked,
BezTriple bezt 
) [static]
static short selmap_build_bezier_less ( KeyframeEditData ked,
BezTriple bezt 
) [static]
static short selmap_build_bezier_more ( KeyframeEditData ked,
BezTriple bezt 
) [static]
static short set_bezier_align ( KeyframeEditData UNUSEDked,
BezTriple bezt 
) [static]
static short set_bezier_auto ( KeyframeEditData UNUSEDked,
BezTriple bezt 
) [static]
static short set_bezier_auto_clamped ( KeyframeEditData UNUSEDked,
BezTriple bezt 
) [static]
static short set_bezier_free ( KeyframeEditData UNUSEDked,
BezTriple bezt 
) [static]
static short set_bezier_vector ( KeyframeEditData UNUSEDked,
BezTriple bezt 
) [static]
static short set_bezt_bezier ( KeyframeEditData UNUSEDked,
BezTriple bezt 
) [static]

Definition at line 868 of file keyframes_edit.c.

References BEZT_IPO_BEZ, BezTriple::f2, BezTriple::ipo, and SELECT.

Referenced by ANIM_editkeyframes_ipo().

static short set_bezt_constant ( KeyframeEditData UNUSEDked,
BezTriple bezt 
) [static]

Definition at line 854 of file keyframes_edit.c.

References BEZT_IPO_CONST, BezTriple::f2, BezTriple::ipo, and SELECT.

Referenced by ANIM_editkeyframes_ipo().

static short set_bezt_linear ( KeyframeEditData UNUSEDked,
BezTriple bezt 
) [static]

Definition at line 861 of file keyframes_edit.c.

References BEZT_IPO_LIN, BezTriple::f2, BezTriple::ipo, and SELECT.

Referenced by ANIM_editkeyframes_ipo().

static short set_keytype_breakdown ( KeyframeEditData UNUSEDked,
BezTriple bezt 
) [static]

Definition at line 898 of file keyframes_edit.c.

References BEZKEYTYPE, BEZT_KEYTYPE_BREAKDOWN, BezTriple::f2, and SELECT.

Referenced by ANIM_editkeyframes_keytype().

static short set_keytype_extreme ( KeyframeEditData UNUSEDked,
BezTriple bezt 
) [static]

Definition at line 905 of file keyframes_edit.c.

References BEZKEYTYPE, BEZT_KEYTYPE_EXTREME, BezTriple::f2, and SELECT.

Referenced by ANIM_editkeyframes_keytype().

static short set_keytype_jitter ( KeyframeEditData UNUSEDked,
BezTriple bezt 
) [static]

Definition at line 912 of file keyframes_edit.c.

References BEZKEYTYPE, BEZT_KEYTYPE_JITTER, BezTriple::f2, and SELECT.

Referenced by ANIM_editkeyframes_keytype().

static short set_keytype_keyframe ( KeyframeEditData UNUSEDked,
BezTriple bezt 
) [static]

Definition at line 891 of file keyframes_edit.c.

References BEZKEYTYPE, BEZT_KEYTYPE_KEYFRAME, BezTriple::f2, and SELECT.

Referenced by ANIM_editkeyframes_keytype().

static short snap_bezier_cframe ( KeyframeEditData ked,
BezTriple bezt 
) [static]

Definition at line 617 of file keyframes_edit.c.

References CFRA, BezTriple::f2, KeyframeEditData::scene, SELECT, and BezTriple::vec.

Referenced by ANIM_editkeyframes_snap().

static short snap_bezier_horizontal ( KeyframeEditData UNUSEDked,
BezTriple bezt 
) [static]
static short snap_bezier_nearest ( KeyframeEditData UNUSEDked,
BezTriple bezt 
) [static]

Definition at line 598 of file keyframes_edit.c.

References BezTriple::f2, floorf, SELECT, and BezTriple::vec.

Referenced by ANIM_editkeyframes_snap().

static short snap_bezier_nearestsec ( KeyframeEditData ked,
BezTriple bezt 
) [static]

Definition at line 606 of file keyframes_edit.c.

References BezTriple::f2, FPS, KeyframeEditData::scene, SELECT, and BezTriple::vec.

Referenced by ANIM_editkeyframes_snap().

static short snap_bezier_nearmarker ( KeyframeEditData ked,
BezTriple bezt 
) [static]
static short snap_bezier_value ( KeyframeEditData ked,
BezTriple bezt 
) [static]

Definition at line 646 of file keyframes_edit.c.

References KeyframeEditData::f1, BezTriple::f2, SELECT, and BezTriple::vec.

Referenced by ANIM_editkeyframes_snap().

static short summary_keyframes_loop ( KeyframeEditData ked,
bAnimContext ac,
KeyframeEditFunc  key_ok,
KeyframeEditFunc  key_cb,
FcuEditFunc  fcu_cb 
) [static]