Merged Google Summer of Code sculptmode/multires/retopo tools.

From the tracker:
https://projects.blender.org/tracker/index.php?func=detail&aid=5018&group_id=9&atid=127
This commit is contained in:
2006-11-06 01:08:26 +00:00
parent 6feb2cc4f6
commit 8e97a2955b
49 changed files with 5485 additions and 166 deletions

View File

@@ -78,6 +78,8 @@
#include "BIF_gl.h"
#include "BIF_glutil.h"
#include "multires.h"
// headers for fluidsim bobj meshes
#include <stdlib.h>
#include "LBM_fluidsim.h"
@@ -3370,9 +3372,32 @@ DerivedMesh *mesh_get_derived_deform(Object *ob, int *needsFree_r)
DerivedMesh *mesh_create_derived_render(Object *ob)
{
DerivedMesh *final;
Mesh *m= get_mesh(ob);
unsigned i;
/* Goto the pin level for multires */
if(m->mr) {
m->mr->newlvl= m->mr->pinlvl;
multires_set_level(ob,m);
}
mesh_calc_modifiers(ob, NULL, NULL, &final, 1, 1, 0);
/* Propagate the changes to render level - fails if mesh topology changed */
if(m->mr) {
if(final->getNumVerts(final) == m->totvert &&
final->getNumFaces(final) == m->totface) {
for(i=0; i<m->totvert; ++i)
memcpy(&m->mvert[i], CustomData_get(&final->vertData, i, LAYERTYPE_MVERT), sizeof(MVert));
final->release(final);
m->mr->newlvl= m->mr->renderlvl;
multires_set_level(ob,m);
final= getMeshDerivedMesh(m,ob,NULL);
}
}
return final;
}