Blender  V2.59
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_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])

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 adt_keyframes_loop (KeyframeEditData *ked, AnimData *adt, KeyframeEditFunc key_ok, KeyframeEditFunc key_cb, FcuEditFunc fcu_cb, int filterflag)
static short ob_keyframes_loop (KeyframeEditData *ked, Object *ob, KeyframeEditFunc key_ok, KeyframeEditFunc key_cb, FcuEditFunc fcu_cb, int filterflag)
static short scene_keyframes_loop (KeyframeEditData *ked, Scene *sce, KeyframeEditFunc key_ok, KeyframeEditFunc key_cb, FcuEditFunc fcu_cb, int filterflag)
static short summary_keyframes_loop (KeyframeEditData *ked, bAnimContext *ac, KeyframeEditFunc key_ok, KeyframeEditFunc key_cb, FcuEditFunc fcu_cb, int UNUSED(filterflag))
short ANIM_animchannel_keyframes_loop (KeyframeEditData *ked, bAnimListElem *ale, KeyframeEditFunc key_ok, KeyframeEditFunc key_cb, FcuEditFunc fcu_cb, int filterflag)
short ANIM_animchanneldata_keyframes_loop (KeyframeEditData *ked, void *data, int keytype, KeyframeEditFunc key_ok, KeyframeEditFunc key_cb, FcuEditFunc fcu_cb, int filterflag)
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_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 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 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 520 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 adt_keyframes_loop ( KeyframeEditData ked,
AnimData adt,
KeyframeEditFunc  key_ok,
KeyframeEditFunc  key_cb,
FcuEditFunc  fcu_cb,
int  filterflag 
) [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,
bAnimListElem ale,
KeyframeEditFunc  key_ok,
KeyframeEditFunc  key_cb,
FcuEditFunc  fcu_cb,
int  filterflag 
)
short ANIM_animchanneldata_keyframes_loop ( KeyframeEditData ked,
void *  data,
int  keytype,
KeyframeEditFunc  key_ok,
KeyframeEditFunc  key_cb,
FcuEditFunc  fcu_cb,
int  filterflag 
)
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 899 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 800 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 788 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,
Object ob,
KeyframeEditFunc  key_ok,
KeyframeEditFunc  key_cb,
FcuEditFunc  fcu_cb,
int  filterflag 
) [static]
static short ok_bezier_frame ( KeyframeEditData ked,
BezTriple bezt 
) [static]

Definition at line 535 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 548 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 601 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 561 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 572 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 588 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,
Scene sce,
KeyframeEditFunc  key_ok,
KeyframeEditFunc  key_cb,
FcuEditFunc  fcu_cb,
int  filterflag 
) [static]
static short select_bezier_add ( KeyframeEditData ked,
BezTriple bezt 
) [static]
static short select_bezier_invert ( KeyframeEditData UNUSEDked,
BezTriple bezt 
) [static]

Definition at line 1068 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_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 959 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 945 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 952 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 989 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 996 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 1003 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 982 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 716 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 697 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 705 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 745 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,
int   UNUSEDfilterflag 
) [static]