Blender  V3.3
BKE_fcurve.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later
2  * Copyright 2009 Blender Foundation, Joshua Leung. All rights reserved. */
3 
4 #pragma once
5 
10 #include "DNA_curve_types.h"
11 
12 #ifdef __cplusplus
13 extern "C" {
14 #endif
15 
16 struct ChannelDriver;
17 struct FCM_EnvelopeData;
18 struct FCurve;
19 struct FModifier;
20 
21 struct AnimData;
23 struct BezTriple;
24 struct BlendDataReader;
25 struct BlendExpander;
26 struct BlendLibReader;
27 struct BlendWriter;
29 struct PathResolvedRNA;
30 struct PointerRNA;
31 struct PropertyRNA;
32 struct StructRNA;
33 struct bAction;
34 struct bContext;
35 
36 /* ************** Keyframe Tools ***************** */
37 
38 typedef struct CfraElem {
39  struct CfraElem *next, *prev;
40  float cfra;
41  int sel;
43 
44 /* ************** F-Curve Modifiers *************** */
45 
57 typedef struct FModifierTypeInfo {
58  /* admin/ident */
60  short type;
62  short size;
64  short acttype;
66  short requires;
68  char name[64];
70  char structName[64];
73 
74  /* data management function pointers - special handling */
76  void (*free_data)(struct FModifier *fcm);
78  void (*copy_data)(struct FModifier *fcm, const struct FModifier *src);
82  void (*new_data)(void *mdata);
84  void (*verify_data)(struct FModifier *fcm);
85 
86  /* evaluation */
89  struct FCurve *fcu, struct FModifier *fcm, float cvalue, float evaltime, void *storage);
92  struct FCurve *fcu, struct FModifier *fcm, float *cvalue, float evaltime, void *storage);
94 
95 /* Values which describe the behavior of a FModifier Type */
96 typedef enum eFMI_Action_Types {
97  /* modifier only modifies values outside of data range */
99  /* modifier leaves data-points alone, but adjusts the interpolation between and around them */
101  /* modifier only modifies the values of points (but times stay the same) */
103  /* modifier generates a curve regardless of what came before */
106 
107 /* Flags for the requirements of a FModifier Type */
109  /* modifier requires original data-points (kindof beats the purpose of a modifier stack?) */
111  /* modifier doesn't require on any preceding data (i.e. it will generate a curve).
112  * Use in conjunction with FMI_TYPE_GENRATE_CURVE
113  */
115  /* refer to modifier instance */
118 
119 /* Function Prototypes for FModifierTypeInfo's */
120 
131 
132 /* ---------------------- */
133 
137 struct FModifier *add_fmodifier(ListBase *modifiers, int type, struct FCurve *owner_fcu);
141 struct FModifier *copy_fmodifier(const struct FModifier *src);
145 void copy_fmodifiers(ListBase *dst, const ListBase *src);
149 bool remove_fmodifier(ListBase *modifiers, struct FModifier *fcm);
153 void free_fmodifiers(ListBase *modifiers);
154 
158 struct FModifier *find_active_fmodifier(ListBase *modifiers);
162 void set_active_fmodifier(ListBase *modifiers, struct FModifier *fcm);
163 
170 bool list_has_suitable_fmodifier(ListBase *modifiers, int mtype, short acttype);
171 
172 typedef struct FModifiersStackStorage {
175  void *buffer;
177 
193  ListBase *modifiers,
194  struct FCurve *fcu,
195  float cvalue,
196  float evaltime);
202  ListBase *modifiers,
203  struct FCurve *fcu,
204  float *cvalue,
205  float evaltime);
206 
211 void fcurve_bake_modifiers(struct FCurve *fcu, int start, int end);
212 
214  float frame,
215  int arraylen,
216  bool *r_exists);
217 
218 /* ************** F-Curves API ******************** */
219 
220 /* threshold for binary-searching keyframes - threshold here should be good enough for now,
221  * but should become userpref */
222 #define BEZT_BINARYSEARCH_THRESH 0.01f /* was 0.00001, but giving errors */
223 
224 /* -------- Data Management -------- */
225 struct FCurve *BKE_fcurve_create(void);
229 void BKE_fcurve_free(struct FCurve *fcu);
233 struct FCurve *BKE_fcurve_copy(const struct FCurve *fcu);
237 void BKE_fcurves_free(ListBase *list);
242 
247 void BKE_fcurve_foreach_id(struct FCurve *fcu, struct LibraryForeachIDData *data);
248 
253 struct FCurve *BKE_fcurve_find(ListBase *list, const char rna_path[], int array_index);
254 
258 struct FCurve *BKE_fcurve_iter_step(struct FCurve *fcu_iter, const char rna_path[]);
259 
276  ID *id, void *data, struct StructRNA *type, const char *prop_name, int index, bool *r_driven);
277 
291 int BKE_fcurves_filter(ListBase *dst, ListBase *src, const char *dataPrefix, const char *dataName);
292 
306 struct FCurve *BKE_animadata_fcurve_find_by_rna_path(struct AnimData *animdata,
307  const char *rna_path,
308  const int rna_index,
309  struct bAction **r_action,
310  bool *r_driven);
311 
316  struct PropertyRNA *prop,
317  int rnaindex,
318  struct AnimData **r_adt,
319  struct bAction **r_action,
320  bool *r_driven,
321  bool *r_special);
330  const struct PointerRNA *ptr,
331  struct PropertyRNA *prop,
332  int rnaindex,
333  struct AnimData **r_animdata,
334  struct bAction **r_action,
335  bool *r_driven,
336  bool *r_special);
337 
343  float frame,
344  int arraylen,
345  bool *r_replace);
346 
347 /* fcurve_cache.c */
348 
352 struct FCurvePathCache;
354 void BKE_fcurve_pathcache_destroy(struct FCurvePathCache *fcache);
356  const char rna_path[],
357  int array_index);
364  const char *rna_path,
365  struct FCurve **fcurve_result,
366  int fcurve_result_len);
367 
372  struct FCurve *fcu, float *min, float *max, bool do_sel_only, bool do_min_length);
373 
377 bool BKE_fcurve_calc_bounds(struct FCurve *fcu,
378  float *xmin,
379  float *xmax,
380  float *ymin,
381  float *ymax,
382  bool do_sel_only,
383  bool include_handles);
384 
393 float *BKE_fcurves_calc_keyed_frames_ex(struct FCurve **fcurve_array,
394  int fcurve_array_len,
395  float interval,
396  int *r_frames_len);
397 float *BKE_fcurves_calc_keyed_frames(struct FCurve **fcurve_array,
398  int fcurve_array_len,
399  int *r_frames_len);
400 
405 void BKE_fcurve_active_keyframe_set(struct FCurve *fcu, const struct BezTriple *active_bezt);
410 
415 void BKE_fcurve_keyframe_move_value_with_handles(struct BezTriple *keyframe, float new_value);
416 
417 /* .............. */
418 
424 bool BKE_fcurve_are_keyframes_usable(struct FCurve *fcu);
425 
430 bool BKE_fcurve_is_keyframable(struct FCurve *fcu);
431 bool BKE_fcurve_is_protected(struct FCurve *fcu);
432 
437 bool BKE_fcurve_is_cyclic(struct FCurve *fcu);
438 
439 /* Type of infinite cycle for a curve. */
440 typedef enum eFCU_Cycle_Type {
442  /* The cycle repeats identically to the base range. */
444  /* The cycle accumulates the change between start and end keys. */
447 
452 
462  struct BezTriple *prev,
463  struct BezTriple *next,
464  float *r_pdelta);
465 
469 void BKE_fcurve_delete_key(struct FCurve *fcu, int index);
470 
474 bool BKE_fcurve_delete_keys_selected(struct FCurve *fcu);
475 
479 void BKE_fcurve_delete_keys_all(struct FCurve *fcu);
480 
481 /* -------- Curve Sanity -------- */
482 
489 void BKE_fcurve_handles_recalc(struct FCurve *fcu);
498 void BKE_fcurve_handles_recalc_ex(struct FCurve *fcu, eBezTriple_Flag handle_sel_flag);
509 void testhandles_fcurve(struct FCurve *fcu, eBezTriple_Flag sel_flag, bool use_handle);
514 void sort_time_fcurve(struct FCurve *fcu);
518 bool test_time_fcurve(struct FCurve *fcu);
519 
528 void BKE_fcurve_correct_bezpart(const float v1[2], float v2[2], float v3[2], const float v4[2]);
529 
530 /* -------- Evaluation -------- */
531 
532 /* evaluate fcurve */
533 float evaluate_fcurve(struct FCurve *fcu, float evaltime);
534 float evaluate_fcurve_only_curve(struct FCurve *fcu, float evaltime);
536  struct FCurve *fcu,
537  struct ChannelDriver *driver_orig,
538  const struct AnimationEvalContext *anim_eval_context);
542 bool BKE_fcurve_is_empty(struct FCurve *fcu);
547 float calculate_fcurve(struct PathResolvedRNA *anim_rna,
548  struct FCurve *fcu,
549  const struct AnimationEvalContext *anim_eval_context);
550 
551 /* ************* F-Curve Samples API ******************** */
552 
553 /* -------- Defines -------- */
554 
561 typedef float (*FcuSampleFunc)(struct FCurve *fcu, void *data, float evaltime);
562 
563 /* ----- Sampling Callbacks ------ */
564 
569 float fcurve_samplingcb_evalcurve(struct FCurve *fcu, void *data, float evaltime);
570 
571 /* -------- Main Methods -------- */
572 
578  struct FCurve *fcu, void *data, int start, int end, FcuSampleFunc sample_cb);
579 
583 void fcurve_samples_to_keyframes(struct FCurve *fcu, int start, int end);
584 
585 /* ************* F-Curve .blend file API ******************** */
586 
587 void BKE_fmodifiers_blend_write(struct BlendWriter *writer, struct ListBase *fmodifiers);
589  ListBase *fmodifiers,
590  struct FCurve *curve);
592  struct ID *id,
593  struct ListBase *fmodifiers);
594 void BKE_fmodifiers_blend_read_expand(struct BlendExpander *expander, struct ListBase *fmodifiers);
595 
596 void BKE_fcurve_blend_write(struct BlendWriter *writer, struct ListBase *fcurves);
597 void BKE_fcurve_blend_read_data(struct BlendDataReader *reader, struct ListBase *fcurves);
598 void BKE_fcurve_blend_read_lib(struct BlendLibReader *reader,
599  struct ID *id,
600  struct ListBase *fcurves);
601 void BKE_fcurve_blend_read_expand(struct BlendExpander *expander, struct ListBase *fcurves);
602 
603 #ifdef __cplusplus
604 }
605 #endif
typedef float(TangentPoint)[2]
struct FModifier * copy_fmodifier(const struct FModifier *src)
eFMI_Action_Types
Definition: BKE_fcurve.h:96
@ FMI_TYPE_EXTRAPOLATION
Definition: BKE_fcurve.h:98
@ FMI_TYPE_REPLACE_VALUES
Definition: BKE_fcurve.h:102
@ FMI_TYPE_INTERPOLATION
Definition: BKE_fcurve.h:100
@ FMI_TYPE_GENERATE_CURVE
Definition: BKE_fcurve.h:104
struct FCurvePathCache * BKE_fcurve_pathcache_create(ListBase *list)
Definition: fcurve_cache.c:64
struct FModifiersStackStorage FModifiersStackStorage
void BKE_fcurve_active_keyframe_set(struct FCurve *fcu, const struct BezTriple *active_bezt)
float evaluate_fcurve(struct FCurve *fcu, float evaltime)
Definition: fcurve.c:2135
bool BKE_fcurve_bezt_subdivide_handles(struct BezTriple *bezt, struct BezTriple *prev, struct BezTriple *next, float *r_pdelta)
Definition: fcurve.c:1600
int BKE_fcm_envelope_find_index(struct FCM_EnvelopeData *array, float frame, int arraylen, bool *r_exists)
void copy_fmodifiers(ListBase *dst, const ListBase *src)
Definition: fmodifier.c:1164
const FModifierTypeInfo * fmodifier_get_typeinfo(const struct FModifier *fcm)
void BKE_fcurve_blend_write(struct BlendWriter *writer, struct ListBase *fcurves)
Definition: fcurve.c:2344
void BKE_fmodifiers_blend_read_data(struct BlendDataReader *reader, ListBase *fmodifiers, struct FCurve *curve)
Definition: fcurve.c:2283
void testhandles_fcurve(struct FCurve *fcu, eBezTriple_Flag sel_flag, bool use_handle)
Definition: fcurve.c:1308
void BKE_fcurve_keyframe_move_value_with_handles(struct BezTriple *keyframe, float new_value)
Definition: fcurve.c:891
void BKE_fcurve_blend_read_data(struct BlendDataReader *reader, struct ListBase *fcurves)
Definition: fcurve.c:2383
float * BKE_fcurves_calc_keyed_frames_ex(struct FCurve **fcurve_array, int fcurve_array_len, float interval, int *r_frames_len)
Definition: fcurve.c:801
float calculate_fcurve(struct PathResolvedRNA *anim_rna, struct FCurve *fcu, const struct AnimationEvalContext *anim_eval_context)
float evaluate_fcurve_only_curve(struct FCurve *fcu, float evaltime)
Definition: fcurve.c:2142
eFCU_Cycle_Type
Definition: BKE_fcurve.h:440
@ FCU_CYCLE_OFFSET
Definition: BKE_fcurve.h:445
@ FCU_CYCLE_NONE
Definition: BKE_fcurve.h:441
@ FCU_CYCLE_PERFECT
Definition: BKE_fcurve.h:443
bool BKE_fcurve_is_empty(struct FCurve *fcu)
Definition: fcurve.c:2198
bool BKE_fcurve_delete_keys_selected(struct FCurve *fcu)
Definition: fcurve.c:1690
float * BKE_fcurves_calc_keyed_frames(struct FCurve **fcurve_array, int fcurve_array_len, int *r_frames_len)
Definition: fcurve.c:836
bool BKE_fcurve_calc_bounds(struct FCurve *fcu, float *xmin, float *xmax, float *ymin, float *ymax, bool do_sel_only, bool include_handles)
Definition: fcurve.c:624
void BKE_fcurve_free(struct FCurve *fcu)
Definition: fcurve.c:65
void BKE_fcurve_foreach_id(struct FCurve *fcu, struct LibraryForeachIDData *data)
Definition: fcurve.c:165
void fcurve_samples_to_keyframes(struct FCurve *fcu, int start, int end)
Definition: fcurve.c:1084
struct FModifier * find_active_fmodifier(ListBase *modifiers)
Definition: fmodifier.c:1246
void BKE_fcurve_pathcache_destroy(struct FCurvePathCache *fcache)
Definition: fcurve_cache.c:113
struct FCurve * BKE_fcurve_find_by_rna_context_ui(struct bContext *C, const struct PointerRNA *ptr, struct PropertyRNA *prop, int rnaindex, struct AnimData **r_animdata, struct bAction **r_action, bool *r_driven, bool *r_special)
const FModifierTypeInfo * get_fmodifier_typeinfo(int type)
Definition: fmodifier.c:1052
int BKE_fcurve_bezt_binarysearch_index(const struct BezTriple array[], float frame, int arraylen, bool *r_replace)
Definition: fcurve.c:561
void fcurve_store_samples(struct FCurve *fcu, void *data, int start, int end, FcuSampleFunc sample_cb)
Definition: fcurve.c:1037
void BKE_fmodifiers_blend_write(struct BlendWriter *writer, struct ListBase *fmodifiers)
Definition: fcurve.c:2233
void BKE_fcurve_blend_read_lib(struct BlendLibReader *reader, struct ID *id, struct ListBase *fcurves)
Definition: fcurve.c:2438
void evaluate_value_fmodifiers(FModifiersStackStorage *storage, ListBase *modifiers, struct FCurve *fcu, float *cvalue, float evaltime)
Definition: fmodifier.c:1452
float(* FcuSampleFunc)(struct FCurve *fcu, void *data, float evaltime)
Definition: BKE_fcurve.h:561
bool BKE_fcurve_are_keyframes_usable(struct FCurve *fcu)
Definition: fcurve.c:903
void fcurve_bake_modifiers(struct FCurve *fcu, int start, int end)
Definition: fmodifier.c:1500
void set_active_fmodifier(ListBase *modifiers, struct FModifier *fcm)
Definition: fmodifier.c:1266
int BKE_fcurves_filter(ListBase *dst, ListBase *src, const char *dataPrefix, const char *dataName)
Definition: fcurve.c:297
void BKE_fcurve_handles_recalc_ex(struct FCurve *fcu, eBezTriple_Flag handle_sel_flag)
Definition: fcurve.c:1220
struct FCurve * BKE_fcurve_find_by_rna(struct PointerRNA *ptr, struct PropertyRNA *prop, int rnaindex, struct AnimData **r_adt, struct bAction **r_action, bool *r_driven, bool *r_special)
Definition: fcurve.c:380
bool BKE_fcurve_is_keyframable(struct FCurve *fcu)
Definition: fcurve.c:968
eFMI_Requirement_Flags
Definition: BKE_fcurve.h:108
@ FMI_REQUIRES_NOTHING
Definition: BKE_fcurve.h:114
@ FMI_REQUIRES_RUNTIME_CHECK
Definition: BKE_fcurve.h:116
@ FMI_REQUIRES_ORIGINAL_DATA
Definition: BKE_fcurve.h:110
struct FCurve * BKE_fcurve_copy(const struct FCurve *fcu)
struct FCurve * BKE_fcurve_iter_step(struct FCurve *fcu_iter, const char rna_path[])
Definition: fcurve.c:277
bool BKE_fcurve_is_protected(struct FCurve *fcu)
Definition: fcurve.c:963
bool remove_fmodifier(ListBase *modifiers, struct FModifier *fcm)
Definition: fmodifier.c:1190
struct FCurve * BKE_animadata_fcurve_find_by_rna_path(struct AnimData *animdata, const char *rna_path, const int rna_index, struct bAction **r_action, bool *r_driven)
Definition: fcurve.c:339
float evaluate_time_fmodifiers(FModifiersStackStorage *storage, ListBase *modifiers, struct FCurve *fcu, float cvalue, float evaltime)
Definition: fmodifier.c:1395
eFCU_Cycle_Type BKE_fcurve_get_cycle_type(struct FCurve *fcu)
Definition: fcurve.c:1159
bool test_time_fcurve(struct FCurve *fcu)
Definition: fcurve.c:1369
void sort_time_fcurve(struct FCurve *fcu)
Definition: fcurve.c:1327
void BKE_fcurve_handles_recalc(struct FCurve *fcu)
Definition: fcurve.c:1303
void BKE_fcurve_blend_read_expand(struct BlendExpander *expander, struct ListBase *fcurves)
Definition: fcurve.c:2468
void BKE_fcurves_free(ListBase *list)
Definition: fcurve.c:86
struct FModifier * add_fmodifier(ListBase *modifiers, int type, struct FCurve *owner_fcu)
Definition: fmodifier.c:1087
struct CfraElem CfraElem
void BKE_fcurve_delete_keys_all(struct FCurve *fcu)
Definition: fcurve.c:1719
bool list_has_suitable_fmodifier(ListBase *modifiers, int mtype, short acttype)
Definition: fmodifier.c:1286
void BKE_fcurves_copy(ListBase *dst, ListBase *src)
Definition: fcurve.c:146
int BKE_fcurve_active_keyframe_index(const struct FCurve *fcu)
int BKE_fcurve_pathcache_find_array(struct FCurvePathCache *fcache, const char *rna_path, struct FCurve **fcurve_result, int fcurve_result_len)
Definition: fcurve_cache.c:144
struct FCurve * id_data_find_fcurve(ID *id, void *data, struct StructRNA *type, const char *prop_name, int index, bool *r_driven)
Definition: fcurve.c:201
struct FCurve * BKE_fcurve_create(void)
Definition: fcurve.c:53
void BKE_fcurve_delete_key(struct FCurve *fcu, int index)
Definition: fcurve.c:1661
float evaluate_fcurve_driver(struct PathResolvedRNA *anim_rna, struct FCurve *fcu, struct ChannelDriver *driver_orig, const struct AnimationEvalContext *anim_eval_context)
void BKE_fmodifiers_blend_read_lib(struct BlendLibReader *reader, struct ID *id, struct ListBase *fmodifiers)
Definition: fcurve.c:2316
void free_fmodifiers(ListBase *modifiers)
Definition: fmodifier.c:1230
struct FModifierTypeInfo FModifierTypeInfo
void BKE_fmodifiers_blend_read_expand(struct BlendExpander *expander, struct ListBase *fmodifiers)
Definition: fcurve.c:2330
uint evaluate_fmodifiers_storage_size_per_modifier(ListBase *modifiers)
Definition: fmodifier.c:1325
float fcurve_samplingcb_evalcurve(struct FCurve *fcu, void *data, float evaltime)
bool BKE_fcurve_is_cyclic(struct FCurve *fcu)
Definition: fcurve.c:1192
struct FCurve * BKE_fcurve_pathcache_find(struct FCurvePathCache *fcache, const char rna_path[], int array_index)
bool BKE_fcurve_calc_range(struct FCurve *fcu, float *min, float *max, bool do_sel_only, bool do_min_length)
Definition: fcurve.c:754
void BKE_fcurve_correct_bezpart(const float v1[2], float v2[2], float v3[2], const float v4[2])
Definition: fcurve.c:1410
struct FCurve * BKE_fcurve_find(ListBase *list, const char rna_path[], int array_index)
Definition: fcurve.c:249
unsigned int uint
Definition: BLI_sys_types.h:67
eBezTriple_Flag
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei GLsizei GLenum type _GL_VOID_RET _GL_VOID GLsizei GLenum GLenum const void *pixels _GL_VOID_RET _GL_VOID const void *pointer _GL_VOID_RET _GL_VOID GLdouble v _GL_VOID_RET _GL_VOID GLfloat v _GL_VOID_RET _GL_VOID GLint GLint i2 _GL_VOID_RET _GL_VOID GLint j _GL_VOID_RET _GL_VOID GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble GLdouble GLdouble zFar _GL_VOID_RET _GL_UINT GLdouble *equation _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLenum GLfloat *v _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLfloat *values _GL_VOID_RET _GL_VOID GLushort *values _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLenum GLdouble *params _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_BOOL GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLushort pattern _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint GLdouble v1
#define C
Definition: RandGen.cpp:25
ATTR_WARN_UNUSED_RESULT const BMVert * v2
float evaltime
Definition: bpy_driver.c:161
Curve curve
SyclQueue void void * src
SyclQueue void void size_t num_bytes void
static ulong * next
SymEdge< T > * prev(const SymEdge< T > *se)
Definition: delaunay_2d.cc:105
#define min(a, b)
Definition: sort.c:35
float cfra
Definition: BKE_fcurve.h:40
struct CfraElem * next
Definition: BKE_fcurve.h:39
struct CfraElem * prev
Definition: BKE_fcurve.h:39
int sel
Definition: BKE_fcurve.h:41
char * rna_path
BezTriple * bezt
int array_index
void(* verify_data)(struct FModifier *fcm)
Definition: BKE_fcurve.h:84
float(* evaluate_modifier_time)(struct FCurve *fcu, struct FModifier *fcm, float cvalue, float evaltime, void *storage)
Definition: BKE_fcurve.h:88
void(* free_data)(struct FModifier *fcm)
Definition: BKE_fcurve.h:76
void(* evaluate_modifier)(struct FCurve *fcu, struct FModifier *fcm, float *cvalue, float evaltime, void *storage)
Definition: BKE_fcurve.h:91
void(* new_data)(void *mdata)
Definition: BKE_fcurve.h:82
char structName[64]
Definition: BKE_fcurve.h:70
void(* copy_data)(struct FModifier *fcm, const struct FModifier *src)
Definition: BKE_fcurve.h:78
Definition: DNA_ID.h:368
float max
PointerRNA * ptr
Definition: wm_files.c:3480