[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [49623] trunk/blender: Made feather self-intersection check an option.

Sergey Sharybin sergey.vfx at gmail.com
Mon Aug 6 17:20:14 CEST 2012


Revision: 49623
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=49623
Author:   nazgul
Date:     2012-08-06 15:20:14 +0000 (Mon, 06 Aug 2012)
Log Message:
-----------
Made feather self-intersection check an option.
Useful in cases when masking stuff like self-intersecting
ropes. This could probably be smarter option, but can't
currently think about robust approach here.

Modified Paths:
--------------
    trunk/blender/release/scripts/startup/bl_ui/properties_mask_common.py
    trunk/blender/source/blender/blenkernel/intern/mask.c
    trunk/blender/source/blender/makesdna/DNA_mask_types.h
    trunk/blender/source/blender/makesrna/intern/rna_mask.c

Modified: trunk/blender/release/scripts/startup/bl_ui/properties_mask_common.py
===================================================================
--- trunk/blender/release/scripts/startup/bl_ui/properties_mask_common.py	2012-08-06 14:29:25 UTC (rev 49622)
+++ trunk/blender/release/scripts/startup/bl_ui/properties_mask_common.py	2012-08-06 15:20:14 UTC (rev 49623)
@@ -127,7 +127,9 @@
         row.prop(spline, "use_cyclic")
         row.prop(spline, "use_fill")
 
+        col.prop(spline, "use_self_intersection_check")
 
+
 class MASK_PT_point():
     # subclasses must define...
     #~ bl_space_type = 'CLIP_EDITOR'

Modified: trunk/blender/source/blender/blenkernel/intern/mask.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/mask.c	2012-08-06 14:29:25 UTC (rev 49622)
+++ trunk/blender/source/blender/blenkernel/intern/mask.c	2012-08-06 15:20:14 UTC (rev 49623)
@@ -779,7 +779,8 @@
 
 	*tot_feather_point = tot;
 
-	spline_feather_collapse_inner_loops(spline, feather, tot);
+	if (spline->flag & MASK_SPLINE_NOINTERSECT)
+		spline_feather_collapse_inner_loops(spline, feather, tot);
 
 	return feather;
 }

Modified: trunk/blender/source/blender/makesdna/DNA_mask_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_mask_types.h	2012-08-06 14:29:25 UTC (rev 49622)
+++ trunk/blender/source/blender/makesdna/DNA_mask_types.h	2012-08-06 15:20:14 UTC (rev 49623)
@@ -141,7 +141,8 @@
 /* reserve (1 << 0) for SELECT */
 enum {
 	MASK_SPLINE_CYCLIC  = (1 << 1),
-	MASK_SPLINE_NOFILL    = (1 << 2)
+	MASK_SPLINE_NOFILL  = (1 << 2),
+	MASK_SPLINE_NOINTERSECT = (1 << 3)
 };
 
 /* MaskSpline->weight_interp */

Modified: trunk/blender/source/blender/makesrna/intern/rna_mask.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_mask.c	2012-08-06 14:29:25 UTC (rev 49622)
+++ trunk/blender/source/blender/makesrna/intern/rna_mask.c	2012-08-06 15:20:14 UTC (rev 49623)
@@ -568,6 +568,13 @@
 	RNA_def_property_boolean_negative_sdna(prop, NULL, "flag", MASK_SPLINE_NOFILL);
 	RNA_def_property_ui_text(prop, "Fill", "Make this spline filled");
 	RNA_def_property_update(prop, NC_MASK | NA_EDITED, "rna_Mask_update_data");
+
+	/* self-intersection check */
+	prop = RNA_def_property(srna, "use_self_intersection_check", PROP_BOOLEAN, PROP_NONE);
+	RNA_def_property_clear_flag(prop, PROP_ANIMATABLE);
+	RNA_def_property_boolean_sdna(prop, NULL, "flag", MASK_SPLINE_NOINTERSECT);
+	RNA_def_property_ui_text(prop, "Self Intersection Check", "Prevent feather from self-intersections");
+	RNA_def_property_update(prop, NC_MASK | NA_EDITED, "rna_Mask_update_data");
 }
 
 static void rna_def_mask_layer(BlenderRNA *brna)




More information about the Bf-blender-cvs mailing list