[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