Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Bishop <nicholasbishop@gmail.com>2007-01-22 03:30:00 +0300
committerNicholas Bishop <nicholasbishop@gmail.com>2007-01-22 03:30:00 +0300
commitfef73f2b9294072b6606cfbd449fb01f72249348 (patch)
tree7517951fd8debf4c5753b01c368dcadbde615265 /source/blender/src/retopo.c
parent25372193f564b2a27b7d2739c8626e9c677932dd (diff)
== Retopo ==
Fixed bug #5776, retopo - Retopo doesn't work with bezier curves * Added check for 2D curves, since those obviously can't be wrapped onto a 3D surface * Added check for bezier curves, those get processed in the same way as other curves now * Added an object flush so that curves get redrawn properly after "Retopo All" is used * Added retopo paint tooltip from ideasman
Diffstat (limited to 'source/blender/src/retopo.c')
-rw-r--r--source/blender/src/retopo.c23
1 files changed, 21 insertions, 2 deletions
diff --git a/source/blender/src/retopo.c b/source/blender/src/retopo.c
index 847a5edd99b..7796984cef9 100644
--- a/source/blender/src/retopo.c
+++ b/source/blender/src/retopo.c
@@ -55,6 +55,8 @@
#include "BIF_space.h"
#include "BIF_toolbox.h"
+#include "BKE_curve.h"
+#include "BKE_depsgraph.h"
#include "BKE_global.h"
#include "BKE_mesh.h"
@@ -803,6 +805,7 @@ void retopo_do_all()
eve= eve->next;
}
+ DAG_object_flush_update(G.scene, G.obedit, OB_RECALC_DATA);
allqueue(REDRAWVIEW3D, 0);
}
}
@@ -815,7 +818,20 @@ void retopo_do_all()
for(nu= editNurb.first; nu; nu= nu->next)
{
- if((nu->type & 7)!=CU_BEZIER) {
+ if(nu->type & CU_2D) {
+ /* Can't wrap a 2D curve onto a 3D surface */
+ }
+ else if(nu->type & CU_BEZIER) {
+ for(i=0; i<nu->pntsu; ++i) {
+ if(nu->bezt[i].f1 & 1)
+ retopo_do_vert(G.vd, nu->bezt[i].vec[0]);
+ if(nu->bezt[i].f2 & 1)
+ retopo_do_vert(G.vd, nu->bezt[i].vec[1]);
+ if(nu->bezt[i].f3 & 1)
+ retopo_do_vert(G.vd, nu->bezt[i].vec[2]);
+ }
+ }
+ else {
bp= nu->bp;
for(i=0; i<nu->pntsv; ++i) {
for(j=0; j<nu->pntsu; ++j, ++bp) {
@@ -824,8 +840,11 @@ void retopo_do_all()
}
}
}
+
+ testhandlesNurb(nu);
}
-
+
+ DAG_object_flush_update(G.scene, G.obedit, OB_RECALC_DATA);
allqueue(REDRAWVIEW3D, 0);
}
}