Alembic: changed 'void *user_data' to 'Mesh *mesh'
The only thing that is stored in this pointer is a `Mesh*`, and casting it from/to `void*` is unnecessary and confusing. Maybe the entire CDStreamConfig class could/should be removed at some point. No functional changes.
This commit is contained in:
@@ -353,7 +353,7 @@ static void read_custom_data_mcols(const std::string &iobject_full_name,
|
|||||||
|
|
||||||
/* Read the vertex colors */
|
/* Read the vertex colors */
|
||||||
void *cd_data = config.add_customdata_cb(
|
void *cd_data = config.add_customdata_cb(
|
||||||
config.user_data, prop_header.getName().c_str(), CD_MLOOPCOL);
|
config.mesh, prop_header.getName().c_str(), CD_MLOOPCOL);
|
||||||
MCol *cfaces = static_cast<MCol *>(cd_data);
|
MCol *cfaces = static_cast<MCol *>(cd_data);
|
||||||
MPoly *mpolys = config.mpoly;
|
MPoly *mpolys = config.mpoly;
|
||||||
MLoop *mloops = config.mloop;
|
MLoop *mloops = config.mloop;
|
||||||
@@ -437,8 +437,7 @@ static void read_custom_data_uvs(const ICompoundProperty &prop,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
void *cd_data = config.add_customdata_cb(
|
void *cd_data = config.add_customdata_cb(config.mesh, prop_header.getName().c_str(), CD_MLOOPUV);
|
||||||
config.user_data, prop_header.getName().c_str(), CD_MLOOPUV);
|
|
||||||
|
|
||||||
read_uvs(config, cd_data, sample.getVals(), sample.getIndices());
|
read_uvs(config, cd_data, sample.getVals(), sample.getIndices());
|
||||||
}
|
}
|
||||||
|
@@ -28,6 +28,7 @@
|
|||||||
#include <Alembic/AbcGeom/All.h>
|
#include <Alembic/AbcGeom/All.h>
|
||||||
|
|
||||||
struct CustomData;
|
struct CustomData;
|
||||||
|
struct Mesh;
|
||||||
struct MLoop;
|
struct MLoop;
|
||||||
struct MLoopUV;
|
struct MLoopUV;
|
||||||
struct MPoly;
|
struct MPoly;
|
||||||
@@ -60,8 +61,8 @@ struct CDStreamConfig {
|
|||||||
/* TODO(kevin): might need a better way to handle adding and/or updating
|
/* TODO(kevin): might need a better way to handle adding and/or updating
|
||||||
* custom datas such that it updates the custom data holder and its pointers
|
* custom datas such that it updates the custom data holder and its pointers
|
||||||
* properly. */
|
* properly. */
|
||||||
void *user_data;
|
Mesh *mesh;
|
||||||
void *(*add_customdata_cb)(void *user_data, const char *name, int data_type);
|
void *(*add_customdata_cb)(Mesh *mesh, const char *name, int data_type);
|
||||||
|
|
||||||
float weight;
|
float weight;
|
||||||
float time;
|
float time;
|
||||||
@@ -75,7 +76,7 @@ struct CDStreamConfig {
|
|||||||
totpoly(0),
|
totpoly(0),
|
||||||
totvert(0),
|
totvert(0),
|
||||||
pack_uvs(false),
|
pack_uvs(false),
|
||||||
user_data(NULL),
|
mesh(NULL),
|
||||||
add_customdata_cb(NULL),
|
add_customdata_cb(NULL),
|
||||||
weight(0.0f),
|
weight(0.0f),
|
||||||
time(0.0f),
|
time(0.0f),
|
||||||
|
@@ -900,7 +900,7 @@ ABC_INLINE void read_uvs_params(CDStreamConfig &config,
|
|||||||
name = uv.getName();
|
name = uv.getName();
|
||||||
}
|
}
|
||||||
|
|
||||||
void *cd_ptr = config.add_customdata_cb(config.user_data, name.c_str(), CD_MLOOPUV);
|
void *cd_ptr = config.add_customdata_cb(config.mesh, name.c_str(), CD_MLOOPUV);
|
||||||
config.mloopuv = static_cast<MLoopUV *>(cd_ptr);
|
config.mloopuv = static_cast<MLoopUV *>(cd_ptr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -960,9 +960,8 @@ static void set_smooth_poly_flag(Mesh *mesh)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void *add_customdata_cb(void *user_data, const char *name, int data_type)
|
static void *add_customdata_cb(Mesh *mesh, const char *name, int data_type)
|
||||||
{
|
{
|
||||||
Mesh *mesh = static_cast<Mesh *>(user_data);
|
|
||||||
CustomDataType cd_data_type = static_cast<CustomDataType>(data_type);
|
CustomDataType cd_data_type = static_cast<CustomDataType>(data_type);
|
||||||
void *cd_ptr;
|
void *cd_ptr;
|
||||||
CustomData *loopdata;
|
CustomData *loopdata;
|
||||||
@@ -1047,7 +1046,7 @@ CDStreamConfig get_config(Mesh *mesh)
|
|||||||
|
|
||||||
BLI_assert(mesh->mvert || mesh->totvert == 0);
|
BLI_assert(mesh->mvert || mesh->totvert == 0);
|
||||||
|
|
||||||
config.user_data = mesh;
|
config.mesh = mesh;
|
||||||
config.mvert = mesh->mvert;
|
config.mvert = mesh->mvert;
|
||||||
config.mloop = mesh->mloop;
|
config.mloop = mesh->mloop;
|
||||||
config.mpoly = mesh->mpoly;
|
config.mpoly = mesh->mpoly;
|
||||||
|
Reference in New Issue
Block a user