Merge branch 'master' into blender2.8
[blender.git] / source / blender / editors / include / ED_anim_api.h
index 3c8442218beb9ca627e06e45ec9b3a3630515983..99f9287be8ffc285c32ec86ff42612cea9898a09 100644 (file)
@@ -74,6 +74,7 @@ typedef struct bAnimContext {
        short mode;             /* editor->mode */
        short spacetype;        /* sa->spacetype */
        short regiontype;       /* active region -> type (channels or main) */
+       
        struct ScrArea *sa;     /* editor host */
        struct SpaceLink *sl;   /* editor data */
        struct ARegion *ar;     /* region within editor */
@@ -85,6 +86,8 @@ typedef struct bAnimContext {
        ListBase *markers;      /* active set of markers */
        
        struct ReportList *reports; /* pointer to current reports list */
+       
+       float yscale_fac;       /* scale factor for height of channels (i.e. based on the size of keyframes) */
 } bAnimContext;
 
 /* Main Data container types */
@@ -153,11 +156,11 @@ typedef enum eAnim_ChannelType {
        ANIMTYPE_DSMAT,
        ANIMTYPE_DSLAM,
        ANIMTYPE_DSCAM,
+       ANIMTYPE_DSCACHEFILE,
        ANIMTYPE_DSCUR,
        ANIMTYPE_DSSKEY,
        ANIMTYPE_DSWOR,
        ANIMTYPE_DSNTREE,
-       ANIMTYPE_DSPART,
        ANIMTYPE_DSMBALL,
        ANIMTYPE_DSARM,
        ANIMTYPE_DSMESH,
@@ -272,8 +275,8 @@ typedef enum eAnimFilter_Flags {
 #define FILTER_MAT_OBJD(ma)     (CHECK_TYPE_INLINE(ma, Material *), ((ma->flag & MA_DS_EXPAND)))
 #define FILTER_LAM_OBJD(la)     (CHECK_TYPE_INLINE(la, Lamp *), ((la->flag & LA_DS_EXPAND)))
 #define FILTER_CAM_OBJD(ca)     (CHECK_TYPE_INLINE(ca, Camera *), ((ca->flag & CAM_DS_EXPAND)))
+#define FILTER_CACHEFILE_OBJD(cf)     (CHECK_TYPE_INLINE(cf, CacheFile *), ((cf->flag & CACHEFILE_DS_EXPAND)))
 #define FILTER_CUR_OBJD(cu)     (CHECK_TYPE_INLINE(cu, Curve *), ((cu->flag & CU_DS_EXPAND)))
-#define FILTER_PART_OBJD(part)  (CHECK_TYPE_INLINE(part, ParticleSettings *), ((part->flag & PART_DS_EXPAND)))
 #define FILTER_MBALL_OBJD(mb)   (CHECK_TYPE_INLINE(mb, MetaBall *), ((mb->flag2 & MB_DS_EXPAND)))
 #define FILTER_ARM_OBJD(arm)    (CHECK_TYPE_INLINE(arm, bArmature *), ((arm->flag & ARM_DS_EXPAND)))
 #define FILTER_MESH_OBJD(me)    (CHECK_TYPE_INLINE(me, Mesh *), ((me->flag & ME_DS_EXPAND)))
@@ -331,11 +334,11 @@ typedef enum eAnimFilter_Flags {
 /* -------------- Channel Defines -------------- */
 
 /* channel heights */
-#define ACHANNEL_FIRST          (-0.8f * U.widget_unit)
-#define ACHANNEL_HEIGHT         (0.8f * U.widget_unit)
-#define ACHANNEL_HEIGHT_HALF    (0.4f * U.widget_unit)
-#define ACHANNEL_SKIP           (0.1f * U.widget_unit)
-#define ACHANNEL_STEP           (ACHANNEL_HEIGHT + ACHANNEL_SKIP)
+#define ACHANNEL_FIRST(ac)          (-0.8f * (ac)->yscale_fac * U.widget_unit)
+#define ACHANNEL_HEIGHT(ac)         (0.8f * (ac)->yscale_fac * U.widget_unit)
+#define ACHANNEL_HEIGHT_HALF(ac)    (0.4f * (ac)->yscale_fac * U.widget_unit)
+#define ACHANNEL_SKIP               (0.1f * U.widget_unit)
+#define ACHANNEL_STEP(ac)           (ACHANNEL_HEIGHT(ac) + ACHANNEL_SKIP)
 
 /* channel widths */
 #define ACHANNEL_NAMEWIDTH      (10 * U.widget_unit)
@@ -347,7 +350,6 @@ typedef enum eAnimFilter_Flags {
 /* -------------- NLA Channel Defines -------------- */
 
 /* NLA channel heights */
-// XXX: NLACHANNEL_FIRST isn't used?
 #define NLACHANNEL_FIRST                (-0.8f * U.widget_unit)
 #define NLACHANNEL_HEIGHT(snla)         ((snla && (snla->flag & SNLA_NOSTRIPCURVES)) ? (0.8f * U.widget_unit) : (1.2f * U.widget_unit))
 #define NLACHANNEL_HEIGHT_HALF(snla)    ((snla && (snla->flag & SNLA_NOSTRIPCURVES)) ? (0.4f * U.widget_unit) : (0.6f * U.widget_unit))
@@ -544,10 +546,10 @@ void ANIM_uiTemplate_fmodifier_draw(struct uiLayout *layout, struct ID *id, List
 
 
 /* free the copy/paste buffer */
-void free_fmodifiers_copybuf(void);
+void ANIM_fmodifiers_copybuf_free(void);
 
 /* copy the given F-Modifiers to the buffer, returning whether anything was copied or not
- * assuming that the buffer has been cleared already with free_fmodifiers_copybuf()
+ * assuming that the buffer has been cleared already with ANIM_fmodifiers_copybuf_free()
  *     - active: only copy the active modifier
  */
 bool ANIM_fmodifiers_copy_to_buf(ListBase *modifiers, bool active);
@@ -608,7 +610,7 @@ typedef enum eAnimUnitConv_Flags {
        ANIM_UNITCONV_SKIPKNOTS  = (1 << 4),
        /* Scale FCurve i a way it fits to -1..1 space */
        ANIM_UNITCONV_NORMALIZE  = (1 << 5),
-       /* Only whennormalization is used: use scale factor from previous run,
+       /* Only when normalization is used: use scale factor from previous run,
         * prevents curves from jumping all over the place when tweaking them.
         */
        ANIM_UNITCONV_NORMALIZE_FREEZE  = (1 << 6),