diff --git a/source/blender/makesrna/intern/rna_nodetree.cc b/source/blender/makesrna/intern/rna_nodetree.cc index cee5580c6ef..44893739f29 100644 --- a/source/blender/makesrna/intern/rna_nodetree.cc +++ b/source/blender/makesrna/intern/rna_nodetree.cc @@ -2381,6 +2381,70 @@ void rna_Node_update(Main *bmain, Scene * /*scene*/, PointerRNA *ptr) ED_node_tree_propagate_change(nullptr, bmain, ntree); } +static void rna_NodeCrop_min_x_set(PointerRNA *ptr, int value) +{ + bNode *node = static_cast(ptr->data); + NodeTwoXYs *data = static_cast(node->storage); + data->x1 = value; + CLAMP_MAX(data->x1, data->x2); +} + +static void rna_NodeCrop_max_x_set(PointerRNA *ptr, int value) +{ + bNode *node = static_cast(ptr->data); + NodeTwoXYs *data = static_cast(node->storage); + data->x2 = value; + CLAMP_MIN(data->x2, data->x1); +} + +static void rna_NodeCrop_min_y_set(PointerRNA *ptr, int value) +{ + bNode *node = static_cast(ptr->data); + NodeTwoXYs *data = static_cast(node->storage); + data->y1 = value; + CLAMP_MIN(data->y1, data->y2); +} + +static void rna_NodeCrop_max_y_set(PointerRNA *ptr, int value) +{ + bNode *node = static_cast(ptr->data); + NodeTwoXYs *data = static_cast(node->storage); + data->y2 = value; + CLAMP_MAX(data->y2, data->y1); +} + +static void rna_NodeCrop_rel_min_x_set(PointerRNA *ptr, float value) +{ + bNode *node = static_cast(ptr->data); + NodeTwoXYs *data = static_cast(node->storage); + data->fac_x1 = value; + CLAMP_MAX(data->fac_x1, data->fac_x2); +} + +static void rna_NodeCrop_rel_max_x_set(PointerRNA *ptr, float value) +{ + bNode *node = static_cast(ptr->data); + NodeTwoXYs *data = static_cast(node->storage); + data->fac_x2 = value; + CLAMP_MIN(data->fac_x2, data->fac_x1); +} + +static void rna_NodeCrop_rel_min_y_set(PointerRNA *ptr, float value) +{ + bNode *node = static_cast(ptr->data); + NodeTwoXYs *data = static_cast(node->storage); + data->fac_y1 = value; + CLAMP_MIN(data->fac_y1, data->fac_y2); +} + +static void rna_NodeCrop_rel_max_y_set(PointerRNA *ptr, float value) +{ + bNode *node = static_cast(ptr->data); + NodeTwoXYs *data = static_cast(node->storage); + data->fac_y2 = value; + CLAMP_MAX(data->fac_y2, data->fac_y1); +} + void rna_Node_update_relations(Main *bmain, Scene *scene, PointerRNA *ptr) { rna_Node_update(bmain, scene, ptr); @@ -7805,48 +7869,56 @@ static void def_cmp_crop(StructRNA *srna) prop = RNA_def_property(srna, "min_x", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, nullptr, "x1"); + RNA_def_property_int_funcs(prop, nullptr, "rna_NodeCrop_min_x_set", nullptr); RNA_def_property_range(prop, 0, 10000); RNA_def_property_ui_text(prop, "X1", ""); RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update"); prop = RNA_def_property(srna, "max_x", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, nullptr, "x2"); + RNA_def_property_int_funcs(prop, nullptr, "rna_NodeCrop_max_x_set", nullptr); RNA_def_property_range(prop, 0, 10000); RNA_def_property_ui_text(prop, "X2", ""); RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update"); prop = RNA_def_property(srna, "min_y", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, nullptr, "y1"); + RNA_def_property_int_funcs(prop, nullptr, "rna_NodeCrop_min_y_set", nullptr); RNA_def_property_range(prop, 0, 10000); RNA_def_property_ui_text(prop, "Y1", ""); RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update"); prop = RNA_def_property(srna, "max_y", PROP_INT, PROP_NONE); RNA_def_property_int_sdna(prop, nullptr, "y2"); + RNA_def_property_int_funcs(prop, nullptr, "rna_NodeCrop_max_y_set", nullptr); RNA_def_property_range(prop, 0, 10000); RNA_def_property_ui_text(prop, "Y2", ""); RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update"); prop = RNA_def_property(srna, "rel_min_x", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, nullptr, "fac_x1"); + RNA_def_property_float_funcs(prop, nullptr, "rna_NodeCrop_rel_min_x_set", nullptr); RNA_def_property_range(prop, 0.0, 1.0); RNA_def_property_ui_text(prop, "X1", ""); RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update"); prop = RNA_def_property(srna, "rel_max_x", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, nullptr, "fac_x2"); + RNA_def_property_float_funcs(prop, nullptr, "rna_NodeCrop_rel_max_x_set", nullptr); RNA_def_property_range(prop, 0.0, 1.0); RNA_def_property_ui_text(prop, "X2", ""); RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update"); prop = RNA_def_property(srna, "rel_min_y", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, nullptr, "fac_y1"); + RNA_def_property_float_funcs(prop, nullptr, "rna_NodeCrop_rel_min_y_set", nullptr); RNA_def_property_range(prop, 0.0, 1.0); RNA_def_property_ui_text(prop, "Y1", ""); RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update"); prop = RNA_def_property(srna, "rel_max_y", PROP_FLOAT, PROP_NONE); RNA_def_property_float_sdna(prop, nullptr, "fac_y2"); + RNA_def_property_float_funcs(prop, nullptr, "rna_NodeCrop_rel_max_y_set", nullptr); RNA_def_property_range(prop, 0.0, 1.0); RNA_def_property_ui_text(prop, "Y2", ""); RNA_def_property_update(prop, NC_NODE | NA_EDITED, "rna_Node_update");