Cleanup: Avoid lookup the same property string multiple times
This is a micro-optimization that is useful for operators with many properties.
This commit is contained in:
parent
069d63561a
commit
6ebc581b52
|
@ -393,11 +393,11 @@ void initTransInfo(bContext *C, TransInfo *t, wmOperator *op, const wmEvent *eve
|
|||
RNA_property_is_set(op->ptr, prop)) {
|
||||
float values[4] = {0}; /* in case value isn't length 4, avoid uninitialized memory. */
|
||||
if (RNA_property_array_check(prop)) {
|
||||
RNA_float_get_array(op->ptr, "value", values);
|
||||
RNA_property_float_get_array(op->ptr, prop, values);
|
||||
t_values_set_is_array = true;
|
||||
}
|
||||
else {
|
||||
values[0] = RNA_float_get(op->ptr, "value");
|
||||
values[0] = RNA_property_float_get(op->ptr, prop);
|
||||
}
|
||||
|
||||
if (t->flag & T_MODAL) {
|
||||
|
|
|
@ -708,33 +708,39 @@ void initSnapping(TransInfo *t, wmOperator *op)
|
|||
resetSnapping(t);
|
||||
|
||||
/* if snap property exists */
|
||||
if (op && RNA_struct_find_property(op->ptr, "snap") &&
|
||||
RNA_struct_property_is_set(op->ptr, "snap")) {
|
||||
if (RNA_boolean_get(op->ptr, "snap")) {
|
||||
PropertyRNA *prop;
|
||||
if (op && (prop = RNA_struct_find_property(op->ptr, "snap")) &&
|
||||
RNA_property_is_set(op->ptr, prop)) {
|
||||
if (RNA_property_boolean_get(op->ptr, prop)) {
|
||||
t->modifiers |= MOD_SNAP;
|
||||
|
||||
if (RNA_struct_property_is_set(op->ptr, "snap_target")) {
|
||||
snap_target = RNA_enum_get(op->ptr, "snap_target");
|
||||
if ((prop = RNA_struct_find_property(op->ptr, "snap_target")) &&
|
||||
RNA_property_is_set(op->ptr, prop)) {
|
||||
snap_target = RNA_property_enum_get(op->ptr, prop);
|
||||
}
|
||||
|
||||
if (RNA_struct_property_is_set(op->ptr, "snap_point")) {
|
||||
RNA_float_get_array(op->ptr, "snap_point", t->tsnap.snapPoint);
|
||||
if ((prop = RNA_struct_find_property(op->ptr, "snap_point")) &&
|
||||
RNA_property_is_set(op->ptr, prop)) {
|
||||
RNA_property_float_get_array(op->ptr, prop, t->tsnap.snapPoint);
|
||||
t->tsnap.status |= SNAP_FORCED | POINT_INIT;
|
||||
}
|
||||
|
||||
/* snap align only defined in specific cases */
|
||||
if (RNA_struct_find_property(op->ptr, "snap_align")) {
|
||||
t->tsnap.align = RNA_boolean_get(op->ptr, "snap_align");
|
||||
if ((prop = RNA_struct_find_property(op->ptr, "snap_align")) &&
|
||||
RNA_property_is_set(op->ptr, prop)) {
|
||||
t->tsnap.align = RNA_property_boolean_get(op->ptr, prop);
|
||||
RNA_float_get_array(op->ptr, "snap_normal", t->tsnap.snapNormal);
|
||||
normalize_v3(t->tsnap.snapNormal);
|
||||
}
|
||||
|
||||
if (RNA_struct_find_property(op->ptr, "use_snap_project")) {
|
||||
t->tsnap.project = RNA_boolean_get(op->ptr, "use_snap_project");
|
||||
if ((prop = RNA_struct_find_property(op->ptr, "use_snap_project")) &&
|
||||
RNA_property_is_set(op->ptr, prop)) {
|
||||
t->tsnap.project = RNA_property_boolean_get(op->ptr, prop);
|
||||
}
|
||||
|
||||
if (RNA_struct_find_property(op->ptr, "use_snap_self")) {
|
||||
t->tsnap.snap_self = RNA_boolean_get(op->ptr, "use_snap_self");
|
||||
if ((prop = RNA_struct_find_property(op->ptr, "use_snap_self")) &&
|
||||
RNA_property_is_set(op->ptr, prop)) {
|
||||
t->tsnap.snap_self = RNA_property_boolean_get(op->ptr, prop);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue