[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [27564] trunk/blender: "Fill deformed" option for 2D curves

Sergey Sharybin g.ulairi at gmail.com
Tue Mar 16 22:09:53 CET 2010


Revision: 27564
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=27564
Author:   nazgul
Date:     2010-03-16 22:09:53 +0100 (Tue, 16 Mar 2010)

Log Message:
-----------
"Fill deformed" option for 2D curves

Add new option named "Fill deformed". If this option is switched on.
2D curve will be first deformed by modifiers and only then be filled
with faces.

Modified Paths:
--------------
    trunk/blender/release/scripts/ui/properties_data_curve.py
    trunk/blender/source/blender/blenkernel/intern/displist.c
    trunk/blender/source/blender/editors/object/object_add.c
    trunk/blender/source/blender/makesdna/DNA_curve_types.h
    trunk/blender/source/blender/makesrna/intern/rna_curve.c

Modified: trunk/blender/release/scripts/ui/properties_data_curve.py
===================================================================
--- trunk/blender/release/scripts/ui/properties_data_curve.py	2010-03-16 20:42:12 UTC (rev 27563)
+++ trunk/blender/release/scripts/ui/properties_data_curve.py	2010-03-16 21:09:53 UTC (rev 27564)
@@ -124,6 +124,7 @@
             sub.label(text="Caps:")
             sub.prop(curve, "front")
             sub.prop(curve, "back")
+            sub.prop(curve, "use_deform_fill")
 
         col.label(text="Textures:")
 #       col.prop(curve, "uv_orco")

Modified: trunk/blender/source/blender/blenkernel/intern/displist.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/displist.c	2010-03-16 20:42:12 UTC (rev 27563)
+++ trunk/blender/source/blender/blenkernel/intern/displist.c	2010-03-16 21:09:53 UTC (rev 27564)
@@ -1391,6 +1391,10 @@
 					CDDM_calc_normals(dm);
 				}
 			} else {
+				if (ELEM(ob->type, OB_CURVE, OB_FONT) && (cu->flag & CU_DEFORM_FILL)) {
+					curve_to_filledpoly(cu, nurb, &cu->disp);
+				}
+
 				dm= CDDM_from_curve_customDB(ob, dispbase);
 
 				if(dmDeformedVerts) {
@@ -1801,7 +1805,9 @@
 			freedisplist(&dlbev);
 		}
 
-		curve_to_filledpoly(cu, nubase, dispbase);
+		if (!(cu->flag & CU_DEFORM_FILL)) {
+			curve_to_filledpoly(cu, nubase, dispbase);
+		}
 
 		if(cu->flag & CU_PATH) calc_curvepath(ob);
 
@@ -1810,6 +1816,10 @@
  		}
 
 		if(!forOrco) curve_calc_modifiers_post(scene, ob, dispbase, derivedFinal, forRender, originalVerts, deformedVerts);
+
+		if (cu->flag & CU_DEFORM_FILL && !ob->derivedFinal) {
+			curve_to_filledpoly(cu, nubase, dispbase);
+		}
 	}
 }
 

Modified: trunk/blender/source/blender/editors/object/object_add.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_add.c	2010-03-16 20:42:12 UTC (rev 27563)
+++ trunk/blender/source/blender/editors/object/object_add.c	2010-03-16 21:09:53 UTC (rev 27564)
@@ -503,11 +503,14 @@
 	ED_object_add_generic_get_opts(op, loc, rot, &enter_editmode, &layer);
 	
 	if(obedit==NULL || obedit->type!=OB_CURVE) {
+		Curve *cu;
 		obedit= ED_object_add_type(C, OB_CURVE, loc, rot, TRUE, layer);
 		newob = 1;
 
+		cu= (Curve*)obedit->data;
+		cu->flag |= CU_DEFORM_FILL;
 		if(type & CU_PRIM_PATH)
-			((Curve*)obedit->data)->flag |= CU_PATH|CU_3D;
+			cu->flag |= CU_PATH|CU_3D;
 	}
 	else DAG_id_flush_update(&obedit->id, OB_RECALC_DATA);
 	

Modified: trunk/blender/source/blender/makesdna/DNA_curve_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_curve_types.h	2010-03-16 20:42:12 UTC (rev 27563)
+++ trunk/blender/source/blender/makesdna/DNA_curve_types.h	2010-03-16 21:09:53 UTC (rev 27564)
@@ -243,6 +243,7 @@
 #define CU_RETOPO               1024
 #define CU_DS_EXPAND	2048
 #define CU_PATH_RADIUS	4096 /* make use of the path radius if this is enabled (default for new curves) */
+#define CU_DEFORM_FILL	8192 /* fill 2d curve after deformation */
 
 /* twist mode */
 #define CU_TWIST_Z_UP			0

Modified: trunk/blender/source/blender/makesrna/intern/rna_curve.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_curve.c	2010-03-16 20:42:12 UTC (rev 27563)
+++ trunk/blender/source/blender/makesrna/intern/rna_curve.c	2010-03-16 21:09:53 UTC (rev 27564)
@@ -880,6 +880,10 @@
 	RNA_def_property_ui_text(prop, "Twist Smooth", "Smoothing iteration for tangents");
 	RNA_def_property_update(prop, 0, "rna_Curve_update_data");
 
+	prop= RNA_def_property(srna, "use_deform_fill", PROP_BOOLEAN, PROP_NONE);
+	RNA_def_property_boolean_sdna(prop, NULL, "flag", CU_DEFORM_FILL);
+	RNA_def_property_ui_text(prop, "Fill deformed", "Fill curve after applying deformation");
+	RNA_def_property_update(prop, 0, "rna_Curve_update_data");
 }
 
 static void rna_def_curve_nurb(BlenderRNA *brna)





More information about the Bf-blender-cvs mailing list