Blender  V3.3
Classes | Variables
fmodifier.c File Reference
#include <float.h>
#include <math.h>
#include <stddef.h>
#include <stdio.h>
#include <string.h>
#include "MEM_guardedalloc.h"
#include "CLG_log.h"
#include "DNA_anim_types.h"
#include "DNA_screen_types.h"
#include "BLT_translation.h"
#include "BLI_blenlib.h"
#include "BLI_ghash.h"
#include "BLI_math.h"
#include "BLI_noise.h"
#include "BLI_utildefines.h"
#include "BKE_fcurve.h"
#include "BKE_idprop.h"

Go to the source code of this file.

Classes

struct  tFCMED_Cycles
 

Functions

F-Curve Modifier Public API
FModifieradd_fmodifier (ListBase *modifiers, int type, FCurve *owner_fcu)
 
FModifiercopy_fmodifier (const FModifier *src)
 
void copy_fmodifiers (ListBase *dst, const ListBase *src)
 
bool remove_fmodifier (ListBase *modifiers, FModifier *fcm)
 
void free_fmodifiers (ListBase *modifiers)
 
FModifierfind_active_fmodifier (ListBase *modifiers)
 
void set_active_fmodifier (ListBase *modifiers, FModifier *fcm)
 
bool list_has_suitable_fmodifier (ListBase *modifiers, int mtype, short acttype)
 
uint evaluate_fmodifiers_storage_size_per_modifier (ListBase *modifiers)
 
static float eval_fmodifier_influence (FModifier *fcm, float evaltime)
 
float evaluate_time_fmodifiers (FModifiersStackStorage *storage, ListBase *modifiers, FCurve *fcu, float cvalue, float evaltime)
 
void evaluate_value_fmodifiers (FModifiersStackStorage *storage, ListBase *modifiers, FCurve *fcu, float *cvalue, float evaltime)
 
void fcurve_bake_modifiers (FCurve *fcu, int start, int end)
 

Variables

static CLG_LogRef LOG = {"bke.fmodifier"}
 

F-Curve Modifier Types

#define BINARYSEARCH_FRAMEEQ_THRESH   0.0001f
 
typedef struct tFCMED_Cycles tFCMED_Cycles
 
static FModifierTypeInfo FMI_GENERATOR
 
static FModifierTypeInfo FMI_FN_GENERATOR
 
static FModifierTypeInfo FMI_ENVELOPE
 
static FModifierTypeInfo FMI_CYCLES
 
static FModifierTypeInfo FMI_NOISE
 
static FModifierTypeInfo FMI_PYTHON
 
static FModifierTypeInfo FMI_LIMITS
 
static FModifierTypeInfo FMI_STEPPED
 
static void fcm_generator_free (FModifier *fcm)
 
static void fcm_generator_copy (FModifier *fcm, const FModifier *src)
 
static void fcm_generator_new_data (void *mdata)
 
static void fcm_generator_verify (FModifier *fcm)
 
static void fcm_generator_evaluate (FCurve *UNUSED(fcu), FModifier *fcm, float *cvalue, float evaltime, void *UNUSED(storage))
 
static void fcm_fn_generator_new_data (void *mdata)
 
static double sinc (double x)
 
static void fcm_fn_generator_evaluate (FCurve *UNUSED(fcu), FModifier *fcm, float *cvalue, float evaltime, void *UNUSED(storage))
 
static void fcm_envelope_free (FModifier *fcm)
 
static void fcm_envelope_copy (FModifier *fcm, const FModifier *src)
 
static void fcm_envelope_new_data (void *mdata)
 
static void fcm_envelope_verify (FModifier *fcm)
 
static void fcm_envelope_evaluate (FCurve *UNUSED(fcu), FModifier *fcm, float *cvalue, float evaltime, void *UNUSED(storage))
 
int BKE_fcm_envelope_find_index (FCM_EnvelopeData array[], float frame, int arraylen, bool *r_exists)
 
static void fcm_cycles_new_data (void *mdata)
 
static float fcm_cycles_time (FCurve *fcu, FModifier *fcm, float UNUSED(cvalue), float evaltime, void *storage_)
 
static void fcm_cycles_evaluate (FCurve *UNUSED(fcu), FModifier *UNUSED(fcm), float *cvalue, float UNUSED(evaltime), void *storage_)
 
static void fcm_noise_new_data (void *mdata)
 
static void fcm_noise_evaluate (FCurve *UNUSED(fcu), FModifier *fcm, float *cvalue, float evaltime, void *UNUSED(storage))
 
static void fcm_python_free (FModifier *fcm)
 
static void fcm_python_new_data (void *mdata)
 
static void fcm_python_copy (FModifier *fcm, const FModifier *src)
 
static void fcm_python_evaluate (FCurve *UNUSED(fcu), FModifier *UNUSED(fcm), float *UNUSED(cvalue), float UNUSED(evaltime), void *UNUSED(storage))
 
static float fcm_limits_time (FCurve *UNUSED(fcu), FModifier *fcm, float UNUSED(cvalue), float evaltime, void *UNUSED(storage))
 
static void fcm_limits_evaluate (FCurve *UNUSED(fcu), FModifier *fcm, float *cvalue, float UNUSED(evaltime), void *UNUSED(storage))
 
static void fcm_stepped_new_data (void *mdata)
 
static float fcm_stepped_time (FCurve *UNUSED(fcu), FModifier *fcm, float UNUSED(cvalue), float evaltime, void *UNUSED(storage))
 

F-Curve Modifier Type API

all of the f-curve modifier api functions use #fmodifiertypeinfo structs to carry out and operations that involve f-curve modifier specific code.

static FModifierTypeInfofmodifiersTypeInfo [FMODIFIER_NUM_TYPES]
 
static short FMI_INIT = 1
 
static void fmods_init_typeinfo (void)
 
const FModifierTypeInfoget_fmodifier_typeinfo (const int type)
 
const FModifierTypeInfofmodifier_get_typeinfo (const FModifier *fcm)
 

Macro Definition Documentation

◆ BINARYSEARCH_FRAMEEQ_THRESH

#define BINARYSEARCH_FRAMEEQ_THRESH   0.0001f

Definition at line 492 of file fmodifier.c.

Typedef Documentation

◆ tFCMED_Cycles

typedef struct tFCMED_Cycles tFCMED_Cycles

Function Documentation

◆ add_fmodifier()

FModifier* add_fmodifier ( ListBase modifiers,
int  type,
struct FCurve owner_fcu 
)

◆ BKE_fcm_envelope_find_index()

int BKE_fcm_envelope_find_index ( FCM_EnvelopeData  array[],
float  frame,
int  arraylen,
bool r_exists 
)

Definition at line 494 of file fmodifier.c.

References BINARYSEARCH_FRAMEEQ_THRESH, CLOG_ERROR, CLOG_WARN, IS_EQT, LOG, NULL, and time.

◆ copy_fmodifier()

FModifier* copy_fmodifier ( const FModifier src)

◆ copy_fmodifiers()

void copy_fmodifiers ( ListBase dst,
const ListBase src 
)

◆ eval_fmodifier_influence()

static float eval_fmodifier_influence ( FModifier fcm,
float  evaltime 
)
static

◆ evaluate_fmodifiers_storage_size_per_modifier()

uint evaluate_fmodifiers_storage_size_per_modifier ( ListBase modifiers)

◆ evaluate_time_fmodifiers()

float evaluate_time_fmodifiers ( FModifiersStackStorage storage,
ListBase modifiers,
struct FCurve fcu,
float  cvalue,
float  evaltime 
)

Evaluate time modifications imposed by some F-Curve Modifiers.

  • This step acts as an optimization to prevent the F-Curve stack being evaluated several times by modifiers requesting the time be modified, as the final result would have required using the modified time
  • Modifiers only ever receive the unmodified time, as subsequent modifiers should be working on the 'global' result of the modified curve, not some localized segment, so evaltime gets set to whatever the last time-modifying modifier likes.
  • We start from the end of the stack, as only the last one matters for now.
Parameters
fcuCan be NULL.

Definition at line 1395 of file fmodifier.c.

References FModifiersStackStorage::buffer, FModifier::efra, ELEM, eval_fmodifier_influence(), evaltime, FModifierTypeInfo::evaluate_modifier_time, FCURVE_MOD_OFF, FModifier::flag, FCurve::flag, FMODIFIER_FLAG_DISABLED, FMODIFIER_FLAG_MUTED, FMODIFIER_FLAG_RANGERESTRICT, fmodifier_get_typeinfo(), interpf(), ListBase::last, FModifiersStackStorage::modifier_count, NULL, POINTER_OFFSET, FModifier::prev, FModifier::sfra, and FModifiersStackStorage::size_per_modifier.

Referenced by evaluate_fcurve_ex(), and nlasnapshot_from_action().

◆ evaluate_value_fmodifiers()

void evaluate_value_fmodifiers ( FModifiersStackStorage storage,
ListBase modifiers,
struct FCurve fcu,
float cvalue,
float  evaltime 
)

◆ fcm_cycles_evaluate()

static void fcm_cycles_evaluate ( FCurve UNUSEDfcu,
FModifier UNUSEDfcm,
float cvalue,
float   UNUSEDevaltime,
void storage_ 
)
static

Definition at line 760 of file fmodifier.c.

References tFCMED_Cycles::cycyofs.

◆ fcm_cycles_new_data()

static void fcm_cycles_new_data ( void mdata)
static

Definition at line 600 of file fmodifier.c.

References data, and FCM_EXTRAPOLATE_CYCLIC.

◆ fcm_cycles_time()

static float fcm_cycles_time ( FCurve fcu,
FModifier fcm,
float   UNUSEDcvalue,
float  evaltime,
void storage_ 
)
static

◆ fcm_envelope_copy()

static void fcm_envelope_copy ( FModifier fcm,
const FModifier src 
)
static

Definition at line 386 of file fmodifier.c.

References FModifier::data, FMod_Envelope::data, MEM_dupallocN, and src.

◆ fcm_envelope_evaluate()

static void fcm_envelope_evaluate ( FCurve UNUSEDfcu,
FModifier fcm,
float cvalue,
float  evaltime,
void UNUSEDstorage 
)
static

◆ fcm_envelope_free()

static void fcm_envelope_free ( FModifier fcm)
static

Definition at line 376 of file fmodifier.c.

References FModifier::data, FMod_Envelope::data, if(), and MEM_freeN.

◆ fcm_envelope_new_data()

static void fcm_envelope_new_data ( void mdata)
static

Definition at line 397 of file fmodifier.c.

References FMod_Envelope::max, and FMod_Envelope::min.

◆ fcm_envelope_verify()

static void fcm_envelope_verify ( FModifier fcm)
static

Definition at line 406 of file fmodifier.c.

References FModifier::data, FMod_Envelope::data, and if().

◆ fcm_fn_generator_evaluate()

static void fcm_fn_generator_evaluate ( FCurve UNUSEDfcu,
FModifier fcm,
float cvalue,
float  evaltime,
void UNUSEDstorage 
)
static

◆ fcm_fn_generator_new_data()

static void fcm_fn_generator_new_data ( void mdata)
static

Definition at line 256 of file fmodifier.c.

References data.

◆ fcm_generator_copy()

static void fcm_generator_copy ( FModifier fcm,
const FModifier src 
)
static

Definition at line 101 of file fmodifier.c.

References FMod_Generator::coefficients, FModifier::data, MEM_dupallocN, and src.

◆ fcm_generator_evaluate()

static void fcm_generator_evaluate ( FCurve UNUSEDfcu,
FModifier fcm,
float cvalue,
float  evaltime,
void UNUSEDstorage 
)
static

◆ fcm_generator_free()

static void fcm_generator_free ( FModifier fcm)
static

Definition at line 91 of file fmodifier.c.

References data, FModifier::data, if(), and MEM_freeN.

◆ fcm_generator_new_data()

static void fcm_generator_new_data ( void mdata)
static

Definition at line 112 of file fmodifier.c.

References data, and MEM_callocN.

◆ fcm_generator_verify()

static void fcm_generator_verify ( FModifier fcm)
static

◆ fcm_limits_evaluate()

static void fcm_limits_evaluate ( FCurve UNUSEDfcu,
FModifier fcm,
float cvalue,
float   UNUSEDevaltime,
void UNUSEDstorage 
)
static

Definition at line 928 of file fmodifier.c.

References data, FModifier::data, FCM_LIMIT_YMAX, FCM_LIMIT_YMIN, and if().

◆ fcm_limits_time()

static float fcm_limits_time ( FCurve UNUSEDfcu,
FModifier fcm,
float   UNUSEDcvalue,
float  evaltime,
void UNUSEDstorage 
)
static

Definition at line 908 of file fmodifier.c.

References data, FModifier::data, evaltime, FCM_LIMIT_XMAX, FCM_LIMIT_XMIN, and if().

◆ fcm_noise_evaluate()

static void fcm_noise_evaluate ( FCurve UNUSEDfcu,
FModifier fcm,
float cvalue,
float  evaltime,
void UNUSEDstorage 
)
static

◆ fcm_noise_new_data()

static void fcm_noise_new_data ( void mdata)
static

Definition at line 788 of file fmodifier.c.

References data, and FCM_NOISE_MODIF_REPLACE.

◆ fcm_python_copy()

static void fcm_python_copy ( FModifier fcm,
const FModifier src 
)
static

Definition at line 867 of file fmodifier.c.

References FModifier::data, IDP_CopyProperty(), FMod_Python::prop, and src.

◆ fcm_python_evaluate()

static void fcm_python_evaluate ( FCurve UNUSEDfcu,
FModifier UNUSEDfcm,
float UNUSEDcvalue,
float   UNUSEDevaltime,
void UNUSEDstorage 
)
static

Definition at line 875 of file fmodifier.c.

◆ fcm_python_free()

static void fcm_python_free ( FModifier fcm)
static

Definition at line 850 of file fmodifier.c.

References data, FModifier::data, and IDP_FreeProperty().

◆ fcm_python_new_data()

static void fcm_python_new_data ( void mdata)
static

Definition at line 858 of file fmodifier.c.

References data, IDP_GROUP, and MEM_callocN.

◆ fcm_stepped_new_data()

static void fcm_stepped_new_data ( void mdata)
static

Definition at line 964 of file fmodifier.c.

References data.

◆ fcm_stepped_time()

static float fcm_stepped_time ( FCurve UNUSEDfcu,
FModifier fcm,
float   UNUSEDcvalue,
float  evaltime,
void UNUSEDstorage 
)
static

Definition at line 973 of file fmodifier.c.

References data, FModifier::data, evaltime, FCM_STEPPED_NO_AFTER, FCM_STEPPED_NO_BEFORE, and if().

◆ fcurve_bake_modifiers()

void fcurve_bake_modifiers ( struct FCurve fcu,
int  start,
int  end 
)

Bake modifiers for given F-Curve to curve sample data, in the frame range defined by start and end (inclusive).

Definition at line 1500 of file fmodifier.c.

References CLOG_ERROR, FCurve::driver, ELEM, fcurve_samplingcb_evalcurve(), fcurve_store_samples(), ListBase::first, free_fmodifiers(), LOG, FCurve::modifiers, and NULL.

◆ find_active_fmodifier()

FModifier* find_active_fmodifier ( ListBase modifiers)

Find the active F-Modifier.

Definition at line 1246 of file fmodifier.c.

References ELEM, ListBase::first, FModifier::flag, FMODIFIER_FLAG_ACTIVE, FModifier::next, and NULL.

Referenced by ANIM_fmodifiers_copy_to_buf(), and draw_fcurve().

◆ fmodifier_get_typeinfo()

const FModifierTypeInfo* fmodifier_get_typeinfo ( const FModifier fcm)

◆ fmods_init_typeinfo()

static void fmods_init_typeinfo ( void  )
static

This function only gets called when FMI_INIT is non-zero.

Definition at line 1037 of file fmodifier.c.

References FMI_CYCLES, FMI_ENVELOPE, FMI_FN_GENERATOR, FMI_GENERATOR, FMI_LIMITS, FMI_NOISE, FMI_PYTHON, FMI_STEPPED, fmodifiersTypeInfo, and NULL.

Referenced by get_fmodifier_typeinfo().

◆ free_fmodifiers()

void free_fmodifiers ( ListBase modifiers)

◆ get_fmodifier_typeinfo()

const FModifierTypeInfo* get_fmodifier_typeinfo ( int  type)

This function should be used for getting the appropriate type-info when only a F-Curve modifier type is known.

Definition at line 1052 of file fmodifier.c.

References CLOG_ERROR, FMI_INIT, FMODIFIER_NUM_TYPES, FMODIFIER_TYPE_NULL, fmodifiersTypeInfo, fmods_init_typeinfo(), LOG, NULL, and type.

Referenced by add_fmodifier(), fmodifier_get_typeinfo(), fmodifier_panel_register(), fmodifier_reorder(), graph_fmodifier_itemf(), graph_fmodifier_panel_id(), nla_fmodifier_itemf(), and nla_fmodifier_panel_id().

◆ list_has_suitable_fmodifier()

bool list_has_suitable_fmodifier ( ListBase modifiers,
int  mtype,
short  acttype 
)

Do we have any modifiers which match certain criteria.

Parameters
mtypeType of modifier (if 0, doesn't matter).
acttypeType of action to perform (if -1, doesn't matter).

Definition at line 1286 of file fmodifier.c.

References FModifierTypeInfo::acttype, ELEM, ListBase::first, fmodifier_get_typeinfo(), FModifier::next, NULL, and FModifier::type.

Referenced by BKE_fcurve_is_empty(), setexpo_action_keys(), and setexpo_graph_keys().

◆ remove_fmodifier()

bool remove_fmodifier ( ListBase modifiers,
struct FModifier fcm 
)

◆ set_active_fmodifier()

void set_active_fmodifier ( ListBase modifiers,
struct FModifier fcm 
)

Set the active F-Modifier.

Definition at line 1266 of file fmodifier.c.

References ELEM, ListBase::first, FModifier::flag, FMODIFIER_FLAG_ACTIVE, FModifier::next, and NULL.

Referenced by graph_fmodifier_add_exec(), and nla_fmodifier_add_exec().

◆ sinc()

static double sinc ( double  x)
static

Definition at line 269 of file fmodifier.c.

References fabs(), M_PI, KDL::sin(), and x.

Referenced by fcm_fn_generator_evaluate().

Variable Documentation

◆ FMI_CYCLES

FModifierTypeInfo FMI_CYCLES
static
Initial value:
= {
sizeof(FMod_Cycles),
"FMod_Cycles",
sizeof(tFCMED_Cycles),
NULL,
NULL,
NULL ,
}
@ FMI_TYPE_EXTRAPOLATION
Definition: BKE_fcurve.h:98
@ FMI_REQUIRES_ORIGINAL_DATA
Definition: BKE_fcurve.h:110
#define BLT_I18NCONTEXT_ID_ACTION
#define CTX_N_(context, msgid)
struct FMod_Cycles FMod_Cycles
@ FMODIFIER_TYPE_CYCLES
static void fcm_cycles_new_data(void *mdata)
Definition: fmodifier.c:600
static void fcm_cycles_evaluate(FCurve *UNUSED(fcu), FModifier *UNUSED(fcm), float *cvalue, float UNUSED(evaltime), void *storage_)
Definition: fmodifier.c:760
static float fcm_cycles_time(FCurve *fcu, FModifier *fcm, float UNUSED(cvalue), float evaltime, void *storage_)
Definition: fmodifier.c:608
struct tFCMED_Cycles tFCMED_Cycles

Definition at line 770 of file fmodifier.c.

Referenced by fmods_init_typeinfo().

◆ FMI_ENVELOPE

FModifierTypeInfo FMI_ENVELOPE
static
Initial value:
= {
sizeof(FMod_Envelope),
0,
N_("Envelope"),
"FMod_Envelope",
0,
NULL,
}
@ FMI_TYPE_REPLACE_VALUES
Definition: BKE_fcurve.h:102
struct FMod_Envelope FMod_Envelope
@ FMODIFIER_TYPE_ENVELOPE
static void fcm_envelope_new_data(void *mdata)
Definition: fmodifier.c:397
static void fcm_envelope_verify(FModifier *fcm)
Definition: fmodifier.c:406
static void fcm_envelope_evaluate(FCurve *UNUSED(fcu), FModifier *fcm, float *cvalue, float evaltime, void *UNUSED(storage))
Definition: fmodifier.c:416
static void fcm_envelope_free(FModifier *fcm)
Definition: fmodifier.c:376
static void fcm_envelope_copy(FModifier *fcm, const FModifier *src)
Definition: fmodifier.c:386
#define N_(msgid)

Definition at line 471 of file fmodifier.c.

Referenced by fmods_init_typeinfo().

◆ FMI_FN_GENERATOR

FModifierTypeInfo FMI_FN_GENERATOR
static
Initial value:
= {
N_("Built-In Function"),
"FMod_FunctionGenerator",
0,
NULL,
NULL,
NULL,
NULL,
}
@ FMI_TYPE_GENERATE_CURVE
Definition: BKE_fcurve.h:104
@ FMI_REQUIRES_NOTHING
Definition: BKE_fcurve.h:114
@ FMODIFIER_TYPE_FN_GENERATOR
struct FMod_FunctionGenerator FMod_FunctionGenerator
static void fcm_fn_generator_new_data(void *mdata)
Definition: fmodifier.c:256
static void fcm_fn_generator_evaluate(FCurve *UNUSED(fcu), FModifier *fcm, float *cvalue, float evaltime, void *UNUSED(storage))
Definition: fmodifier.c:278

Definition at line 358 of file fmodifier.c.

Referenced by fmods_init_typeinfo().

◆ FMI_GENERATOR

FModifierTypeInfo FMI_GENERATOR
static
Initial value:
= {
sizeof(FMod_Generator),
N_("Generator"),
"FMod_Generator",
0,
NULL,
}
struct FMod_Generator FMod_Generator
@ FMODIFIER_TYPE_GENERATOR
static void fcm_generator_evaluate(FCurve *UNUSED(fcu), FModifier *fcm, float *cvalue, float evaltime, void *UNUSED(storage))
Definition: fmodifier.c:154
static void fcm_generator_new_data(void *mdata)
Definition: fmodifier.c:112
static void fcm_generator_free(FModifier *fcm)
Definition: fmodifier.c:91
static void fcm_generator_verify(FModifier *fcm)
Definition: fmodifier.c:125
static void fcm_generator_copy(FModifier *fcm, const FModifier *src)
Definition: fmodifier.c:101

Definition at line 228 of file fmodifier.c.

Referenced by fmods_init_typeinfo().

◆ FMI_INIT

short FMI_INIT = 1
static

Definition at line 1034 of file fmodifier.c.

Referenced by get_fmodifier_typeinfo().

◆ FMI_LIMITS

FModifierTypeInfo FMI_LIMITS
static
Initial value:
= {
sizeof(FMod_Limits),
N_("Limits"),
"FMod_Limits",
0,
NULL,
NULL,
NULL,
NULL,
}
@ FMI_REQUIRES_RUNTIME_CHECK
Definition: BKE_fcurve.h:116
struct FMod_Limits FMod_Limits
@ FMODIFIER_TYPE_LIMITS
static void fcm_limits_evaluate(FCurve *UNUSED(fcu), FModifier *fcm, float *cvalue, float UNUSED(evaltime), void *UNUSED(storage))
Definition: fmodifier.c:928
static float fcm_limits_time(FCurve *UNUSED(fcu), FModifier *fcm, float UNUSED(cvalue), float evaltime, void *UNUSED(storage))
Definition: fmodifier.c:908

Definition at line 945 of file fmodifier.c.

Referenced by fmods_init_typeinfo().

◆ FMI_NOISE

FModifierTypeInfo FMI_NOISE
static
Initial value:
= {
sizeof(FMod_Noise),
0,
N_("Noise"),
"FMod_Noise",
0,
NULL,
NULL,
NULL ,
NULL,
}
struct FMod_Noise FMod_Noise
@ FMODIFIER_TYPE_NOISE
static void fcm_noise_evaluate(FCurve *UNUSED(fcu), FModifier *fcm, float *cvalue, float evaltime, void *UNUSED(storage))
Definition: fmodifier.c:801
static void fcm_noise_new_data(void *mdata)
Definition: fmodifier.c:788

Definition at line 832 of file fmodifier.c.

Referenced by fmods_init_typeinfo().

◆ FMI_PYTHON

FModifierTypeInfo FMI_PYTHON
static
Initial value:
= {
sizeof(FMod_Python),
N_("Python"),
"FMod_Python",
0,
NULL ,
NULL ,
}
@ FMODIFIER_TYPE_PYTHON
struct FMod_Python FMod_Python
static void fcm_python_evaluate(FCurve *UNUSED(fcu), FModifier *UNUSED(fcm), float *UNUSED(cvalue), float UNUSED(evaltime), void *UNUSED(storage))
Definition: fmodifier.c:875
static void fcm_python_new_data(void *mdata)
Definition: fmodifier.c:858
static void fcm_python_free(FModifier *fcm)
Definition: fmodifier.c:850
static void fcm_python_copy(FModifier *fcm, const FModifier *src)
Definition: fmodifier.c:867

Definition at line 890 of file fmodifier.c.

Referenced by fmods_init_typeinfo().

◆ FMI_STEPPED

FModifierTypeInfo FMI_STEPPED
static
Initial value:
= {
sizeof(FMod_Limits),
N_("Stepped"),
"FMod_Stepped",
0,
NULL,
NULL,
NULL,
NULL,
}
@ FMODIFIER_TYPE_STEPPED
static void fcm_stepped_new_data(void *mdata)
Definition: fmodifier.c:964
static float fcm_stepped_time(FCurve *UNUSED(fcu), FModifier *fcm, float UNUSED(cvalue), float evaltime, void *UNUSED(storage))
Definition: fmodifier.c:973

Definition at line 1006 of file fmodifier.c.

Referenced by fmods_init_typeinfo().

◆ fmodifiersTypeInfo

FModifierTypeInfo* fmodifiersTypeInfo[FMODIFIER_NUM_TYPES]
static

Definition at line 1033 of file fmodifier.c.

Referenced by fmods_init_typeinfo(), and get_fmodifier_typeinfo().

◆ LOG

CLG_LogRef LOG = {"bke.fmodifier"}
static