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
path: root/source
diff options
context:
space:
mode:
authorTon Roosendaal <ton@blender.org>2004-04-07 16:46:50 +0400
committerTon Roosendaal <ton@blender.org>2004-04-07 16:46:50 +0400
commitd748c8c38284c99f1b57923b4ce29d65c402c447 (patch)
tree6ae5b69ad5301146568c3aab15c50b7ace433f2d /source
parent4edae3b2c5ceea18ba44889a6f70c80fb0b57b20 (diff)
Bug fix #1073
CTRL+SHIFT+A (apply lattice deform) on a Bezier Curve object was not implemented yet. Added this. Little sidenote: when curves are 2D the result will remain 2D, disregarding deformation in 3rd dimension.
Diffstat (limited to 'source')
-rw-r--r--source/blender/blenkernel/intern/lattice.c41
1 files changed, 27 insertions, 14 deletions
diff --git a/source/blender/blenkernel/intern/lattice.c b/source/blender/blenkernel/intern/lattice.c
index d32d5118a20..4d36e965e1c 100644
--- a/source/blender/blenkernel/intern/lattice.c
+++ b/source/blender/blenkernel/intern/lattice.c
@@ -433,6 +433,7 @@ static int _object_deform(Object *ob, int applyflag)
if(applyflag) {
Nurb *nu;
BPoint *bp;
+ BezTriple *bezt;
nu= cu->nurb.first;
while(nu) {
@@ -444,24 +445,36 @@ static int _object_deform(Object *ob, int applyflag)
bp++;
}
}
+ else if(nu->bezt) {
+ a= nu->pntsu;
+ bezt= nu->bezt;
+ while(a--) {
+ calc_latt_deform(bezt->vec[0]);
+ calc_latt_deform(bezt->vec[1]);
+ calc_latt_deform(bezt->vec[2]);
+ bezt++;
+ }
+ test2DNurb(nu);
+ }
nu= nu->next;
}
}
-
- /* when apply, do this too, looks more interactive */
- dl= cu->disp.first;
- while(dl) {
-
- fp= dl->verts;
-
- if(dl->type==DL_INDEX3) tot=dl->parts;
- else tot= dl->nr*dl->parts;
-
- for(a=0; a<tot; a++, fp+=3) {
- calc_latt_deform(fp);
+ else {
+ /* apply deform on displist */
+ dl= cu->disp.first;
+ while(dl) {
+
+ fp= dl->verts;
+
+ if(dl->type==DL_INDEX3) tot=dl->parts;
+ else tot= dl->nr*dl->parts;
+
+ for(a=0; a<tot; a++, fp+=3) {
+ calc_latt_deform(fp);
+ }
+
+ dl= dl->next;
}
-
- dl= dl->next;
}
}
end_latt_deform();