forked from bartvdbraak/blender
Duplicator object which is being deformed now gives deformed duplicates
too. Feat request & discovered by S68. :)
This commit is contained in:
parent
f7e899a194
commit
e2f33871be
@ -344,7 +344,8 @@ void vertex_duplilist(Scene *sce, Object *par)
|
|||||||
Base *base;
|
Base *base;
|
||||||
MVert *mvert;
|
MVert *mvert;
|
||||||
Mesh *me;
|
Mesh *me;
|
||||||
float vec[3], pvec[3], pmat[4][4], mat[3][3], tmat[4][4];
|
DispList *dl;
|
||||||
|
float *extverts=NULL, vec[3], pvec[3], pmat[4][4], mat[3][3], tmat[4][4];
|
||||||
float *q2;
|
float *q2;
|
||||||
int lay, totvert, a;
|
int lay, totvert, a;
|
||||||
|
|
||||||
@ -354,6 +355,9 @@ void vertex_duplilist(Scene *sce, Object *par)
|
|||||||
|
|
||||||
lay= G.scene->lay;
|
lay= G.scene->lay;
|
||||||
|
|
||||||
|
dl= find_displist(&par->disp, DL_VERTS);
|
||||||
|
if(dl) extverts= dl->verts;
|
||||||
|
|
||||||
base= sce->base.first;
|
base= sce->base.first;
|
||||||
while(base) {
|
while(base) {
|
||||||
|
|
||||||
@ -378,7 +382,13 @@ void vertex_duplilist(Scene *sce, Object *par)
|
|||||||
for(a=0; a<totvert; a++, mvert++) {
|
for(a=0; a<totvert; a++, mvert++) {
|
||||||
|
|
||||||
/* calc the extra offset for children (wrt. centre parent) */
|
/* calc the extra offset for children (wrt. centre parent) */
|
||||||
VECCOPY(vec, mvert->co);
|
if(extverts) {
|
||||||
|
VECCOPY(vec, extverts+3*a);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
VECCOPY(vec, mvert->co);
|
||||||
|
}
|
||||||
|
|
||||||
Mat4MulVecfl(pmat, vec);
|
Mat4MulVecfl(pmat, vec);
|
||||||
VecSubf(vec, vec, pmat[3]);
|
VecSubf(vec, vec, pmat[3]);
|
||||||
VecAddf(vec, vec, ob->obmat[3]);
|
VecAddf(vec, vec, ob->obmat[3]);
|
||||||
|
Loading…
Reference in New Issue
Block a user