51 "Generate a curve using a factorized or expanded polynomial"},
56 "Generate a curve using standard math functions such as sin and cos"},
61 "Reshape F-Curve values, e.g. change amplitude of movements"},
70 "Restrict maximum and minimum values of F-Curve"},
74 "Stepped Interpolation",
75 "Snap values to nearest grid step, e.g. for a stop-motion look"},
84 "Automatic handles only take immediately adjacent keys into account"},
88 "Continuous Acceleration",
89 "Automatic handles are adjusted to avoid jumps in acceleration, resulting "
90 "in smoother curves. However, key changes may affect interpolation over a "
91 "larger stretch of the curve"},
98 ICON_KEYTYPE_KEYFRAME_VEC,
100 "Normal keyframe, e.g. for key poses"},
103 ICON_KEYTYPE_BREAKDOWN_VEC,
105 "A breakdown pose, e.g. for transitions between key poses"},
108 ICON_KEYTYPE_MOVING_HOLD_VEC,
110 "A keyframe that is part of a moving hold"},
113 ICON_KEYTYPE_EXTREME_VEC,
115 "An \"extreme\" pose, or some other purpose as needed"},
118 ICON_KEYTYPE_JITTER_VEC,
120 "A filler or baked keyframe for keying on ones, or some other purpose as needed"},
128 ICON_IPO_EASE_IN_OUT,
130 "Easing type is chosen automatically based on what the type of interpolation used "
131 "(e.g. Ease In for transitional types, and Ease Out for dynamic effects)"},
137 "Only on the end closest to the next keyframe"},
142 "Only on the end closest to the first keyframe"},
145 ICON_IPO_EASE_IN_OUT,
147 "Segment between both keyframes"},
152 {
DTAR_ROTMODE_AUTO,
"AUTO", 0,
"Auto Euler",
"Euler using the rotation order of the target"},
164 "Decompose into a swing rotation to aim the X axis, followed by twist around it"},
169 "Decompose into a swing rotation to aim the Y axis, followed by twist around it"},
174 "Decompose into a swing rotation to aim the Z axis, followed by twist around it"},
199 return &RNA_FModifierFilter;
221 static bool rna_ChannelDriver_is_simple_expression_get(
PointerRNA *
ptr)
250 rna_ChannelDriver_update_data(bmain,
scene,
ptr);
269 rna_ChannelDriver_update_data(bmain,
scene, &driverptr);
277 rna_DriverTarget_update_data(bmain,
scene,
ptr);
315 static void rna_DriverTarget_id_type_set(
PointerRNA *
ptr,
int value)
322 data->idtype = value;
335 static void rna_DriverTarget_RnaPath_get(
PointerRNA *
ptr,
char *value)
359 static void rna_DriverTarget_RnaPath_set(
PointerRNA *
ptr,
const char *value)
377 static void rna_DriverVariable_type_set(
PointerRNA *
ptr,
int value)
385 void rna_DriverVariable_name_set(
PointerRNA *
ptr,
const char *value)
401 static void rna_Driver_remove_variable(
ChannelDriver *driver,
417 static void rna_FKeyframe_handle1_get(
PointerRNA *
ptr,
float *values)
421 values[0] = bezt->
vec[0][0];
422 values[1] = bezt->
vec[0][1];
425 static void rna_FKeyframe_handle1_set(
PointerRNA *
ptr,
const float *values)
429 bezt->
vec[0][0] = values[0];
430 bezt->
vec[0][1] = values[1];
433 static void rna_FKeyframe_handle2_get(
PointerRNA *
ptr,
float *values)
437 values[0] = bezt->
vec[2][0];
438 values[1] = bezt->
vec[2][1];
441 static void rna_FKeyframe_handle2_set(
PointerRNA *
ptr,
const float *values)
445 bezt->
vec[2][0] = values[0];
446 bezt->
vec[2][1] = values[1];
449 static void rna_FKeyframe_ctrlpoint_get(
PointerRNA *
ptr,
float *values)
453 values[0] = bezt->
vec[1][0];
454 values[1] = bezt->
vec[1][1];
457 static void rna_FKeyframe_ctrlpoint_set(
PointerRNA *
ptr,
const float *values)
461 bezt->
vec[1][0] = values[0];
462 bezt->
vec[1][1] = values[1];
465 static void rna_FKeyframe_ctrlpoint_ui_set(
PointerRNA *
ptr,
const float *values)
469 const float frame_delta = values[0] - bezt->
vec[1][0];
470 const float value_delta = values[1] - bezt->
vec[1][1];
476 bezt->
vec[0][0] += frame_delta;
477 bezt->
vec[0][1] += value_delta;
479 bezt->
vec[1][0] = values[0];
480 bezt->
vec[1][1] = values[1];
482 bezt->
vec[2][0] += frame_delta;
483 bezt->
vec[2][1] += value_delta;
488 static void rna_FCurve_RnaPath_get(
PointerRNA *
ptr,
char *value)
512 static void rna_FCurve_RnaPath_set(
PointerRNA *
ptr,
const char *value)
540 printf(
"ERROR: one of the ID's for the groups to assign to is invalid (ptr=%p, val=%p)\n",
545 else if (value.
data && (pid != vid)) {
547 printf(
"ERROR: ID's differ - ptr=%p vs value=%p\n", pid, vid);
565 printf(
"ERROR: F-Curve already belongs to this group\n");
574 printf(
"ERROR: cannot assign F-Curve to group, since F-Curve is not attached to any ID\n");
579 printf(
"ERROR: F-Curve (%p) doesn't exist in action '%s'\n", fcu, act->
id.
name);
600 static void rna_FCurve_range(
FCurve *fcu,
float range[2])
611 static void rna_tag_animation_update(
Main *bmain,
ID *
id)
625 static void rna_FCurve_update_data_ex(
ID *
id,
FCurve *fcu,
Main *bmain)
630 rna_tag_animation_update(bmain,
id);
640 static void rna_FCurve_update_data_relations(
Main *bmain,
695 static void rna_FModifier_start_frame_set(
PointerRNA *
ptr,
float value)
708 static void rna_FModifier_end_frame_set(
PointerRNA *
ptr,
float value)
739 static void rna_FModifier_end_frame_range(
753 static void rna_FModifier_blending_range(
771 rna_tag_animation_update(bmain,
id);
780 if (fmi && fmi->verify_data) {
784 rna_FModifier_update(bmain,
scene,
ptr);
792 for (fm = fmo->
prev; fm; fm = fm->
prev) {
795 for (fm = fmo->
next; fm; fm = fm->
next) {
799 rna_FModifier_update(bmain,
scene,
ptr);
802 static int rna_FModifierGenerator_coefficients_get_length(
PointerRNA *
ptr,
809 length[0] = gen->arraysize;
818 static void rna_FModifierGenerator_coefficients_get(
PointerRNA *
ptr,
float *values)
822 memcpy(values, gen->coefficients, gen->arraysize *
sizeof(
float));
825 static void rna_FModifierGenerator_coefficients_set(
PointerRNA *
ptr,
const float *values)
829 memcpy(gen->coefficients, values, gen->arraysize *
sizeof(
float));
832 static void rna_FModifierLimits_minx_set(
PointerRNA *
ptr,
float value)
837 data->rect.xmin = value;
844 static void rna_FModifierLimits_maxx_set(
PointerRNA *
ptr,
float value)
849 data->rect.xmax = value;
856 static void rna_FModifierLimits_miny_set(
PointerRNA *
ptr,
float value)
861 data->rect.ymin = value;
868 static void rna_FModifierLimits_maxy_set(
PointerRNA *
ptr,
float value)
873 data->rect.ymax = value;
895 static void rna_FModifierLimits_maxx_range(
923 static void rna_FModifierLimits_maxy_range(
936 static void rna_FModifierStepped_start_frame_range(
946 static void rna_FModifierStepped_end_frame_range(
956 static void rna_FModifierStepped_frame_start_set(
PointerRNA *
ptr,
float value)
961 float prop_clamp_min = -FLT_MAX, prop_clamp_max = FLT_MAX, prop_soft_min, prop_soft_max;
962 rna_FModifierStepped_start_frame_range(
963 ptr, &prop_clamp_min, &prop_clamp_max, &prop_soft_min, &prop_soft_max);
964 value =
CLAMPIS(value, prop_clamp_min, prop_clamp_max);
969 data->start_frame = value;
973 static void rna_FModifierStepped_frame_end_set(
PointerRNA *
ptr,
float value)
978 float prop_clamp_min = -FLT_MAX, prop_clamp_max = FLT_MAX, prop_soft_min, prop_soft_max;
979 rna_FModifierStepped_end_frame_range(
980 ptr, &prop_clamp_min, &prop_clamp_max, &prop_soft_min, &prop_soft_max);
981 value =
CLAMPIS(value, prop_clamp_min, prop_clamp_max);
986 data->end_frame = value;
990 static BezTriple *rna_FKeyframe_points_insert(
991 ID *
id,
FCurve *fcu,
Main *bmain,
float frame,
float value,
int keyframe_type,
int flag)
996 if ((fcu->
bezt) && (index >= 0)) {
997 rna_tag_animation_update(bmain,
id);
999 return fcu->
bezt + index;
1005 static void rna_FKeyframe_points_add(
ID *
id,
FCurve *fcu,
Main *bmain,
int tot)
1023 rna_tag_animation_update(bmain,
id);
1027 static void rna_FKeyframe_points_remove(
1031 int index = (int)(bezt - fcu->
bezt);
1032 if (index < 0 || index >= fcu->
totvert) {
1040 rna_tag_animation_update(bmain,
id);
1050 rna_tag_animation_update(bmain,
id);
1056 fed.
f1 = fed.
f2 = 0;
1071 if (i < env->totvert) {
1084 *(env->
data + i) = fed;
1085 return (env->
data + i);
1088 static void rna_FModifierEnvelope_points_remove(
1094 int index = (
int)(cp - env->
data);
1097 if (index < 0 || index >= env->
totvert) {
1102 rna_tag_animation_update(bmain,
id);
1107 memmove(env->
data + index,
1108 env->
data + (index + 1),
1132 static void rna_FModifier_show_expanded_set(
PointerRNA *
ptr,
bool value)
1148 "POLYNOMIAL_FACTORISED",
1150 "Factorized Polynomial",
1157 srna,
"Generator F-Modifier",
"Deterministically generate values for the modified F-Curve");
1165 "Values generated by this modifier are applied on top of "
1166 "the existing values instead of overwriting them");
1180 "The highest power of 'x' for this polynomial (number of coefficients - 1)");
1191 "rna_FModifierGenerator_coefficients_get",
1192 "rna_FModifierGenerator_coefficients_set",
1195 prop,
"Coefficients",
"Coefficients for 'x' (starting from lowest power of x^0)");
1208 {0,
"SIN", 0,
"Sine",
""},
1209 {1,
"COS", 0,
"Cosine",
""},
1210 {2,
"TAN", 0,
"Tangent",
""},
1211 {3,
"SQRT", 0,
"Square Root",
""},
1212 {4,
"LN", 0,
"Natural Logarithm",
""},
1213 {5,
"SINC", 0,
"Normalized Sine",
"sin(x) / x"},
1217 srna =
RNA_def_struct(brna,
"FModifierFunctionGenerator",
"FModifier");
1219 srna,
"Built-In Function F-Modifier",
"Generate values using a built-in function");
1225 prop,
"Amplitude",
"Scale factor determining the maximum/minimum values");
1230 prop,
"Phase Multiple",
"Scale factor determining the 'speed' of the function");
1246 "Values generated by this modifier are applied on top of "
1247 "the existing values instead of overwriting them");
1304 srna,
"Control Points",
"Control points defining the shape of the envelope");
1315 "Frame to add this control-point",
1320 func,
"point",
"FModifierEnvelopeControlPoint",
"",
"Newly created control-point");
1323 func =
RNA_def_function(srna,
"remove",
"rna_FModifierEnvelope_points_remove");
1327 func,
"point",
"FModifierEnvelopeControlPoint",
"",
"Control-point to remove");
1345 prop,
"Control Points",
"Control points defining the shape of the envelope");
1352 prop,
"Reference Value",
"Value that envelope's influence is centered around / based on");
1358 prop,
"Default Minimum",
"Lower distance from Reference Value for 1:1 default influence");
1364 prop,
"Default Maximum",
"Upper distance from Reference Value for 1:1 default influence");
1381 "Repeat with Offset",
1382 "Repeat keyframe range, but with offset based on gradient between "
1383 "start and end values"},
1388 "Alternate between forward and reverse playback of keyframe range"},
1408 "Maximum number of cycles to allow before first keyframe (0 = infinite)");
1422 "Maximum number of cycles to allow after last keyframe (0 = infinite)");
1435 srna,
"Python F-Modifier",
"Perform user-defined operation on the modified F-Curve");
1448 srna,
"Limit F-Modifier",
"Limit the time/value ranges of the modified F-Curve");
1474 prop,
NULL,
"rna_FModifierLimits_minx_set",
"rna_FModifierLimits_minx_range");
1481 prop,
NULL,
"rna_FModifierLimits_miny_set",
"rna_FModifierLimits_miny_range");
1488 prop,
NULL,
"rna_FModifierLimits_maxx_set",
"rna_FModifierLimits_maxx_range");
1495 prop,
NULL,
"rna_FModifierLimits_maxy_set",
"rna_FModifierLimits_maxy_range");
1535 "Amplitude of the noise - the amount that it modifies the underlying curve");
1564 "Stepped Interpolation F-Modifier",
1565 "Hold each interpolated value from the F-Curve for several frames without "
1566 "changing the timing");
1579 "Reference number of frames before frames get held "
1580 "(use to get hold for '1-3' vs '5-7' holding patterns)");
1586 prop,
"Use Start Frame",
"Restrict modifier to only act after its 'start' frame");
1592 prop,
"Use End Frame",
"Restrict modifier to only act before its 'end' frame");
1599 "rna_FModifierStepped_frame_start_set",
1600 "rna_FModifierStepped_start_frame_range");
1602 prop,
"Start Frame",
"Frame that modifier's influence starts (if applicable)");
1608 prop,
NULL,
"rna_FModifierStepped_frame_end_set",
"rna_FModifierStepped_end_frame_range");
1610 prop,
"End Frame",
"Frame that modifier's influence ends (if applicable)");
1658 prop,
"Disabled",
"F-Curve Modifier has invalid settings and will not be evaluated");
1674 "Restrict Frame Range",
1675 "F-Curve Modifier is only applied for the specified frame range to help "
1676 "mask off effects in order to chain them");
1682 prop,
NULL,
"rna_FModifier_start_frame_set",
"rna_FModifier_start_frame_range");
1686 "Frame that modifier's influence starts (if Restrict Frame Range is in use)");
1692 prop,
NULL,
"rna_FModifier_end_frame_set",
"rna_FModifier_end_frame_range");
1696 "Frame that modifier's influence ends (if Restrict Frame Range is in use)");
1703 prop,
"Blend In",
"Number of frames from start frame for influence to take effect");
1710 prop,
"Blend Out",
"Number of frames from end frame for influence to fade out");
1717 prop,
"Use Influence",
"F-Curve Modifier's effects will be tempered by a default factor");
1725 prop,
"Influence",
"Amount of influence F-Curve Modifier will have when not fading in/out");
1758 "Transforms include effects of parenting/restpose and constraints"},
1763 "Transforms don't include parenting/restpose or constraints"},
1768 "Transforms include effects of constraints but not "
1769 "parenting/restpose"},
1784 prop,
NULL,
"rna_DriverTarget_id_set",
"rna_DriverTarget_id_typef",
NULL);
1787 "ID-block that the specific property used can be found from "
1788 "(id_type property must be set first)");
1804 "rna_DriverTarget_RnaPath_get",
1805 "rna_DriverTarget_RnaPath_length",
1806 "rna_DriverTarget_RnaPath_set");
1844 "Use the value from some RNA property (Default)"},
1847 ICON_DRIVER_TRANSFORM,
1848 "Transform Channel",
1849 "Final transformation value of object or bone"},
1852 ICON_DRIVER_ROTATIONAL_DIFFERENCE,
1853 "Rotational Difference",
1854 "Use the angle between two bones"},
1857 ICON_DRIVER_DISTANCE,
1859 "Distance between two bones or objects"},
1866 srna,
"Driver Variable",
"Variable from some source/target for driver relationship");
1875 "Name to use in scripted expressions/functions (no spaces or dots are allowed, "
1876 "and must start with a letter)");
1915 srna,
"ChannelDriver Variables",
"Collection of channel driver Variables");
1921 parm =
RNA_def_pointer(func,
"var",
"DriverVariable",
"",
"Newly created Driver Variable");
1930 func,
"variable",
"DriverVariable",
"",
"Variable to remove from the driver");
1952 srna,
"Driver",
"Driver for the value of a setting based on an external value");
1980 "Include a 'self' variable in the name-space, "
1981 "so drivers can easily reference the data being modified (object, bone, etc...)");
1987 prop,
"Invalid",
"Driver could not be evaluated in past, so should be skipped");
1994 "Simple Expression",
1995 "The scripted expression can be evaluated without using the full python interpreter");
2037 srna,
"Keyframe",
"Bezier curve point with two handles defining a Keyframe on an F-Curve");
2073 "Interpolation method to use for segment of the F-Curve from "
2074 "this Keyframe until the next Keyframe");
2088 "Which ends of the segment between this and the next keyframe easing "
2089 "interpolation is applied to");
2101 prop,
"Amplitude",
"Amount to boost elastic bounces for 'elastic' easing");
2114 prop,
"rna_FKeyframe_handle1_get",
"rna_FKeyframe_handle1_set",
NULL);
2116 prop,
"Left Handle",
"Coordinates of the left handle (before the control point)");
2122 prop,
"rna_FKeyframe_ctrlpoint_get",
"rna_FKeyframe_ctrlpoint_set",
NULL);
2130 prop,
"rna_FKeyframe_ctrlpoint_get",
"rna_FKeyframe_ctrlpoint_ui_set",
NULL);
2134 "Coordinates of the control point. Note: Changing this value also updates the handles "
2135 "similar to using the graph editor transform operator");
2142 prop,
"rna_FKeyframe_handle2_get",
"rna_FKeyframe_handle2_set",
NULL);
2144 prop,
"Right Handle",
"Coordinates of the right handle (after the control point)");
2166 prop,
"rna_FCurve_active_modifier_get",
"rna_FCurve_active_modifier_set",
NULL,
NULL);
2174 parm =
RNA_def_pointer(func,
"fmodifier",
"FModifier",
"",
"New fmodifier");
2185 parm =
RNA_def_pointer(func,
"modifier",
"FModifier",
"",
"Removed modifier");
2203 "Don't add any new keyframes, but just replace existing ones"},
2204 {
INSERTKEY_NEEDED,
"NEEDED", 0,
"Needed",
"Only adds keyframes that are needed"},
2209 "Fast keyframe insertion to avoid recalculating the curve each time"},
2227 "X Value of this keyframe point",
2237 "Y Value of this keyframe point",
2241 RNA_def_enum_flag(func,
"options", keyframe_flag_items, 0,
"",
"Keyframe options");
2247 "Type of keyframe to insert");
2248 parm =
RNA_def_pointer(func,
"keyframe",
"Keyframe",
"",
"Newly created keyframe");
2255 func,
"count", 1, 0, INT_MAX,
"Number",
"Number of points to add to the spline", 0, INT_MAX);
2261 parm =
RNA_def_pointer(func,
"keyframe",
"Keyframe",
"",
"Keyframe to remove");
2266 func,
"fast", 0,
"Fast",
"Fast keyframe removal to avoid recalculating the curve each time");
2281 "Hold values of endpoint keyframes"},
2286 "Use slope of curve leading in/out of endpoint keyframes"},
2294 "Cycle through the rainbow, trying to give each curve a unique color"},
2299 "Use axis colors for transform and color properties, and auto-rainbow for the rest"},
2303 "Auto WXYZ to YRGB",
2304 "Use axis colors for XYZ parts of transform, and yellow for the 'W' channel"},
2309 "Use custom hand-picked color for F-Curve"},
2324 "Method used for evaluating value of F-Curve outside first and last keyframes");
2343 prop,
"rna_FCurve_RnaPath_get",
"rna_FCurve_RnaPath_length",
"rna_FCurve_RnaPath_set");
2351 prop,
"RNA Array Index",
"Index to the specific property affected by F-Curve if applicable");
2359 prop,
"Color Mode",
"Method used to determine color of F-Curve in Graph Editor");
2388 prop,
"Hide",
"F-Curve and its keyframes are hidden in the Graph Editor graphs");
2394 prop,
"Auto Handle Smoothing",
"Algorithm used to compute automatic handles");
2403 "False when F-Curve could not be evaluated in past, so should be skipped "
2412 "True if the curve contributes no animation due to lack of "
2413 "keyframes or useful modifiers, and should be deleted");
2442 "Evaluate F-Curve at given frame",
2453 "Value of F-Curve specific frame",
2462 func,
"Ensure keyframes are sorted in chronological order and handles are set correctly");
2469 func,
"range", 2,
NULL, -FLT_MAX, FLT_MAX,
"Range",
"Min/Max values", -FLT_MAX, FLT_MAX);
2475 srna,
"update_autoflags",
"update_autoflags_fcurve");
2478 "Update FCurve flags set automatically from affected property "
2479 "(currently, integer/discrete flags set when the property is not a float)");
2482 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(struct ID *id)
int BKE_fcm_envelope_find_index(struct FCM_EnvelopeData *array, float frame, int arraylen, bool *r_exists)
bool BKE_fcurve_calc_range(struct FCurve *fcu, float *min, float *max, const bool do_sel_only, const bool do_min_length)
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 calchandles_fcurve(struct FCurve *fcu)
struct FModifier * add_fmodifier(ListBase *modifiers, int type, struct FCurve *owner_fcu)
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_report(ReportList *reports, ReportType type, const char *message)
void BKE_reportf(ReportList *reports, ReportType type, const char *format,...) ATTR_PRINTF_FORMAT(3
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()
#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 RGB to Bright Vector Camera CLAMP
#define RNA_POINTER_INVALIDATE(ptr)
StructRNA RNA_FModifierPython
StructRNA RNA_FModifierGenerator
StructRNA RNA_FModifierStepped
StructRNA RNA_FModifierEnvelope
StructRNA RNA_UnknownType
StructRNA RNA_FModifierNoise
StructRNA RNA_FModifierCycles
StructRNA RNA_FModifierLimits
StructRNA RNA_FModifierFunctionGenerator
StructRNA * ID_code_to_RNA_type(short idcode)
#define RNA_MAX_ARRAY_DIMENSION
@ PROPOVERRIDE_OVERRIDABLE_LIBRARY
return(oflags[bm->toolflag_index].f &oflag) !=0
SIMD_FORCE_INLINE btScalar length(const btQuaternion &q)
Return the length of a quaternion.
void delete_fcurve_key(FCurve *fcu, int index, bool do_recalc)
int insert_vert_fcurve(FCurve *fcu, float x, float y, eBezTriple_KeyframeType keyframe_type, eInsertKeyFlags flag)
void(* MEM_freeN)(void *vmemh)
void *(* MEM_mallocN)(size_t len, const char *str)
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)