void destroy_mesh(struct mesh *m)
{
+ free(m->name);
free(m->varr);
free(m->iarr);
void clear_mesh(struct mesh *m)
{
+ free(m->name);
free(m->varr);
free(m->iarr);
+ m->name = 0;
m->varr = 0;
m->iarr = 0;
m->num_verts = m->max_verts = m->num_idx = m->max_idx = 0;
{
init_mesh(dest);
+ if(src->name) {
+ dest->name = strdup(src->name);
+ }
+
if(src->max_verts && !(dest->varr = malloc(src->max_verts * sizeof *dest->varr))) {
return -1;
}
mesh->bbvalid = 0;
for(i=0; i<mesh->num_verts; i++) {
- cgm_vmul_v3m4(&mesh->varr[i].pos, mat);
- cgm_vmul_v3m3(&mesh->varr[i].norm, mat);
- cgm_vmul_v3m3(&mesh->varr[i].tang, mat);
+ cgm_vmul_m4v3(&mesh->varr[i].pos, mat);
+ cgm_vmul_m3v3(&mesh->varr[i].norm, mat);
+ cgm_vmul_m3v3(&mesh->varr[i].tang, mat);
}
}