44 return std::string(new_str);
53 const int RNA_SCALE_PREC_DEFAULT = 3;
54 return fmt::format(
"{:.{}f}", value, RNA_SCALE_PREC_DEFAULT);
102 layout_->
label(
RPT_(
"Matrix has a shear"), ICON_ERROR);
105 float loc[3], quat[4],
size[3];
110 col->use_property_split_set(
true);
112 row = &
col->row(
true);
116 row = &
col->row(
true);
120 row = &
col->row(
true);
125 float eul[3], axis[3];
129 col->use_property_split_set(
true);
132 row = &
col->row(
true);
136 row = &
col->row(
true);
140 row = &
col->row(
true);
144 row = &
col->row(
true);
151 row = &
col->row(
true);
155 row = &
col->row(
true);
159 row = &
col->row(
true);
163 row = &
col->row(
true);
170 row = &
col->row(
true);
174 row = &
col->row(
true);
178 row = &
col->row(
true);
184 row = &layout_->
row(
true);
195 TIP_(
"Rotation mode.\n\nOnly affects the way "
196 "rotation is displayed, rotation itself is unaffected."));
201 col->use_property_split_set(
true);
203 row = &
col->row(
true);
207 row = &
col->row(
true);
211 row = &
col->row(
true);
223 RNA_warning(
"4x4 Matrix property not found: %s.%s",
size_t BKE_unit_value_as_string(char *str, int str_maxncpy, double value, int prec, int type, const UnitSettings &settings, bool pad)
double BKE_unit_value_scale(const UnitSettings &settings, int unit_type, double value)
bool is_orthogonal_m3(const float m[3][3])
void mat4_decompose(float loc[3], float quat[4], float size[3], const float wmat[4][4])
void copy_m3_m4(float m1[3][3], const float m2[4][4])
void quat_to_eulO(float e[3], short order, const float q[4])
void quat_to_axis_angle(float axis[3], float *angle, const float q[4])
static double angle(const Eigen::Vector3d &v1, const Eigen::Vector3d &v2)
#define RNA_warning(format,...)
#define RNA_SUBTYPE_UNIT_VALUE(subtype)
#define RNA_TRANSLATION_PREC_DEFAULT
#define RNA_SUBTYPE_UNIT(subtype)
uiBut * uiDefButI(uiBlock *block, ButType type, int retval, blender::StringRef str, int x, int y, short width, short height, int *poin, float min, float max, std::optional< blender::StringRef > tip)
void UI_but_flag_disable(uiBut *but, int flag)
uiBut * uiDefMenuBut(uiBlock *block, uiMenuCreateFunc func, void *arg, blender::StringRef str, int x, int y, short width, short height, std::optional< blender::StringRef > tip)
void UI_but_type_set_menu_from_pulldown(uiBut *but)
void UI_but_flag_enable(uiBut *but, int flag)
uiLayout * uiItemL_respect_property_split(uiLayout *layout, blender::StringRef text, int icon)
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
constexpr const char * c_str() const
void uiTemplateMatrix(uiLayout *layout, PointerRNA *ptr, const StringRefNull propname)
static std::string format_unit_value(float value, PropertySubType subtype, uiLayout *layout)
static void rotation_mode_menu_callback(bContext *, uiLayout *layout, void *)
static int rotation_mode_index
static std::string format_coefficient(float value)
static void draw_matrix_template(uiLayout &layout, PointerRNA &ptr, PropertyRNA &prop)
void RNA_property_float_get_array(PointerRNA *ptr, PropertyRNA *prop, float *values)
PropertyRNA * RNA_struct_find_property(PointerRNA *ptr, const char *identifier)
uint RNA_enum_items_count(const EnumPropertyItem *item)
PropertyType RNA_property_type(PropertyRNA *prop)
const char * RNA_struct_identifier(const StructRNA *type)
int RNA_property_array_length(PointerRNA *ptr, PropertyRNA *prop)
PropertySubType RNA_property_subtype(PropertyRNA *prop)
const EnumPropertyItem rna_enum_object_rotation_mode_items[]
const UnitSettings * unit
void label(blender::StringRef name, int icon)
uiLayout & column(bool align)
uiLayout & row(bool align)