37 "Generate a curve using a factorized or expanded polynomial"},
42 "Generate a curve using standard math functions such as sin and cos"},
47 "Reshape F-Curve values, e.g. change amplitude of movements"},
56 "Restrict maximum and minimum values of F-Curve"},
60 "Stepped Interpolation",
61 "Snap values to nearest grid step, e.g. for a stop-motion look"},
70 "Automatic handles only take immediately adjacent keys into account"},
74 "Continuous Acceleration",
75 "Automatic handles are adjusted to avoid jumps in acceleration, resulting "
76 "in smoother curves. However, key changes may affect interpolation over a "
77 "larger stretch of the curve"},
84 ICON_KEYTYPE_KEYFRAME_VEC,
86 "Normal keyframe, e.g. for key poses"},
89 ICON_KEYTYPE_BREAKDOWN_VEC,
91 "A breakdown pose, e.g. for transitions between key poses"},
94 ICON_KEYTYPE_MOVING_HOLD_VEC,
96 "A keyframe that is part of a moving hold"},
99 ICON_KEYTYPE_EXTREME_VEC,
101 "An \"extreme\" pose, or some other purpose as needed"},
104 ICON_KEYTYPE_JITTER_VEC,
106 "A filler or baked keyframe for keying on ones, or some other purpose as needed"},
114 ICON_IPO_EASE_IN_OUT,
116 "Easing type is chosen automatically based on what the type of interpolation used "
117 "(e.g. Ease In for transitional types, and Ease Out for dynamic effects)"},
123 "Only on the end closest to the next keyframe"},
128 "Only on the end closest to the first keyframe"},
131 ICON_IPO_EASE_IN_OUT,
133 "Segment between both keyframes"},
138 {
DTAR_ROTMODE_AUTO,
"AUTO", 0,
"Auto Euler",
"Euler using the rotation order of the target"},
150 "Decompose into a swing rotation to aim the X axis, followed by twist around it"},
155 "Decompose into a swing rotation to aim the Y axis, followed by twist around it"},
160 "Decompose into a swing rotation to aim the Z axis, followed by twist around it"},
174 return &RNA_FModifierGenerator;
176 return &RNA_FModifierFunctionGenerator;
178 return &RNA_FModifierEnvelope;
180 return &RNA_FModifierCycles;
182 return &RNA_FModifierNoise;
185 return &RNA_FModifierFilter;
188 return &RNA_FModifierPython;
190 return &RNA_FModifierLimits;
192 return &RNA_FModifierStepped;
194 return &RNA_UnknownType;
207 static bool rna_ChannelDriver_is_simple_expression_get(
PointerRNA *
ptr)
236 rna_ChannelDriver_update_data(bmain,
scene,
ptr);
255 rna_ChannelDriver_update_data(bmain,
scene, &driverptr);
263 rna_DriverTarget_update_data(bmain,
scene,
ptr);
301 static void rna_DriverTarget_id_type_set(
PointerRNA *
ptr,
int value)
308 data->idtype = value;
321 static void rna_DriverTarget_RnaPath_get(
PointerRNA *
ptr,
char *value)
345 static void rna_DriverTarget_RnaPath_set(
PointerRNA *
ptr,
const char *value)
363 static void rna_DriverVariable_type_set(
PointerRNA *
ptr,
int value)
371 void rna_DriverVariable_name_set(
PointerRNA *
ptr,
const char *value)
388 static void rna_Driver_remove_variable(
ChannelDriver *driver,
404 static void rna_FKeyframe_handle1_get(
PointerRNA *
ptr,
float *values)
408 values[0] = bezt->
vec[0][0];
409 values[1] = bezt->
vec[0][1];
412 static void rna_FKeyframe_handle1_set(
PointerRNA *
ptr,
const float *values)
416 bezt->
vec[0][0] = values[0];
417 bezt->
vec[0][1] = values[1];
420 static void rna_FKeyframe_handle2_get(
PointerRNA *
ptr,
float *values)
424 values[0] = bezt->
vec[2][0];
425 values[1] = bezt->
vec[2][1];
428 static void rna_FKeyframe_handle2_set(
PointerRNA *
ptr,
const float *values)
432 bezt->
vec[2][0] = values[0];
433 bezt->
vec[2][1] = values[1];
436 static void rna_FKeyframe_ctrlpoint_get(
PointerRNA *
ptr,
float *values)
440 values[0] = bezt->
vec[1][0];
441 values[1] = bezt->
vec[1][1];
444 static void rna_FKeyframe_ctrlpoint_set(
PointerRNA *
ptr,
const float *values)
448 bezt->
vec[1][0] = values[0];
449 bezt->
vec[1][1] = values[1];
452 static void rna_FKeyframe_ctrlpoint_ui_set(
PointerRNA *
ptr,
const float *values)
456 const float frame_delta = values[0] - bezt->
vec[1][0];
457 const float value_delta = values[1] - bezt->
vec[1][1];
463 bezt->
vec[0][0] += frame_delta;
464 bezt->
vec[0][1] += value_delta;
466 bezt->
vec[1][0] = values[0];
467 bezt->
vec[1][1] = values[1];
469 bezt->
vec[2][0] += frame_delta;
470 bezt->
vec[2][1] += value_delta;
475 static void rna_FCurve_RnaPath_get(
PointerRNA *
ptr,
char *value)
499 static void rna_FCurve_RnaPath_set(
PointerRNA *
ptr,
const char *value)
527 printf(
"ERROR: one of the ID's for the groups to assign to is invalid (ptr=%p, val=%p)\n",
532 else if (value.
data && (pid != vid)) {
534 printf(
"ERROR: IDs differ - ptr=%p vs value=%p\n", pid, vid);
552 printf(
"ERROR: F-Curve already belongs to this group\n");
561 printf(
"ERROR: cannot assign F-Curve to group, since F-Curve is not attached to any ID\n");
566 printf(
"ERROR: F-Curve (%p) doesn't exist in action '%s'\n", fcu, act->
id.
name);
587 static void rna_FCurve_range(
FCurve *fcu,
float range[2])
598 static void rna_tag_animation_update(
Main *bmain,
ID *
id)
612 static void rna_FCurve_update_data_ex(
ID *
id,
FCurve *fcu,
Main *bmain)
617 rna_tag_animation_update(bmain,
id);
627 static void rna_FCurve_update_data_relations(
Main *bmain,
682 static void rna_FModifier_start_frame_set(
PointerRNA *
ptr,
float value)
695 static void rna_FModifier_end_frame_set(
PointerRNA *
ptr,
float value)
726 static void rna_FModifier_end_frame_range(
740 static void rna_FModifier_blending_range(
758 rna_tag_animation_update(bmain,
id);
767 if (fmi && fmi->verify_data) {
771 rna_FModifier_update(bmain,
scene,
ptr);
779 for (fm = fmo->
prev; fm; fm = fm->
prev) {
782 for (fm = fmo->
next; fm; fm = fm->
next) {
786 rna_FModifier_update(bmain,
scene,
ptr);
789 static int rna_FModifierGenerator_coefficients_get_length(
const PointerRNA *
ptr,
796 length[0] = gen->arraysize;
805 static void rna_FModifierGenerator_coefficients_get(
PointerRNA *
ptr,
float *values)
809 memcpy(values, gen->coefficients, gen->arraysize *
sizeof(
float));
812 static void rna_FModifierGenerator_coefficients_set(
PointerRNA *
ptr,
const float *values)
816 memcpy(gen->coefficients, values, gen->arraysize *
sizeof(
float));
819 static void rna_FModifierLimits_minx_set(
PointerRNA *
ptr,
float value)
824 data->rect.xmin = value;
831 static void rna_FModifierLimits_maxx_set(
PointerRNA *
ptr,
float value)
836 data->rect.xmax = value;
843 static void rna_FModifierLimits_miny_set(
PointerRNA *
ptr,
float value)
848 data->rect.ymin = value;
855 static void rna_FModifierLimits_maxy_set(
PointerRNA *
ptr,
float value)
860 data->rect.ymax = value;
882 static void rna_FModifierLimits_maxx_range(
910 static void rna_FModifierLimits_maxy_range(
923 static void rna_FModifierStepped_start_frame_range(
933 static void rna_FModifierStepped_end_frame_range(
943 static void rna_FModifierStepped_frame_start_set(
PointerRNA *
ptr,
float value)
948 float prop_clamp_min = -FLT_MAX, prop_clamp_max = FLT_MAX, prop_soft_min, prop_soft_max;
949 rna_FModifierStepped_start_frame_range(
950 ptr, &prop_clamp_min, &prop_clamp_max, &prop_soft_min, &prop_soft_max);
951 value =
CLAMPIS(value, prop_clamp_min, prop_clamp_max);
956 data->start_frame = value;
960 static void rna_FModifierStepped_frame_end_set(
PointerRNA *
ptr,
float value)
965 float prop_clamp_min = -FLT_MAX, prop_clamp_max = FLT_MAX, prop_soft_min, prop_soft_max;
966 rna_FModifierStepped_end_frame_range(
967 ptr, &prop_clamp_min, &prop_clamp_max, &prop_soft_min, &prop_soft_max);
968 value =
CLAMPIS(value, prop_clamp_min, prop_clamp_max);
973 data->end_frame = value;
977 static BezTriple *rna_FKeyframe_points_insert(
978 ID *
id,
FCurve *fcu,
Main *bmain,
float frame,
float value,
int keyframe_type,
int flag)
983 if ((fcu->
bezt) && (index >= 0)) {
984 rna_tag_animation_update(bmain,
id);
986 return fcu->
bezt + index;
992 static void rna_FKeyframe_points_add(
ID *
id,
FCurve *fcu,
Main *bmain,
int tot)
1010 rna_tag_animation_update(bmain,
id);
1014 static void rna_FKeyframe_points_remove(
1018 int index = (int)(bezt - fcu->
bezt);
1019 if (index < 0 || index >= fcu->
totvert) {
1031 rna_tag_animation_update(bmain,
id);
1034 static void rna_FKeyframe_points_clear(
ID *
id,
FCurve *fcu,
Main *bmain)
1038 rna_tag_animation_update(bmain,
id);
1048 rna_tag_animation_update(bmain,
id);
1054 fed.
f1 = fed.
f2 = 0;
1069 if (i < env->totvert) {
1082 *(env->
data + i) = fed;
1083 return (env->
data + i);
1086 static void rna_FModifierEnvelope_points_remove(
1092 int index = (
int)(cp - env->
data);
1095 if (index < 0 || index >= env->
totvert) {
1100 rna_tag_animation_update(bmain,
id);
1105 memmove(env->
data + index,
1106 env->
data + (index + 1),
1130 static void rna_FModifier_show_expanded_set(
PointerRNA *
ptr,
bool value)
1146 "POLYNOMIAL_FACTORISED",
1148 "Factorized Polynomial",
1155 srna,
"Generator F-Modifier",
"Deterministically generate values for the modified F-Curve");
1164 "Values generated by this modifier are applied on top of "
1165 "the existing values instead of overwriting them");
1181 "The highest power of 'x' for this polynomial (number of coefficients - 1)");
1193 "rna_FModifierGenerator_coefficients_get",
1194 "rna_FModifierGenerator_coefficients_set",
1197 prop,
"Coefficients",
"Coefficients for 'x' (starting from lowest power of x^0)");
1210 {0,
"SIN", 0,
"Sine",
""},
1211 {1,
"COS", 0,
"Cosine",
""},
1212 {2,
"TAN", 0,
"Tangent",
""},
1213 {3,
"SQRT", 0,
"Square Root",
""},
1214 {4,
"LN", 0,
"Natural Logarithm",
""},
1215 {5,
"SINC", 0,
"Normalized Sine",
"sin(x) / x"},
1219 srna =
RNA_def_struct(brna,
"FModifierFunctionGenerator",
"FModifier");
1221 srna,
"Built-In Function F-Modifier",
"Generate values using a built-in function");
1228 prop,
"Amplitude",
"Scale factor determining the maximum/minimum values");
1234 prop,
"Phase Multiple",
"Scale factor determining the 'speed' of the function");
1253 "Values generated by this modifier are applied on top of "
1254 "the existing values instead of overwriting them");
1315 srna,
"Control Points",
"Control points defining the shape of the envelope");
1326 "Frame to add this control-point",
1331 func,
"point",
"FModifierEnvelopeControlPoint",
"",
"Newly created control-point");
1334 func =
RNA_def_function(srna,
"remove",
"rna_FModifierEnvelope_points_remove");
1338 func,
"point",
"FModifierEnvelopeControlPoint",
"",
"Control-point to remove");
1357 prop,
"Control Points",
"Control points defining the shape of the envelope");
1365 prop,
"Reference Value",
"Value that envelope's influence is centered around / based on");
1372 prop,
"Default Minimum",
"Lower distance from Reference Value for 1:1 default influence");
1379 prop,
"Default Maximum",
"Upper distance from Reference Value for 1:1 default influence");
1396 "Repeat with Offset",
1397 "Repeat keyframe range, but with offset based on gradient between "
1398 "start and end values"},
1403 "Alternate between forward and reverse playback of keyframe range"},
1425 "Maximum number of cycles to allow before first keyframe (0 = infinite)");
1441 "Maximum number of cycles to allow after last keyframe (0 = infinite)");
1454 srna,
"Python F-Modifier",
"Perform user-defined operation on the modified F-Curve");
1467 srna,
"Limit F-Modifier",
"Limit the time/value ranges of the modified F-Curve");
1498 prop,
NULL,
"rna_FModifierLimits_minx_set",
"rna_FModifierLimits_minx_range");
1506 prop,
NULL,
"rna_FModifierLimits_miny_set",
"rna_FModifierLimits_miny_range");
1514 prop,
NULL,
"rna_FModifierLimits_maxx_set",
"rna_FModifierLimits_maxx_range");
1522 prop,
NULL,
"rna_FModifierLimits_maxy_set",
"rna_FModifierLimits_maxy_range");
1565 "Amplitude of the noise - the amount that it modifies the underlying curve");
1597 "Stepped Interpolation F-Modifier",
1598 "Hold each interpolated value from the F-Curve for several frames without "
1599 "changing the timing");
1614 "Reference number of frames before frames get held "
1615 "(use to get hold for '1-3' vs '5-7' holding patterns)");
1622 prop,
"Use Start Frame",
"Restrict modifier to only act after its 'start' frame");
1629 prop,
"Use End Frame",
"Restrict modifier to only act before its 'end' frame");
1637 "rna_FModifierStepped_frame_start_set",
1638 "rna_FModifierStepped_start_frame_range");
1640 prop,
"Start Frame",
"Frame that modifier's influence starts (if applicable)");
1647 prop,
NULL,
"rna_FModifierStepped_frame_end_set",
"rna_FModifierStepped_end_frame_range");
1649 prop,
"End Frame",
"Frame that modifier's influence ends (if applicable)");
1700 prop,
"Disabled",
"F-Curve Modifier has invalid settings and will not be evaluated");
1718 "Restrict Frame Range",
1719 "F-Curve Modifier is only applied for the specified frame range to help "
1720 "mask off effects in order to chain them");
1727 prop,
NULL,
"rna_FModifier_start_frame_set",
"rna_FModifier_start_frame_range");
1731 "Frame that modifier's influence starts (if Restrict Frame Range is in use)");
1738 prop,
NULL,
"rna_FModifier_end_frame_set",
"rna_FModifier_end_frame_range");
1742 "Frame that modifier's influence ends (if Restrict Frame Range is in use)");
1750 prop,
"Blend In",
"Number of frames from start frame for influence to take effect");
1758 prop,
"Blend Out",
"Number of frames from end frame for influence to fade out");
1766 prop,
"Use Influence",
"F-Curve Modifier's effects will be tempered by a default factor");
1775 prop,
"Influence",
"Amount of influence F-Curve Modifier will have when not fading in/out");
1808 "Transforms include effects of parenting/restpose and constraints"},
1813 "Transforms don't include parenting/restpose or constraints"},
1818 "Transforms include effects of constraints but not "
1819 "parenting/restpose"},
1834 prop,
NULL,
"rna_DriverTarget_id_set",
"rna_DriverTarget_id_typef",
NULL);
1837 "ID-block that the specific property used can be found from "
1838 "(id_type property must be set first)");
1854 "rna_DriverTarget_RnaPath_get",
1855 "rna_DriverTarget_RnaPath_length",
1856 "rna_DriverTarget_RnaPath_set");
1894 "Use the value from some RNA property"},
1897 ICON_DRIVER_TRANSFORM,
1898 "Transform Channel",
1899 "Final transformation value of object or bone"},
1902 ICON_DRIVER_ROTATIONAL_DIFFERENCE,
1903 "Rotational Difference",
1904 "Use the angle between two bones"},
1907 ICON_DRIVER_DISTANCE,
1909 "Distance between two bones or objects"},
1916 srna,
"Driver Variable",
"Variable from some source/target for driver relationship");
1925 "Name to use in scripted expressions/functions (no spaces or dots are allowed, "
1926 "and must start with a letter)");
1965 srna,
"ChannelDriver Variables",
"Collection of channel driver Variables");
1971 parm =
RNA_def_pointer(func,
"var",
"DriverVariable",
"",
"Newly created Driver Variable");
1980 func,
"variable",
"DriverVariable",
"",
"Variable to remove from the driver");
2002 srna,
"Driver",
"Driver for the value of a setting based on an external value");
2030 "Include a 'self' variable in the name-space, "
2031 "so drivers can easily reference the data being modified (object, bone, etc...)");
2037 prop,
"Invalid",
"Driver could not be evaluated in past, so should be skipped");
2044 "Simple Expression",
2045 "The scripted expression can be evaluated without using the full python interpreter");
2087 srna,
"Keyframe",
"Bezier curve point with two handles defining a Keyframe on an F-Curve");
2123 "Interpolation method to use for segment of the F-Curve from "
2124 "this Keyframe until the next Keyframe");
2139 "Which ends of the segment between this and the next keyframe easing "
2140 "interpolation is applied to");
2153 prop,
"Amplitude",
"Amount to boost elastic bounces for 'elastic' easing");
2166 prop,
"rna_FKeyframe_handle1_get",
"rna_FKeyframe_handle1_set",
NULL);
2168 prop,
"Left Handle",
"Coordinates of the left handle (before the control point)");
2174 prop,
"rna_FKeyframe_ctrlpoint_get",
"rna_FKeyframe_ctrlpoint_set",
NULL);
2182 prop,
"rna_FKeyframe_ctrlpoint_get",
"rna_FKeyframe_ctrlpoint_ui_set",
NULL);
2186 "Coordinates of the control point. Note: Changing this value also updates the handles "
2187 "similar to using the graph editor transform operator");
2194 prop,
"rna_FKeyframe_handle2_get",
"rna_FKeyframe_handle2_set",
NULL);
2196 prop,
"Right Handle",
"Coordinates of the right handle (after the control point)");
2219 prop,
"rna_FCurve_active_modifier_get",
"rna_FCurve_active_modifier_set",
NULL,
NULL);
2227 parm =
RNA_def_pointer(func,
"fmodifier",
"FModifier",
"",
"New fmodifier");
2238 parm =
RNA_def_pointer(func,
"modifier",
"FModifier",
"",
"Removed modifier");
2256 "Don't add any new keyframes, but just replace existing ones"},
2257 {
INSERTKEY_NEEDED,
"NEEDED", 0,
"Needed",
"Only adds keyframes that are needed"},
2262 "Fast keyframe insertion to avoid recalculating the curve each time"},
2280 "X Value of this keyframe point",
2290 "Y Value of this keyframe point",
2294 RNA_def_enum_flag(func,
"options", keyframe_flag_items, 0,
"",
"Keyframe options");
2300 "Type of keyframe to insert");
2301 parm =
RNA_def_pointer(func,
"keyframe",
"Keyframe",
"",
"Newly created keyframe");
2308 func,
"count", 1, 0, INT_MAX,
"Number",
"Number of points to add to the spline", 0, INT_MAX);
2314 parm =
RNA_def_pointer(func,
"keyframe",
"Keyframe",
"",
"Keyframe to remove");
2319 func,
"fast", 0,
"Fast",
"Fast keyframe removal to avoid recalculating the curve each time");
2338 "Hold values of endpoint keyframes"},
2343 "Use slope of curve leading in/out of endpoint keyframes"},
2351 "Cycle through the rainbow, trying to give each curve a unique color"},
2356 "Use axis colors for transform and color properties, and auto-rainbow for the rest"},
2360 "Auto WXYZ to YRGB",
2361 "Use axis colors for XYZ parts of transform, and yellow for the 'W' channel"},
2366 "Use custom hand-picked color for F-Curve"},
2381 "Method used for evaluating value of F-Curve outside first and last keyframes");
2400 prop,
"rna_FCurve_RnaPath_get",
"rna_FCurve_RnaPath_length",
"rna_FCurve_RnaPath_set");
2408 prop,
"RNA Array Index",
"Index to the specific property affected by F-Curve if applicable");
2416 prop,
"Color Mode",
"Method used to determine color of F-Curve in Graph Editor");
2445 prop,
"Hide",
"F-Curve and its keyframes are hidden in the Graph Editor graphs");
2451 prop,
"Auto Handle Smoothing",
"Algorithm used to compute automatic handles");
2460 "False when F-Curve could not be evaluated in past, so should be skipped "
2469 "True if the curve contributes no animation due to lack of "
2470 "keyframes or useful modifiers, and should be deleted");
2499 "Evaluate F-Curve at given frame",
2510 "Value of F-Curve specific frame",
2519 func,
"Ensure keyframes are sorted in chronological order and handles are set correctly");
2526 func,
"range", 2,
NULL, -FLT_MAX, FLT_MAX,
"Range",
"Min/Max values", -FLT_MAX, FLT_MAX);
2532 srna,
"update_autoflags",
"update_autoflags_fcurve");
2535 "Update FCurve flags set automatically from affected property "
2536 "(currently, integer/discrete flags set when the property is not a float)");
2539 func,
"data",
"AnyType",
"Data",
"Data containing the property controlled by given FCurve");
Blender kernel action and pose functionality.
void action_groups_remove_channel(struct bAction *act, struct FCurve *fcu)
void action_groups_add_channel(struct bAction *act, struct bActionGroup *agrp, struct FCurve *fcurve)
struct AnimData * BKE_animdata_from_id(const struct ID *id)
int BKE_fcm_envelope_find_index(struct FCM_EnvelopeData *array, float frame, int arraylen, bool *r_exists)
const FModifierTypeInfo * fmodifier_get_typeinfo(const struct FModifier *fcm)
bool BKE_fcurve_is_empty(struct FCurve *fcu)
struct FModifier * find_active_fmodifier(ListBase *modifiers)
void set_active_fmodifier(ListBase *modifiers, struct FModifier *fcm)
bool remove_fmodifier(ListBase *modifiers, struct FModifier *fcm)
void sort_time_fcurve(struct FCurve *fcu)
void BKE_fcurve_handles_recalc(struct FCurve *fcu)
struct FModifier * add_fmodifier(ListBase *modifiers, int type, struct FCurve *owner_fcu)
void BKE_fcurve_delete_keys_all(struct FCurve *fcu)
void BKE_fcurve_delete_key(struct FCurve *fcu, int index)
bool BKE_fcurve_calc_range(struct FCurve *fcu, float *min, float *max, bool do_sel_only, bool do_min_length)
void driver_variable_unique_name(struct DriverVar *dvar)
void BKE_driver_invalidate_expression(struct ChannelDriver *driver, bool expr_changed, bool varname_changed)
bool BKE_driver_has_simple_expression(struct ChannelDriver *driver)
struct DriverVar * driver_add_new_variable(struct ChannelDriver *driver)
void driver_free_variable_ex(struct ChannelDriver *driver, struct DriverVar *dvar)
void driver_change_variable_type(struct DriverVar *dvar, int type)
void driver_variable_name_validate(struct DriverVar *dvar)
void BKE_reportf(ReportList *reports, eReportType type, const char *format,...) ATTR_PRINTF_FORMAT(3
void BKE_report(ReportList *reports, eReportType type, const char *message)
void BLI_addtail(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
int BLI_findindex(const struct ListBase *listbase, const void *vlink) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
char * BLI_strdup(const char *str) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL() ATTR_MALLOC
char * BLI_strncpy_utf8(char *__restrict dst, const char *__restrict src, size_t maxncpy) ATTR_NONNULL(1
#define SET_FLAG_FROM_TEST(value, test, flag)
#define BLT_I18NCONTEXT_ID_ACTION
#define BLT_I18NCONTEXT_ID_ID
void DEG_id_tag_update_ex(struct Main *bmain, struct ID *id, int flag)
void DEG_id_tag_update(struct ID *id, int flag)
void DEG_relations_tag_update(struct Main *bmain)
@ DTAR_TRANSCHAN_SCALE_AVG
@ FCM_EXTRAPOLATE_CYCLIC_OFFSET
@ FCURVE_COLOR_AUTO_RAINBOW
@ FCM_NOISE_MODIF_REPLACE
@ FCM_NOISE_MODIF_SUBTRACT
@ FCM_NOISE_MODIF_MULTIPLY
@ DVAR_TYPE_TRANSFORM_CHAN
@ FMODIFIER_TYPE_FN_GENERATOR
@ FMODIFIER_TYPE_GENERATOR
@ FMODIFIER_TYPE_ENVELOPE
@ FCM_GENERATOR_POLYNOMIAL_FACTORISED
@ FCM_GENERATOR_POLYNOMIAL
@ FMODIFIER_FLAG_USEINFLUENCE
@ FMODIFIER_FLAG_DISABLED
@ FMODIFIER_FLAG_RANGERESTRICT
@ DTAR_ROTMODE_QUATERNION
@ DTAR_ROTMODE_SWING_TWIST_X
@ DTAR_ROTMODE_SWING_TWIST_Y
@ DTAR_ROTMODE_SWING_TWIST_Z
@ FCURVE_EXTRAPOLATE_CONSTANT
@ FCURVE_EXTRAPOLATE_LINEAR
@ FCURVE_SMOOTH_CONT_ACCEL
Object is a sort of wrapper for general info.
@ UI_PANEL_DATA_EXPAND_ROOT
_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
Read Guarded memory(de)allocation.
#define MEM_recallocN(vmemh, len)
#define MEM_reallocN(vmemh, len)
Group Output data from inside of a node group A color picker Mix two input colors RGB to Convert a color s luminance to a grayscale value Generate a normal vector and a dot product Bright Control the brightness and contrast of the input color Vector Map an input vectors to used to fine tune the interpolation of the input Camera Retrieve information about the camera and how it relates to the current shading point s position CLAMP
in reality light always falls off quadratically Particle Retrieve the data of the particle that spawned the object for example to give variation to multiple instances of an object Point Retrieve information about points in a point cloud Retrieve the edges of an object as it appears to Cycles topology will always appear triangulated Convert a blackbody temperature to an RGB value Normal Generate a perturbed normal from an RGB normal map image Typically used for faking highly detailed surfaces Generate an OSL shader from a file or text data block Image Sample an image file as a texture Sky Generate a procedural sky texture Noise Generate fractal Perlin noise Wave Generate procedural bands or rings with noise Voronoi Generate Worley noise based on the distance to random points Typically used to generate textures such as or biological cells Brick Generate a procedural texture producing bricks Texture Retrieve multiple types of texture coordinates nTypically used as inputs for texture nodes Vector Convert a point
#define RNA_POINTER_INVALIDATE(ptr)
StructRNA * ID_code_to_RNA_type(short idcode)
#define RNA_MAX_ARRAY_DIMENSION
#define RNA_ENUM_ITEM_SEPR
@ PROPOVERRIDE_OVERRIDABLE_LIBRARY
return(oflags[bm->toolflag_index].f &oflag) !=0
int insert_vert_fcurve(FCurve *fcu, float x, float y, eBezTriple_KeyframeType keyframe_type, eInsertKeyFlags flag)
Main Key-framing API call.
void(* MEM_freeN)(void *vmemh)
void *(* MEM_mallocN)(size_t len, const char *str)
T length(const vec_base< T, Size > &a)
const EnumPropertyItem rna_enum_id_type_items[]
void RNA_pointer_create(ID *id, StructRNA *type, void *data, PointerRNA *r_ptr)
PointerRNA rna_pointer_inherit_refine(PointerRNA *ptr, StructRNA *type, void *data)
const EnumPropertyItem rna_enum_beztriple_interpolation_mode_items[]
const EnumPropertyItem rna_enum_keyframe_handle_type_items[]
PropertyRNA * RNA_def_float(StructOrFunctionRNA *cont_, const char *identifier, float default_value, float hardmin, float hardmax, const char *ui_name, const char *ui_description, float softmin, float softmax)
void RNA_def_struct_refine_func(StructRNA *srna, const char *refine)
void RNA_def_property_pointer_sdna(PropertyRNA *prop, const char *structname, const char *propname)
PropertyRNA * RNA_def_boolean(StructOrFunctionRNA *cont_, const char *identifier, bool default_value, const char *ui_name, const char *ui_description)
PropertyRNA * RNA_def_enum_flag(StructOrFunctionRNA *cont_, const char *identifier, const EnumPropertyItem *items, int default_value, const char *ui_name, const char *ui_description)
PropertyRNA * RNA_def_pointer(StructOrFunctionRNA *cont_, const char *identifier, const char *type, const char *ui_name, const char *ui_description)
void RNA_def_property_boolean_sdna(PropertyRNA *prop, const char *structname, const char *propname, int64_t bit)
void RNA_def_parameter_clear_flags(PropertyRNA *prop, PropertyFlag flag_property, ParameterFlag flag_parameter)
void RNA_def_property_string_funcs(PropertyRNA *prop, const char *get, const char *length, const char *set)
void RNA_def_property_float_default(PropertyRNA *prop, float value)
void RNA_def_function_return(FunctionRNA *func, PropertyRNA *ret)
void RNA_def_property_enum_default(PropertyRNA *prop, int value)
void RNA_def_property_float_funcs(PropertyRNA *prop, const char *get, const char *set, const char *range)
void RNA_def_property_ui_text(PropertyRNA *prop, const char *name, const char *description)
void RNA_def_property_string_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_property_ui_icon(PropertyRNA *prop, int icon, int consecutive)
FunctionRNA * RNA_def_function(StructRNA *srna, const char *identifier, const char *call)
void RNA_def_property_srna(PropertyRNA *prop, const char *type)
void RNA_def_struct_ui_text(StructRNA *srna, const char *name, const char *description)
void RNA_def_function_output(FunctionRNA *UNUSED(func), PropertyRNA *ret)
void RNA_def_property_boolean_funcs(PropertyRNA *prop, const char *get, const char *set)
void RNA_def_property_dynamic_array_funcs(PropertyRNA *prop, const char *getlength)
PropertyRNA * RNA_def_float_vector(StructOrFunctionRNA *cont_, const char *identifier, int len, const float *default_value, float hardmin, float hardmax, const char *ui_name, const char *ui_description, float softmin, float softmax)
void RNA_def_property_enum_items(PropertyRNA *prop, const EnumPropertyItem *item)
void RNA_def_struct_sdna(StructRNA *srna, const char *structname)
void RNA_def_property_array(PropertyRNA *prop, int length)
void RNA_def_property_range(PropertyRNA *prop, double min, double max)
void RNA_def_struct_sdna_from(StructRNA *srna, const char *structname, const char *propname)
void RNA_def_property_struct_type(PropertyRNA *prop, const char *type)
void RNA_def_property_collection_sdna(PropertyRNA *prop, const char *structname, const char *propname, const char *lengthpropname)
void RNA_def_function_ui_description(FunctionRNA *func, const char *description)
void RNA_def_property_update(PropertyRNA *prop, int noteflag, const char *func)
void RNA_def_property_enum_funcs(PropertyRNA *prop, const char *get, const char *set, const char *item)
void RNA_def_property_editable_func(PropertyRNA *prop, const char *editable)
PropertyRNA * RNA_def_property(StructOrFunctionRNA *cont_, const char *identifier, int type, int subtype)
void RNA_def_property_enum_bitflag_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_struct_name_property(struct StructRNA *srna, struct PropertyRNA *prop)
void RNA_def_function_flag(FunctionRNA *func, int flag)
void RNA_def_property_clear_flag(PropertyRNA *prop, PropertyFlag flag)
void RNA_def_property_pointer_funcs(PropertyRNA *prop, const char *get, const char *set, const char *type_fn, const char *poll)
StructRNA * RNA_def_struct(BlenderRNA *brna, const char *identifier, const char *from)
void RNA_def_property_enum_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_struct_ui_icon(StructRNA *srna, int icon)
void RNA_def_property_translation_context(PropertyRNA *prop, const char *context)
void RNA_def_property_flag(PropertyRNA *prop, PropertyFlag flag)
PropertyRNA * RNA_def_int(StructOrFunctionRNA *cont_, const char *identifier, int default_value, int hardmin, int hardmax, const char *ui_name, const char *ui_description, int softmin, int softmax)
void RNA_def_property_float_sdna(PropertyRNA *prop, const char *structname, const char *propname)
PropertyRNA * RNA_def_enum(StructOrFunctionRNA *cont_, const char *identifier, const EnumPropertyItem *items, int default_value, const char *ui_name, const char *ui_description)
void RNA_def_property_int_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_property_boolean_negative_sdna(PropertyRNA *prop, const char *structname, const char *propname, int64_t booleanbit)
void RNA_def_property_override_flag(PropertyRNA *prop, PropertyOverrideFlag flag)
void RNA_def_parameter_flags(PropertyRNA *prop, PropertyFlag flag_property, ParameterFlag flag_parameter)
static void rna_def_fmodifier_noise(BlenderRNA *brna)
static void rna_def_fmodifier_envelope(BlenderRNA *brna)
void RNA_def_fcurve(BlenderRNA *brna)
const EnumPropertyItem rna_enum_fmodifier_type_items[]
static void rna_def_fmodifier(BlenderRNA *brna)
static void rna_def_channeldriver(BlenderRNA *brna)
static void rna_def_channeldriver_variables(BlenderRNA *brna, PropertyRNA *cprop)
const EnumPropertyItem rna_enum_beztriple_interpolation_easing_items[]
static void rna_def_drivervar(BlenderRNA *brna)
static void rna_def_fmodifier_cycles(BlenderRNA *brna)
static void rna_def_drivertarget(BlenderRNA *brna)
static void rna_def_fcurve_keyframe_points(BlenderRNA *brna, PropertyRNA *cprop)
static void rna_def_fmodifier_stepped(BlenderRNA *brna)
static void rna_def_fmodifier_generator(BlenderRNA *brna)
const EnumPropertyItem rna_enum_beztriple_keyframe_type_items[]
const EnumPropertyItem rna_enum_fcurve_auto_smoothing_items[]
static void rna_def_fcurve(BlenderRNA *brna)
const EnumPropertyItem rna_enum_driver_target_rotation_mode_items[]
static void rna_def_fmodifier_limits(BlenderRNA *brna)
static void rna_def_fmodifier_python(BlenderRNA *brna)
static void rna_def_fpoint(BlenderRNA *brna)
static void rna_def_fmodifier_envelope_ctrl(BlenderRNA *brna)
static void rna_def_fmodifier_function_generator(BlenderRNA *brna)
static void rna_def_fmodifier_envelope_control_points(BlenderRNA *brna, PropertyRNA *cprop)
static void rna_def_fkeyframe(BlenderRNA *brna)
static void rna_def_fcurve_modifiers(BlenderRNA *brna, PropertyRNA *cprop)
void RNA_api_fcurves(StructRNA *srna)
void RNA_api_drivers(StructRNA *UNUSED(srna))
void(* verify_data)(struct FModifier *fcm)
void WM_main_add_notifier(unsigned int type, void *reference)