Blender V4.3
FCurve Struct Reference

#include <DNA_anim_types.h>

Public Attributes

struct FCurvenext
 
struct FCurveprev
 
bActionGroupgrp
 
ChannelDriverdriver
 
ListBase modifiers
 
BezTriplebezt
 
FPointfpt
 
unsigned int totvert
 
int active_keyframe_index
 
float curval
 
short flag
 
short extend
 
char auto_smoothing
 
char _pad [3]
 
int array_index
 
char * rna_path
 
int color_mode
 
float color [3]
 
float prev_norm_factor
 
float prev_offset
 

Detailed Description

'Function-Curve' - defines values over time for a given setting (fcu).

Definition at line 591 of file DNA_anim_types.h.

Member Data Documentation

◆ _pad

char FCurve::_pad[3]

Definition at line 632 of file DNA_anim_types.h.

◆ active_keyframe_index

int FCurve::active_keyframe_index

Index of active keyframe in bezt for numerical editing in the interface. A value of FCURVE_ACTIVE_KEYFRAME_NONE indicates that the FCurve has no active keyframe.

Do not access directly, use BKE_fcurve_active_keyframe_index() and BKE_fcurve_active_keyframe_set() instead.

Definition at line 620 of file DNA_anim_types.h.

Referenced by BKE_fcurve_active_keyframe_index(), BKE_fcurve_active_keyframe_set(), BKE_fcurve_delete_keys_selected(), and blender::bke::tests::TEST().

◆ array_index

int FCurve::array_index

When the RNA property from rna_path is an array, use this to access the array index.

Note
This may be negative (as it wasn't prevented in 2.91 and older). Currently it silently fails to resolve the data-path in this case.

Definition at line 641 of file DNA_anim_types.h.

Referenced by acf_nla_curve_name(), blender::animrig::action_fcurve_attach(), alloc_driver_fcurve(), ANIM_channel_draw_widgets(), animsys_blend_in_fcurves(), animsys_evaluate_action_group(), blender::animrig::autokeyframe_property(), BKE_animsys_eval_driver(), BKE_fcurve_pathcache_find_array(), blender::deg::DepsgraphNodeBuilder::build_driver(), blender::deg::DepsgraphRelationBuilder::build_driver(), blender::deg::DepsgraphRelationBuilder::build_driver_data(), blender::deg::DepsgraphRelationBuilder::build_driver_variables(), clean_fcurve(), copy_animedit_keys(), blender::animrig::create_fcurve_for_channel(), blender::deg::DriverDescriptor::depsgraph_key(), do_version_bbone_len_scale_fcurve_fix(), euler_filter_group_channels(), blender::animrig::evaluate_driver_from_rna_pointer(), blender::animrig::tests::ActionLegacyTest::fcurve_add_legacy(), fcurve_cmp_for_cache(), fcurve_is_changed(), get_default_rna_value(), getname_anim_fcurve(), getname_anim_fcurve_for_slot(), graph_driver_delete_invalid_exec(), graph_refresh_fcurve_colors(), icu_to_fcurves(), blender::deg::AnimationBackup::init_from_id(), blender::animrig::insert_keyframe_direct(), AnimationImporter::modify_fcurve(), pastebuf_match_index_only(), pastebuf_match_path_full(), pastebuf_match_path_property(), pose_slide_apply_props(), pose_slide_apply_quat(), pose_slide_apply_vec3(), and updateDuplicateActionConstraintSettings().

◆ auto_smoothing

◆ bezt

BezTriple* FCurve::bezt

User-editable keyframes (array).

Definition at line 607 of file DNA_anim_types.h.

Referenced by action_flip_pchan_cache_fcurve_assign_value(), action_flip_pchan_cache_init(), ActionFCurveToTransData(), add_extrapolation_point_left(), add_extrapolation_point_right(), blender::animrig::tests::add_keyframe(), BCAnimationCurve::adjust_range(), blender::animrig::tests::allocate_keyframes(), ANIM_channel_draw_widgets(), ANIM_fcurve_equalize_keyframes_loop(), ANIM_fcurve_keyframes_loop(), ANIM_paste_driver(), AnimationImporter::Assign_lens_animations(), blender::animrig::bake_fcurve(), blender::animrig::bake_fcurve_segments(), BKE_fcurve_active_keyframe_index(), BKE_fcurve_active_keyframe_set(), BKE_fcurve_bezt_shrink(), BKE_fcurve_blend_read_data(), BKE_fcurve_blend_write_data(), BKE_fcurve_calc_bounds(), BKE_fcurve_calc_range(), BKE_fcurve_copy(), BKE_fcurve_deduplicate_keys(), BKE_fcurve_delete_key(), BKE_fcurve_delete_keys(), BKE_fcurve_delete_keys_selected(), BKE_fcurve_deselect_all_keys(), BKE_fcurve_free(), BKE_fcurve_handles_recalc_ex(), BKE_fcurve_has_selected_control_points(), BKE_fcurve_merge_duplicate_keys(), BKE_fcurves_calc_keyed_frames_ex(), BKE_nlastrip_validate_fcurves(), blend_offset_fcurve_segment(), blend_to_default_fcurve(), blend_to_default_graph_keys(), blend_to_ease_fcurve_segment(), blend_to_neighbor_fcurve_segment(), breakdown_fcurve_segment(), btw_smooth_allocate_operator_data(), btw_smooth_graph_keys(), blender::editor::animation::tests::build_fcurve(), butterworth_smooth_fcurve_segment(), calculate_bezt_bounds(), channels_bake_exec(), clean_fcurve(), BCAnimationCurve::clean_handles(), BCAnimationCurve::closest_index_above(), BCAnimationCurve::closest_index_below(), AnimationExporter::collada_tangent_from_curve(), copy_animedit_keys(), count_fcurve_keys(), createTransActionData(), createTransGraphEditData(), decimate_fcurve(), decimate_fcurve_segment(), delete_key_button_exec(), do_versions_291_fcurve_handles_limit(), do_versions_sequencer_speed_effect_recursive(), draw_fcurve(), draw_fcurve_active_handle_vertices(), draw_fcurve_active_vertex(), draw_fcurve_curve_keys(), draw_fcurve_handles(), draw_fcurve_selected_handle_vertices(), draw_fcurve_selected_keyframe_vertices(), duplicate_fcurve_keys(), ease_fcurve_segment(), ED_keyframes_add(), euler_filter_multi_channel(), euler_filter_single_channel(), evaluate_fcurve_ex(), fcm_cycles_time(), fcu_test_selected(), fcurve_bezt_free(), blender::bke::greasepencil::convert::fcurve_convert_thickness_cb(), blender::animrig::fcurve_delete_keyframe_at_time(), fcurve_frame_has_keyframe(), fcurve_samples_to_keyframes(), fcurve_scene_coord_range_get(), fcurve_segment_end_get(), fcurve_segment_start_get(), fcurve_store_samples(), fcurve_to_keylist(), find_closest_frame(), find_fcurve_segment(), find_fcurve_segments(), AnimationImporter::find_frames(), find_last_key(), find_next_key(), blender::ed::object::followpath_path_animate_exec(), gaussian_smooth_allocate_operator_data(), gaussian_smooth_graph_keys(), get_active_fcurve_keyframe_edit(), get_bounding_bezt_index_range(), get_bounding_bezt_indices(), BCAnimationCurve::get_frames(), BCAnimationCurve::get_interpolation_type(), get_nearest_fcurve_verts_list(), BCAnimationCurve::get_value_map(), BCAnimationCurve::get_values(), graph_key_shortest_dist(), graph_panel_key_properties(), graphkeys_select_key_handles(), graphop_editable_keyframes_poll(), graphop_visible_keyframes_poll(), icu_to_fcurves(), blender::animrig::insert_bezt_fcurve(), blender::animrig::insert_keyframes(), blender::animrig::insert_vert_fcurve(), BCAnimationCurve::is_keyframe(), keyframe_jump_exec(), blender::animrig::make_new_fcurve_cyclic(), match_slope_fcurve_segment(), blender::animrig::new_key_needed(), blender::ed::object::parent_set(), paste_animedit_keys_fcurve(), paste_get_y_offset(), prepare_for_decimate(), propagate_curve_values(), push_pull_fcurve_segment(), pyrna_struct_keyframe_delete(), blender::animrig::remap_cyclic_keyframe_location(), blender::animrig::remove_fcurve_key_range(), reset_bezts(), scale_average_fcurve_segment(), scale_from_fcurve_segment_neighbor(), screen_ctx_selected_editable_keyframes(), select_anim_channel_keys(), select_moreless_action_keys(), select_moreless_graph_keys(), seq_convert_transform_animation(), seq_convert_transform_animation_2(), blender::bke::tests::set_key(), set_up_beztriple_chain(), shear_fcurve_segment(), smooth_fcurve(), smooth_fcurve_segment(), sort_time_fcurve(), store_original_bezt_arrays(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), test_time_fcurve(), testhandles_fcurve(), time_offset_fcurve_segment(), update_trans_data(), update_transdata_bezt_pointers(), and updateDuplicateActionConstraintSettings().

◆ color

float FCurve::color[3]

The last-color this curve took.

Definition at line 653 of file DNA_anim_types.h.

Referenced by ANIM_channel_draw(), create_ghost_curves(), draw_fcurve(), graph_draw_driver_debug(), and graph_refresh_fcurve_colors().

◆ color_mode

int FCurve::color_mode

Coloring method to use (eFCurve_Coloring).

Definition at line 651 of file DNA_anim_types.h.

Referenced by blender::animrig::create_fcurve_for_channel(), graph_panel_properties(), and graph_refresh_fcurve_colors().

◆ curval

float FCurve::curval

Value stored from last time curve was evaluated (not threadsafe, debug display only!).

Definition at line 624 of file DNA_anim_types.h.

Referenced by BKE_animsys_eval_driver(), calculate_fcurve(), and graph_draw_driver_debug().

◆ driver

ChannelDriver* FCurve::driver

Only valid for drivers (i.e. stored in AnimData not Actions).

Definition at line 600 of file DNA_anim_types.h.

Referenced by achannel_is_broken(), add_driver_button_poll(), add_driver_with_target(), alloc_driver_fcurve(), ANIM_add_driver(), ANIM_copy_as_driver(), ANIM_copy_driver(), ANIM_driver_vars_copy(), ANIM_driver_vars_paste(), ANIM_paste_driver(), animchannels_enable_exec(), BKE_animsys_eval_driver(), BKE_fcurve_blend_read_data(), BKE_fcurve_blend_write_data(), BKE_fcurve_copy(), BKE_fcurve_foreach_id(), BKE_fcurve_is_empty(), blender::deg::DepsgraphRelationBuilder::build_driver(), blender::deg::DepsgraphNodeBuilder::build_driver_variables(), blender::deg::DepsgraphRelationBuilder::build_driver_variables(), calculate_fcurve(), convert_keys_to_samples(), create_ghost_curves(), do_graph_region_driver_buttons(), do_version_bbone_easing_fcurve_fix(), do_version_bbone_len_scale_fcurve_fix(), do_version_bbone_scale_fcurve_fix(), draw_fcurve_curve(), driver_update_flags_cb(), blender::animrig::evaluate_driver_from_rna_pointer(), evaluate_fcurve(), evaluate_fcurve_driver(), fcurve_bake_modifiers(), fcurve_free_driver(), fcurve_has_errors(), fcurve_scene_coord_range_get(), graph_draw_driver_debug(), graph_draw_driver_settings_panel(), graph_driver_delete_invalid_exec(), graph_panel_drivers_popover(), icu_to_fcurves(), insert_graph_keys(), blender::ed::greasepencil::join_object_with_active(), joined_armature_fix_animdata_cb(), blender::interface::tests::CopyDriversToSelected::SetUp(), ui_but_anim_expression_create(), ui_but_anim_expression_get(), and ui_but_anim_expression_set().

◆ extend

◆ flag

short FCurve::flag

User-editable settings for this curve.

Definition at line 626 of file DNA_anim_types.h.

Referenced by acf_fcurve_name_prop(), acf_fcurve_setting_ptr(), achannel_is_broken(), blender::animrig::action_fcurve_ensure(), action_flip_pchan_cache_init(), add_extrapolation_point_right(), alloc_driver_fcurve(), ANIM_channel_draw(), anim_channels_select_set(), ANIM_is_active_channel(), ANIM_set_active_channel(), animchan_sync_fcurve_scene(), animchannels_enable_exec(), animfilter_fcurve_next(), animsys_evaluate_action_group(), blender::animrig::bake_fcurve(), BKE_animsys_eval_driver(), BKE_fcurve_blend_read_data(), BKE_fcurve_is_protected(), BKE_fcurve_merge_duplicate_keys(), BKE_nlastrip_validate_fcurves(), box_select_graphcurves(), box_select_graphkeys(), click_select_channel_fcurve(), click_select_channel_group(), blender::animrig::create_fcurve_for_channel(), createTransGraphEditData(), deselect_all_fcurves(), deselect_graph_keys(), do_graph_region_driver_buttons(), draw_fcurve(), draw_fcurve_active_handle_vertices(), draw_fcurve_active_vertex(), draw_fcurve_curve_samples(), draw_fcurve_handles_check(), draw_fcurve_keyframe_vertices(), draw_fcurve_samples(), driver_update_flags_cb(), drivers_editor_show_exec(), ED_add_fcurve_channel(), evaluate_fcurve_ex(), evaluate_time_fmodifiers(), evaluate_value_fmodifiers(), fcurve_add_to_list(), blender::bke::greasepencil::convert::fcurve_convert_thickness_cb(), blender::animrig::ChannelBag::fcurve_create(), fcurve_display_alpha(), fcurve_eval_keyframes_extrapolate(), fcurve_eval_keyframes_interpolate(), fcurve_frame_has_keyframe(), fcurve_has_errors(), fmodifier_get_pointers(), getname_anim_fcurve(), getname_anim_fcurve_for_slot(), graph_draw_curves(), graph_panel_key_properties(), graph_panel_properties(), graphkeys_click_insert_exec(), graphkeys_deselectall_exec(), graphop_active_fcurve_poll(), icu_to_fcurves(), blender::animrig::insert_vert_fcurve(), blender::animrig::is_fcurve_evaluatable(), is_fcurve_evaluatable(), joined_armature_fix_animdata_cb(), make_new_animlistelem(), mouse_action_keys(), mouse_graph_keys(), blender::animrig::reevaluate_fcurve_errors(), set_fcurve_vertex_color(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), ui_but_anim_expression_set(), update_autoflags_fcurve(), and blender::animrig::update_autoflags_fcurve_direct().

◆ fpt

◆ grp

◆ modifiers

◆ next

◆ prev

◆ prev_norm_factor

float FCurve::prev_norm_factor

Definition at line 655 of file DNA_anim_types.h.

Referenced by normalization_factor_get().

◆ prev_offset

float FCurve::prev_offset

Definition at line 655 of file DNA_anim_types.h.

Referenced by normalization_factor_get().

◆ rna_path

char* FCurve::rna_path

RNA-path to resolve data-access, see: RNA_path_resolve_property.

Note
String look-ups for collection and custom-properties are escaped using BLI_str_escape.

Definition at line 647 of file DNA_anim_types.h.

Referenced by acf_nla_curve_name(), achannel_setting_slider_cb(), blender::animrig::action_fcurve_attach(), blender::animrig::legacy::action_fcurves_remove(), action_move_fcurves_by_basepath(), alloc_driver_fcurve(), anim_change_prop_name(), ANIM_channel_draw_widgets(), ANIM_copy_driver(), ANIM_list_elem_update(), ANIM_unit_mapping_get_factor(), animchan_sync_fcurve(), animchan_sync_fcurve_scene(), animchannels_delete_exec(), animpath_update_basepath(), animsys_blend_in_fcurves(), animsys_evaluate_action_group(), blender::animrig::autokeyframe_property(), BKE_animsys_eval_driver(), BKE_fcurve_blend_read_data(), BKE_fcurve_blend_write_data(), BKE_fcurve_copy(), BKE_fcurve_free(), BKE_fcurve_merge_duplicate_keys(), BKE_fcurve_rnapath_set(), BKE_nlastrip_validate_fcurves(), blend_to_default_fcurve(), blender::deg::DepsgraphRelationBuilder::build_animdata_fcurve_target(), blender::deg::DepsgraphNodeBuilder::build_driver(), blender::deg::DepsgraphRelationBuilder::build_driver(), blender::deg::DepsgraphRelationBuilder::build_driver_data(), blender::deg::DepsgraphNodeBuilder::build_driver_variables(), blender::deg::DepsgraphRelationBuilder::build_driver_variables(), can_delete_fcurve(), can_delete_key(), clean_fcurve(), blender::animrig::clear_keyframe(), copy_animedit_keys(), blender::animrig::create_fcurve_for_channel(), blender::animrig::delete_keyframe(), blender::deg::DriverDescriptor::depsgraph_key(), do_version_bbone_easing_fcurve_fix(), do_version_bbone_len_scale_fcurve_fix(), do_version_bbone_scale_fcurve_fix(), do_versions_after_linking_280(), do_versions_sequencer_speed_effect_recursive(), euler_filter_group_channels(), fcurve_cmp_for_cache(), blender::animrig::tests::ActionFCurveMoveTest::fcurve_create(), blender::animrig::fcurve_matches_collection_path(), fcurves_path_remove_from_listbase(), BCAnimationCurve::get_animation_name(), get_item_transform_flags_and_fcurves(), getname_anim_fcurve(), getname_anim_fcurve_for_slot(), graph_driver_delete_invalid_exec(), graph_panel_key_properties(), icu_to_fcurves(), blender::deg::AnimationBackup::init_from_id(), blender::deg::AnimatedPropertyStorage::initializeFromID(), blender::animrig::insert_keyframe_direct(), blender::ed::greasepencil::join_object_with_active(), joined_armature_fix_animdata_cb(), AnimationImporter::modify_fcurve(), pastebuf_match_path_full(), pastebuf_match_path_property(), pose_slide_apply_props(), poseAnim_mapping_getNextFCurve(), blender::animrig::reevaluate_fcurve_errors(), seq_speed_factor_fix_rna_path(), sequencer_fcurves_targets_color_strip(), skip_fcurve_selected_data(), blender::bke::greasepencil::convert::AnimDataConvertor::source_has_animation_to_convert(), blender::bke::tests::TEST(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), update_autoflags_fcurve(), update_mapping_node_fcurve_rna_path_callback(), updateDuplicateActionConstraintSettings(), and version_bonecollection_anim().

◆ totvert

unsigned int FCurve::totvert

Total number of points which define the curve (i.e. size of arrays in FPoints).

Definition at line 611 of file DNA_anim_types.h.

Referenced by action_flip_pchan_cache_init(), ActionFCurveToTransData(), add_extrapolation_point_left(), add_extrapolation_point_right(), blender::animrig::tests::add_keyframe(), BCAnimationCurve::add_value(), BCAnimationCurve::adjust_range(), ANIM_fcurve_equalize_keyframes_loop(), ANIM_fcurve_keyframes_loop(), ANIM_paste_driver(), AnimationImporter::apply_matrix_curves(), AnimationImporter::Assign_lens_animations(), blender::animrig::bake_fcurve(), blender::animrig::bake_fcurve_segments(), BKE_fcurve_active_keyframe_index(), BKE_fcurve_active_keyframe_set(), BKE_fcurve_bezt_shrink(), BKE_fcurve_blend_read_data(), BKE_fcurve_blend_write_data(), BKE_fcurve_calc_bounds(), BKE_fcurve_calc_range(), BKE_fcurve_deduplicate_keys(), BKE_fcurve_delete_key(), BKE_fcurve_delete_keys(), BKE_fcurve_delete_keys_selected(), BKE_fcurve_deselect_all_keys(), BKE_fcurve_handles_recalc_ex(), BKE_fcurve_has_selected_control_points(), BKE_fcurve_is_empty(), BKE_fcurve_merge_duplicate_keys(), BKE_fcurves_calc_keyed_frames_ex(), BKE_nlastrip_validate_fcurves(), blend_to_default_fcurve(), blend_to_default_graph_keys(), blender::editor::animation::tests::build_fcurve(), calculate_fpt_bounds(), channels_bake_exec(), clean_fcurve(), BCAnimationCurve::clean_handles(), BCAnimationCurve::closest_index_above(), BCAnimationCurve::closest_index_below(), AnimationExporter::collada_tangent_from_curve(), copy_animedit_keys(), count_fcurve_keys(), create_ghost_curves(), createTransActionData(), createTransGraphEditData(), decimate_fcurve(), decimate_fcurve_segment(), delete_key_button_exec(), do_versions_291_fcurve_handles_limit(), do_versions_sequencer_speed_effect_recursive(), draw_fcurve(), draw_fcurve_curve_keys(), draw_fcurve_curve_samples(), draw_fcurve_handles(), draw_fcurve_samples(), draw_fcurve_selected_handle_vertices(), draw_fcurve_selected_keyframe_vertices(), duplicate_fcurve_keys(), ED_keyframes_add(), euler_filter_multi_channel(), euler_filter_single_channel(), evaluate_fcurve_driver(), fcm_cycles_time(), fcu_test_selected(), fcurve_bezt_free(), blender::bke::greasepencil::convert::fcurve_convert_thickness_cb(), blender::animrig::fcurve_delete_keyframe_at_time(), fcurve_eval_keyframes(), fcurve_eval_keyframes_extrapolate(), fcurve_eval_keyframes_interpolate(), fcurve_eval_samples(), fcurve_frame_has_keyframe(), fcurve_samples_to_keyframes(), fcurve_scene_coord_range_get(), fcurve_segment_end_get(), fcurve_store_samples(), fcurve_to_keylist(), find_closest_frame(), find_fcurve_segment(), AnimationImporter::find_frames(), find_last_key(), find_next_key(), get_bounding_bezt_index_range(), get_bounding_bezt_indices(), BCAnimationCurve::get_frames(), get_nearest_fcurve_verts_list(), BCAnimationCurve::get_value_map(), BCAnimationCurve::get_values(), graph_draw_driver_debug(), graph_key_shortest_dist(), graphkeys_select_key_handles(), icu_to_fcurves(), blender::io::usd::import_blendshapes(), blender::animrig::insert_bezt_fcurve(), blender::animrig::insert_keyframe_fcurve_value(), blender::animrig::insert_keyframes(), blender::animrig::insert_vert_fcurve(), BCAnimationCurve::is_keyframe(), blender::animrig::make_new_fcurve_cyclic(), match_slope_fcurve_segment(), blender::animrig::new_key_needed(), paste_animedit_keys_fcurve(), paste_get_y_offset(), prepare_for_decimate(), pyrna_struct_keyframe_delete(), blender::animrig::remap_cyclic_keyframe_location(), blender::animrig::remove_fcurve_key_range(), reset_bezts(), BCAnimationCurve::sample_count(), screen_ctx_selected_editable_keyframes(), select_anim_channel_keys(), select_moreless_action_keys(), select_moreless_graph_keys(), selmap_build_bezier_less(), selmap_build_bezier_more(), seq_convert_transform_animation(), seq_convert_transform_animation_2(), set_up_beztriple_chain(), smooth_fcurve(), sort_time_fcurve(), store_original_bezt_arrays(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), blender::animrig::tests::TEST_F(), test_time_fcurve(), testhandles_fcurve(), time_offset_fcurve_segment(), and updateDuplicateActionConstraintSettings().


The documentation for this struct was generated from the following file: