diff options
author | Campbell Barton <ideasman42@gmail.com> | 2018-08-20 04:27:49 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2018-08-20 04:27:49 +0300 |
commit | 143511b9613faeb974082be036ee0b45917200ae (patch) | |
tree | 83725a8b33364bad5281d45e23e2e57b2588bdf6 /source/blender/makesrna/intern | |
parent | b831accc01a5790b6112f70e8bb5d6b3a8e8ab4d (diff) | |
parent | 98efcdb1a0e31beff50922132e475695c3ae6af7 (diff) |
Merge branch 'master' into blender2.8
Diffstat (limited to 'source/blender/makesrna/intern')
-rw-r--r-- | source/blender/makesrna/intern/rna_curve.c | 2 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_curve_api.c | 21 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_internal.h | 1 |
3 files changed, 24 insertions, 0 deletions
diff --git a/source/blender/makesrna/intern/rna_curve.c b/source/blender/makesrna/intern/rna_curve.c index da1ef2b6921..6b294b9b3cd 100644 --- a/source/blender/makesrna/intern/rna_curve.c +++ b/source/blender/makesrna/intern/rna_curve.c @@ -1761,6 +1761,8 @@ static void rna_def_curve_nurb(BlenderRNA *brna) RNA_def_property_update(prop, 0, "rna_Curve_update_data"); RNA_def_struct_path_func(srna, "rna_Curve_spline_path"); + + RNA_api_curve_nurb(srna); } void RNA_def_curve(BlenderRNA *brna) diff --git a/source/blender/makesrna/intern/rna_curve_api.c b/source/blender/makesrna/intern/rna_curve_api.c index b0c07465958..dc1cbed824e 100644 --- a/source/blender/makesrna/intern/rna_curve_api.c +++ b/source/blender/makesrna/intern/rna_curve_api.c @@ -55,6 +55,11 @@ static void rna_Curve_update_gpu_tag(Curve *cu) BKE_curve_batch_cache_dirty(cu, BKE_CURVE_BATCH_DIRTY_ALL); } +static float rna_Nurb_calc_length(Nurb *nu, int resolution_u) +{ + return BKE_nurb_calc_length(nu, resolution_u); +} + #else void RNA_api_curve(StructRNA *srna) @@ -77,4 +82,20 @@ void RNA_api_curve(StructRNA *srna) RNA_def_function(srna, "update_gpu_tag", "rna_Curve_update_gpu_tag"); } +void RNA_api_curve_nurb(StructRNA *srna) +{ + FunctionRNA *func; + PropertyRNA *parm; + + func = RNA_def_function(srna, "calc_length", "rna_Nurb_calc_length"); + RNA_def_function_ui_description(func, "Calculate spline length"); + RNA_def_int( + func, "resolution", 0, 0, 1024, "Resolution", + "Spline resolution to be used, 0 defaults to the resolution_u", 0, 64); + parm = RNA_def_float_distance( + func, "length", 0.0f, 0.0f, FLT_MAX, "Length", + "Length of the polygonaly approximated spline", 0.0f, FLT_MAX); + RNA_def_function_return(func, parm); +} + #endif diff --git a/source/blender/makesrna/intern/rna_internal.h b/source/blender/makesrna/intern/rna_internal.h index a88623e5b5b..2578f88a520 100644 --- a/source/blender/makesrna/intern/rna_internal.h +++ b/source/blender/makesrna/intern/rna_internal.h @@ -308,6 +308,7 @@ void RNA_api_armature_edit_bone(StructRNA *srna); void RNA_api_bone(StructRNA *srna); void RNA_api_camera(StructRNA *srna); void RNA_api_curve(StructRNA *srna); +void RNA_api_curve_nurb(StructRNA *srna); void RNA_api_fcurves(StructRNA *srna); void RNA_api_drivers(StructRNA *srna); void RNA_api_image_packed_file(struct StructRNA *srna); |