diff options
author | Daniel Dunbar <daniel@zuster.org> | 2004-03-28 12:46:35 +0400 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2004-03-28 12:46:35 +0400 |
commit | 9206a1eba69136c928dc72144862d31bb00e6b11 (patch) | |
tree | 09cc61d9068e587e338780731590cd9ee9dd6ff4 /source/blender/blenkernel/intern/subsurf.c | |
parent | d29d7030b64895574a1fdb4edd9764e5ce89f013 (diff) |
- replaced G.{edve,eded,edvl} with G.editMesh, atm just a structure to
hold the three lists, nothing major, but gives a place to hang data
off of and a single "mesh" structure to pass around for editing
functions.
Diffstat (limited to 'source/blender/blenkernel/intern/subsurf.c')
-rw-r--r-- | source/blender/blenkernel/intern/subsurf.c | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/source/blender/blenkernel/intern/subsurf.c b/source/blender/blenkernel/intern/subsurf.c index d9f4d357989..759b458ba63 100644 --- a/source/blender/blenkernel/intern/subsurf.c +++ b/source/blender/blenkernel/intern/subsurf.c @@ -396,7 +396,7 @@ static HyperMesh *hypermesh_from_mesh(Mesh *me, float *extverts) { return hme; } -static HyperMesh *hypermesh_from_editmesh(EditVert *everts, EditEdge *eedges, EditVlak *efaces) { +static HyperMesh *hypermesh_from_editmesh(EditMesh *em) { HyperMesh *hme= hypermesh_new(); EditVert *ev, *prevev; EditEdge *ee; @@ -404,13 +404,13 @@ static HyperMesh *hypermesh_from_editmesh(EditVert *everts, EditEdge *eedges, Ed /* we only add vertices with edges, 'f1' is a free flag */ /* added: check for hide flag in vertices */ - for (ev= everts; ev; ev= ev->next) ev->f1= 1; + for (ev= em->verts.first; ev; ev= ev->next) ev->f1= 1; /* hack, tuck the new hypervert pointer into * the ev->prev link so we can find it easy, * then restore real prev links later. */ - for (ee= eedges; ee; ee= ee->next) { + for (ee= em->edges.first; ee; ee= ee->next) { if(ee->v1->h==0 && ee->v2->h==0) { if(ee->v1->f1) { ee->v1->prev= (EditVert*) hypermesh_add_vert(hme, ee->v1->co, ee->v1->co); @@ -424,7 +424,7 @@ static HyperMesh *hypermesh_from_editmesh(EditVert *everts, EditEdge *eedges, Ed hypermesh_add_edge(hme, (HyperVert*) ee->v1->prev, (HyperVert*) ee->v2->prev, 1); } } - for (ef= efaces; ef; ef= ef->next) { + for (ef= em->faces.first; ef; ef= ef->next) { if(ef->v1->h || ef->v2->h || ef->v3->h); else if(ef->v4 && ef->v4->h); else { @@ -444,7 +444,7 @@ static HyperMesh *hypermesh_from_editmesh(EditVert *everts, EditEdge *eedges, Ed } /* see hack above, restore the prev links */ - for (prevev= NULL, ev= everts; ev; prevev= ev, ev= ev->next) + for (prevev= NULL, ev= em->verts.first; ev; prevev= ev, ev= ev->next) ev->prev= prevev; return hme; @@ -944,12 +944,11 @@ static DispListMesh *subsurf_subdivide_to_displistmesh(HyperMesh *hme, short sub return dlm; } -DispListMesh *subsurf_make_dispListMesh_from_editmesh(ListBase *verts, ListBase *edges, - ListBase *faces, int subdivLevels, int flags, short type) { +DispListMesh *subsurf_make_dispListMesh_from_editmesh(EditMesh *em, int subdivLevels, int flags, short type) { if (subdivLevels<1) { - return displistmesh_from_editmesh(verts, edges, faces); + return displistmesh_from_editmesh(em); } else { - HyperMesh *hme= hypermesh_from_editmesh(verts->first, edges->first, faces->first); + HyperMesh *hme= hypermesh_from_editmesh(em); return subsurf_subdivide_to_displistmesh(hme, subdivLevels, flags, type); } |