21#include "RNA_prototypes.hh"
36 values.
append(
float(tmp_bool[
i]));
45 values.
append(
float(tmp_int[
i]));
84 switch (rotation_mode) {
86 return "rotation_quaternion";
88 return "rotation_axis_angle";
90 return "rotation_euler";
104 eIDPropertyType::IDP_BOOLEAN,
105 eIDPropertyType::IDP_INT,
106 eIDPropertyType::IDP_FLOAT,
107 eIDPropertyType::IDP_DOUBLE))
112 if (id_prop->
type == eIDPropertyType::IDP_ARRAY) {
114 eIDPropertyType::IDP_BOOLEAN,
115 eIDPropertyType::IDP_INT,
116 eIDPropertyType::IDP_FLOAT,
117 eIDPropertyType::IDP_DOUBLE))
130 if (
ptr.type == &RNA_PoseBone) {
132 properties = pchan->
prop;
134 else if (
ptr.type == &RNA_Object) {
151 std::string path = id_prop->
name;
157 &
ptr, path.c_str(), &resolved_ptr, &resolved_prop);
163 BLI_str_escape(name_escaped, id_prop->name,
sizeof(name_escaped));
164 path = fmt::format(
"[\"{}\"]", name_escaped);
Helper functions for animation to interact with the RNA system.
#define LISTBASE_FOREACH(type, var, list)
size_t BLI_str_escape(char *__restrict dst, const char *__restrict src, size_t dst_maxncpy) ATTR_NONNULL(1
Object is a sort of wrapper for general info.
void append(const T &value)
void reinitialize(const int64_t new_size)
float length(VecOp< float, D >) RET
void * MEM_malloc_arrayN(size_t len, size_t size, const char *str)
void MEM_freeN(void *vmemh)
static bool is_idproperty_keyable(const IDProperty *id_prop, PointerRNA *ptr, PropertyRNA *prop)
Vector< RNAPath > get_keyable_id_property_paths(const PointerRNA &ptr)
Vector< float > get_rna_values(PointerRNA *ptr, PropertyRNA *prop)
StringRef get_rotation_mode_path(eRotationModes rotation_mode)
float RNA_property_float_get(PointerRNA *ptr, PropertyRNA *prop)
bool RNA_property_is_runtime(const PropertyRNA *prop)
bool RNA_property_array_check(PropertyRNA *prop)
void RNA_property_float_get_array(PointerRNA *ptr, PropertyRNA *prop, float *values)
void RNA_property_boolean_get_array(PointerRNA *ptr, PropertyRNA *prop, bool *values)
PropertyType RNA_property_type(PropertyRNA *prop)
bool RNA_property_boolean_get(PointerRNA *ptr, PropertyRNA *prop)
int RNA_property_int_get(PointerRNA *ptr, PropertyRNA *prop)
bool RNA_property_anim_editable(const PointerRNA *ptr, PropertyRNA *prop_orig)
int RNA_property_array_length(PointerRNA *ptr, PropertyRNA *prop)
int RNA_property_enum_get(PointerRNA *ptr, PropertyRNA *prop)
void RNA_property_int_get_array(PointerRNA *ptr, PropertyRNA *prop, int *values)
bool RNA_path_resolve_property(const PointerRNA *ptr, const char *path, PointerRNA *r_ptr, PropertyRNA **r_prop)