Blender  V2.93
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 508 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,
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 510 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)

Make a copy of the specified F-Modifier.

Definition at line 1167 of file fmodifier.c.

References FModifierTypeInfo::copy_data, FModifier::curve, FModifier::data, fmodifier_get_typeinfo(), MEM_dupallocN, FModifier::next, NULL, and FModifier::prev.

◆ 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,
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 1457 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,
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 776 of file fmodifier.c.

References tFCMED_Cycles::cycyofs.

◆ fcm_cycles_new_data()

static void fcm_cycles_new_data ( void *  mdata)
static

Definition at line 616 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 402 of file fmodifier.c.

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

◆ 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 392 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 413 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 422 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 272 of file fmodifier.c.

References data.

◆ fcm_generator_copy()

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

Definition at line 117 of file fmodifier.c.

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

◆ 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 107 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 128 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 944 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 924 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 804 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 883 of file fmodifier.c.

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

◆ fcm_python_evaluate()

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

Definition at line 891 of file fmodifier.c.

◆ fcm_python_free()

static void fcm_python_free ( FModifier fcm)
static

Definition at line 866 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 874 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 980 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 989 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 ( 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 1570 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 1288 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)

This function should always be used to get the appropriate type-info, as it has checks which prevent segfaults in some weird cases.

Definition at line 1095 of file fmodifier.c.

References get_fmodifier_typeinfo(), NULL, and FModifier::type.

Referenced by copy_fmodifier(), copy_fmodifiers(), evaluate_fmodifiers_storage_size_per_modifier(), evaluate_time_fmodifiers(), evaluate_value_fmodifiers(), list_has_suitable_fmodifier(), and remove_fmodifier().

◆ fmods_init_typeinfo()

static void fmods_init_typeinfo ( void  )
static

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

Definition at line 1053 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 ( const 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 1072 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 1337 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,
FModifier fcm 
)

◆ set_active_fmodifier()

void set_active_fmodifier ( ListBase modifiers,
FModifier fcm 
)

Set the active F-Modifier.

Definition at line 1311 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 285 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),
N_("Cycles"),
"FMod_Cycles",
sizeof(tFCMED_Cycles),
NULL,
NULL,
NULL ,
}
@ FMI_TYPE_EXTRAPOLATION
Definition: BKE_fcurve.h:114
@ FMI_REQUIRES_ORIGINAL_DATA
Definition: BKE_fcurve.h:126
#define N_(msgid)
struct FMod_Cycles FMod_Cycles
@ FMODIFIER_TYPE_CYCLES
static void fcm_cycles_new_data(void *mdata)
Definition: fmodifier.c:616
static void fcm_cycles_evaluate(FCurve *UNUSED(fcu), FModifier *UNUSED(fcm), float *cvalue, float UNUSED(evaltime), void *storage_)
Definition: fmodifier.c:776
static float fcm_cycles_time(FCurve *fcu, FModifier *fcm, float UNUSED(cvalue), float evaltime, void *storage_)
Definition: fmodifier.c:624
struct tFCMED_Cycles tFCMED_Cycles

Definition at line 786 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:118
struct FMod_Envelope FMod_Envelope
@ FMODIFIER_TYPE_ENVELOPE
static void fcm_envelope_new_data(void *mdata)
Definition: fmodifier.c:413
static void fcm_envelope_verify(FModifier *fcm)
Definition: fmodifier.c:422
static void fcm_envelope_evaluate(FCurve *UNUSED(fcu), FModifier *fcm, float *cvalue, float evaltime, void *UNUSED(storage))
Definition: fmodifier.c:432
static void fcm_envelope_free(FModifier *fcm)
Definition: fmodifier.c:392
static void fcm_envelope_copy(FModifier *fcm, const FModifier *src)
Definition: fmodifier.c:402

Definition at line 487 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:120
@ FMI_REQUIRES_NOTHING
Definition: BKE_fcurve.h:130
@ FMODIFIER_TYPE_FN_GENERATOR
struct FMod_FunctionGenerator FMod_FunctionGenerator
static void fcm_fn_generator_new_data(void *mdata)
Definition: fmodifier.c:272
static void fcm_fn_generator_evaluate(FCurve *UNUSED(fcu), FModifier *fcm, float *cvalue, float evaltime, void *UNUSED(storage))
Definition: fmodifier.c:294

Definition at line 374 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:170
static void fcm_generator_new_data(void *mdata)
Definition: fmodifier.c:128
static void fcm_generator_free(FModifier *fcm)
Definition: fmodifier.c:107
static void fcm_generator_verify(FModifier *fcm)
Definition: fmodifier.c:141
static void fcm_generator_copy(FModifier *fcm, const FModifier *src)
Definition: fmodifier.c:117

Definition at line 244 of file fmodifier.c.

Referenced by fmods_init_typeinfo().

◆ FMI_INIT

short FMI_INIT = 1
static

Definition at line 1050 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:132
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:944
static float fcm_limits_time(FCurve *UNUSED(fcu), FModifier *fcm, float UNUSED(cvalue), float evaltime, void *UNUSED(storage))
Definition: fmodifier.c:924

Definition at line 961 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:817
static void fcm_noise_new_data(void *mdata)
Definition: fmodifier.c:804

Definition at line 848 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:891
static void fcm_python_new_data(void *mdata)
Definition: fmodifier.c:874
static void fcm_python_free(FModifier *fcm)
Definition: fmodifier.c:866
static void fcm_python_copy(FModifier *fcm, const FModifier *src)
Definition: fmodifier.c:883

Definition at line 906 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:980
static float fcm_stepped_time(FCurve *UNUSED(fcu), FModifier *fcm, float UNUSED(cvalue), float evaltime, void *UNUSED(storage))
Definition: fmodifier.c:989

Definition at line 1022 of file fmodifier.c.

Referenced by fmods_init_typeinfo().

◆ fmodifiersTypeInfo

FModifierTypeInfo* fmodifiersTypeInfo[FMODIFIER_NUM_TYPES]
static

Definition at line 1049 of file fmodifier.c.

Referenced by fmods_init_typeinfo(), and get_fmodifier_typeinfo().

◆ LOG

CLG_LogRef LOG = {"bke.fmodifier"}
static