Hi :)

In order to finish and release the new mesh smoothing/relaxation patches I
have being working on I'm rewritting them to avoid introducing new fields
inside the EditVert structure, so I end up using the union tmp inside that
structure that is for temporal data storage... well, here is where the
problems comes.

I need to store a vector float ,float[3], inside the (void *)vert->tmp.p
field
so I use this:

float *vert= (float *)MEM_callocN(3*me->totverts*sizeof(float ),
"vertsmooth");
        eve= em->verts.first;
        int counter = 0;
        while(eve) {
                if(eve->f & SELECT) {
                        (eve->tmp).p = &vert[counter];
                        (eve->tmp).fp = 0.f;
                        counter+=3;
                }
                eve= eve->next;
        }

but when I call some other function to perate on them I get memory
corrupted values, for example, when I call
  add_v3_v3(&eed->v1->tmp.p,eed->v2->co);

and if I use
  add_v3_v3(eed->v1->tmp.p,eed->v2->co); I get inmediately system halt.

perhaps the solution is in front of me but I have tried all pointer magic
combination :(
I use this because in other parts of the Blender source code is
implemented in a very similar way.

Thanks in advance

Farsthary

_______________________________________________
Bf-committers mailing list
Bf-committers@blender.org
http://lists.blender.org/mailman/listinfo/bf-committers

Reply via email to