== Multires ==
Fixed bug #5815, Multires mesh UVs get lost (or crashes!) when adding additional UV layers * Switching to Face Select mode adds a UV layer automatically, was missing code there to add the layer to multires as well * Adding/Deleting a customdata layer on a multires mesh should update the multires data first
This commit is contained in:
@@ -90,6 +90,7 @@
|
||||
#include "mydevice.h"
|
||||
#include "blendef.h"
|
||||
#include "butspace.h"
|
||||
#include "multires.h"
|
||||
|
||||
#include "BSE_trans_types.h"
|
||||
|
||||
@@ -610,9 +611,16 @@ void default_uv(float uv[][2], float size)
|
||||
|
||||
void make_tfaces(Mesh *me)
|
||||
{
|
||||
if(!me->mtface)
|
||||
me->mtface= CustomData_add_layer(&me->fdata, CD_MTFACE, CD_DEFAULT,
|
||||
NULL, me->totface);
|
||||
if(!me->mtface) {
|
||||
if(me->mr) {
|
||||
multires_add_layer(me, &me->mr->fdata, CD_MTFACE,
|
||||
CustomData_number_of_layers(&me->fdata, CD_MTFACE));
|
||||
}
|
||||
else {
|
||||
me->mtface= CustomData_add_layer(&me->fdata, CD_MTFACE, CD_DEFAULT,
|
||||
NULL, me->totface);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void reveal_tface()
|
||||
|
||||
@@ -346,6 +346,8 @@ void multires_delete_layer(Mesh *me, CustomData *cd, const int type, int n)
|
||||
if(me && me->mr && cd) {
|
||||
MultiresLevel *lvl1= me->mr->levels.first;
|
||||
|
||||
multires_update_levels(me);
|
||||
|
||||
CustomData_set_layer_active(cd, type, n);
|
||||
CustomData_free_layer_active(cd, type, lvl1->totface);
|
||||
|
||||
@@ -357,6 +359,8 @@ MultiresLevel *current_level(Multires *mr);
|
||||
void multires_add_layer(Mesh *me, CustomData *cd, const int type, const int n)
|
||||
{
|
||||
if(me && me->mr && cd) {
|
||||
multires_update_levels(me);
|
||||
|
||||
if(CustomData_has_layer(cd, type))
|
||||
CustomData_add_layer(cd, type, CD_DUPLICATE, CustomData_get_layer(cd, type),
|
||||
current_level(me->mr)->totface);
|
||||
|
||||
Reference in New Issue
Block a user