Blender  V3.3
rna_animation_api.c
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later
2  * Copyright 2009 Blender Foundation. All rights reserved. */
3 
8 #include <stdio.h>
9 #include <stdlib.h>
10 
11 #include "RNA_define.h"
12 #include "RNA_enum_types.h"
13 
14 #include "DNA_anim_types.h"
15 #include "DNA_object_types.h"
16 #include "DNA_scene_types.h"
17 
18 #include "rna_internal.h" /* own include */
19 
20 #ifdef RNA_RUNTIME
21 
22 # include "BKE_context.h"
23 # include "BKE_nla.h"
24 # include "BKE_report.h"
25 
26 # include "ED_keyframing.h"
27 
28 static void rna_KeyingSet_context_refresh(KeyingSet *ks, bContext *C, ReportList *reports)
29 {
30  /* TODO: enable access to providing a list of overrides (dsources)? */
32 
33  if (error != 0) {
34  switch (error) {
36  BKE_report(reports, RPT_ERROR, "Invalid context for keying set");
37  break;
38 
40  BKE_report(
41  reports, RPT_ERROR, "Incomplete built-in keying set, appears to be missing type info");
42  break;
43  }
44  }
45 }
46 
47 static float rna_AnimData_nla_tweak_strip_time_to_scene(AnimData *adt, float frame, bool invert)
48 {
50 }
51 
52 #else
53 
55 {
56  FunctionRNA *func;
57  // PropertyRNA *parm;
58 
59  /* validate relative Keying Set (used to ensure paths are ok for context) */
60  func = RNA_def_function(srna, "refresh", "rna_KeyingSet_context_refresh");
62  func,
63  "Refresh Keying Set to ensure that it is valid for the current context "
64  "(call before each use of one)");
66 }
67 
69 {
70  FunctionRNA *func;
71  PropertyRNA *parm;
72 
73  /* Convert between action time and scene time when tweaking a NLA strip. */
74  func = RNA_def_function(
75  srna, "nla_tweak_strip_time_to_scene", "rna_AnimData_nla_tweak_strip_time_to_scene");
77  "Convert a time value from the local time of the tweaked strip "
78  "to scene time, exactly as done by built-in key editing tools. "
79  "Returns the input time unchanged if not tweaking.");
80  parm = RNA_def_float(
81  func, "frame", 0.0, MINAFRAME, MAXFRAME, "", "Input time", MINAFRAME, MAXFRAME);
83  RNA_def_boolean(func, "invert", false, "Invert", "Convert scene time to action time");
84  parm = RNA_def_float(
85  func, "result", 0.0, MINAFRAME, MAXFRAME, "", "Converted time", MINAFRAME, MAXFRAME);
86  RNA_def_function_return(func, parm);
87 }
88 
89 #endif
@ NLATIME_CONVERT_MAP
Definition: BKE_nla.h:360
@ NLATIME_CONVERT_UNMAP
Definition: BKE_nla.h:357
float BKE_nla_tweakedit_remap(struct AnimData *adt, float cframe, short mode)
Definition: nla.c:642
void BKE_report(ReportList *reports, eReportType type, const char *message)
Definition: report.c:83
Object is a sort of wrapper for general info.
#define MINAFRAME
#define MAXFRAME
eModifyKey_Returns
@ MODIFYKEY_MISSING_TYPEINFO
@ MODIFYKEY_INVALID_CONTEXT
@ PARM_REQUIRED
Definition: RNA_types.h:352
@ FUNC_USE_REPORTS
Definition: RNA_types.h:663
@ FUNC_USE_CONTEXT
Definition: RNA_types.h:662
#define C
Definition: RandGen.cpp:25
CCL_NAMESPACE_BEGIN ccl_device float invert(float color, float factor)
Definition: invert.h:8
eModifyKey_Returns ANIM_validate_keyingset(bContext *C, ListBase *dsources, KeyingSet *ks)
Definition: keyingsets.c:954
static void error(const char *str)
Definition: meshlaplacian.c:51
void RNA_api_keyingset(StructRNA *srna)
void RNA_api_animdata(StructRNA *srna)
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)
Definition: rna_define.c:3836
PropertyRNA * RNA_def_boolean(StructOrFunctionRNA *cont_, const char *identifier, bool default_value, const char *ui_name, const char *ui_description)
Definition: rna_define.c:3493
void RNA_def_function_return(FunctionRNA *func, PropertyRNA *ret)
Definition: rna_define.c:4312
FunctionRNA * RNA_def_function(StructRNA *srna, const char *identifier, const char *call)
Definition: rna_define.c:4273
void RNA_def_function_ui_description(FunctionRNA *func, const char *description)
Definition: rna_define.c:4347
void RNA_def_function_flag(FunctionRNA *func, int flag)
Definition: rna_define.c:4342
void RNA_def_parameter_flags(PropertyRNA *prop, PropertyFlag flag_property, ParameterFlag flag_parameter)
Definition: rna_define.c:1518