Cleanup: Remove unused DerivedMesh functions
This commit is contained in:
parent
94e211ced9
commit
ebc385de5f
|
@ -141,14 +141,6 @@ struct DerivedMesh {
|
|||
void (*copyLoopArray)(DerivedMesh *dm, struct MLoop *r_loop);
|
||||
void (*copyPolyArray)(DerivedMesh *dm, struct MPoly *r_poly);
|
||||
|
||||
/** Return a copy of all verts/edges/faces from the derived mesh
|
||||
* it is the caller's responsibility to free the returned pointer
|
||||
*/
|
||||
struct MVert *(*dupVertArray)(DerivedMesh *dm);
|
||||
struct MEdge *(*dupEdgeArray)(DerivedMesh *dm);
|
||||
struct MLoop *(*dupLoopArray)(DerivedMesh *dm);
|
||||
struct MPoly *(*dupPolyArray)(DerivedMesh *dm);
|
||||
|
||||
/** Return a pointer to the entire array of vert/edge/face custom data
|
||||
* from the derived mesh (this gives a pointer to the actual data, not
|
||||
* a copy)
|
||||
|
@ -253,11 +245,6 @@ void DM_copy_vert_data(struct DerivedMesh *source,
|
|||
int dest_index,
|
||||
int count);
|
||||
|
||||
/**
|
||||
* Sets up mpolys for a DM based on face iterators in source.
|
||||
*/
|
||||
void DM_DupPolys(DerivedMesh *source, DerivedMesh *target);
|
||||
|
||||
/**
|
||||
* Ensure the array is large enough.
|
||||
*
|
||||
|
|
|
@ -25,10 +25,6 @@ struct Mesh;
|
|||
* data to not overwrite the original. */
|
||||
struct DerivedMesh *CDDM_from_mesh(struct Mesh *mesh);
|
||||
|
||||
/* Copies the given DerivedMesh with verts, faces & edges stored as
|
||||
* custom element data. */
|
||||
struct DerivedMesh *CDDM_copy(struct DerivedMesh *source);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -147,54 +147,6 @@ static MPoly *dm_getPolyArray(DerivedMesh *dm)
|
|||
return mpoly;
|
||||
}
|
||||
|
||||
static MVert *dm_dupVertArray(DerivedMesh *dm)
|
||||
{
|
||||
MVert *tmp = (MVert *)MEM_malloc_arrayN(
|
||||
dm->getNumVerts(dm), sizeof(*tmp), "dm_dupVertArray tmp");
|
||||
|
||||
if (tmp) {
|
||||
dm->copyVertArray(dm, tmp);
|
||||
}
|
||||
|
||||
return tmp;
|
||||
}
|
||||
|
||||
static MEdge *dm_dupEdgeArray(DerivedMesh *dm)
|
||||
{
|
||||
MEdge *tmp = (MEdge *)MEM_malloc_arrayN(
|
||||
dm->getNumEdges(dm), sizeof(*tmp), "dm_dupEdgeArray tmp");
|
||||
|
||||
if (tmp) {
|
||||
dm->copyEdgeArray(dm, tmp);
|
||||
}
|
||||
|
||||
return tmp;
|
||||
}
|
||||
|
||||
static MLoop *dm_dupLoopArray(DerivedMesh *dm)
|
||||
{
|
||||
MLoop *tmp = (MLoop *)MEM_malloc_arrayN(
|
||||
dm->getNumLoops(dm), sizeof(*tmp), "dm_dupLoopArray tmp");
|
||||
|
||||
if (tmp) {
|
||||
dm->copyLoopArray(dm, tmp);
|
||||
}
|
||||
|
||||
return tmp;
|
||||
}
|
||||
|
||||
static MPoly *dm_dupPolyArray(DerivedMesh *dm)
|
||||
{
|
||||
MPoly *tmp = (MPoly *)MEM_malloc_arrayN(
|
||||
dm->getNumPolys(dm), sizeof(*tmp), "dm_dupPolyArray tmp");
|
||||
|
||||
if (tmp) {
|
||||
dm->copyPolyArray(dm, tmp);
|
||||
}
|
||||
|
||||
return tmp;
|
||||
}
|
||||
|
||||
static int dm_getNumLoopTri(DerivedMesh *dm)
|
||||
{
|
||||
const int numlooptris = poly_to_tri_count(dm->getNumPolys(dm), dm->getNumLoops(dm));
|
||||
|
@ -233,10 +185,6 @@ void DM_init_funcs(DerivedMesh *dm)
|
|||
dm->getEdgeArray = dm_getEdgeArray;
|
||||
dm->getLoopArray = dm_getLoopArray;
|
||||
dm->getPolyArray = dm_getPolyArray;
|
||||
dm->dupVertArray = dm_dupVertArray;
|
||||
dm->dupEdgeArray = dm_dupEdgeArray;
|
||||
dm->dupLoopArray = dm_dupLoopArray;
|
||||
dm->dupPolyArray = dm_dupPolyArray;
|
||||
|
||||
dm->getLoopTriArray = dm_getLoopTriArray;
|
||||
|
||||
|
@ -331,36 +279,6 @@ bool DM_release(DerivedMesh *dm)
|
|||
return false;
|
||||
}
|
||||
|
||||
void DM_DupPolys(DerivedMesh *source, DerivedMesh *target)
|
||||
{
|
||||
CustomData_free(&target->loopData, source->numLoopData);
|
||||
CustomData_free(&target->polyData, source->numPolyData);
|
||||
|
||||
CustomData_copy(&source->loopData,
|
||||
&target->loopData,
|
||||
CD_MASK_DERIVEDMESH.lmask,
|
||||
CD_DUPLICATE,
|
||||
source->numLoopData);
|
||||
CustomData_copy(&source->polyData,
|
||||
&target->polyData,
|
||||
CD_MASK_DERIVEDMESH.pmask,
|
||||
CD_DUPLICATE,
|
||||
source->numPolyData);
|
||||
|
||||
target->numLoopData = source->numLoopData;
|
||||
target->numPolyData = source->numPolyData;
|
||||
|
||||
if (!CustomData_has_layer(&target->polyData, CD_MPOLY)) {
|
||||
MPoly *mpoly;
|
||||
MLoop *mloop;
|
||||
|
||||
mloop = source->dupLoopArray(source);
|
||||
mpoly = source->dupPolyArray(source);
|
||||
CustomData_add_layer(&target->loopData, CD_MLOOP, CD_ASSIGN, mloop, source->numLoopData);
|
||||
CustomData_add_layer(&target->polyData, CD_MPOLY, CD_ASSIGN, mpoly, source->numPolyData);
|
||||
}
|
||||
}
|
||||
|
||||
void DM_ensure_looptri_data(DerivedMesh *dm)
|
||||
{
|
||||
const unsigned int totpoly = dm->numPolyData;
|
||||
|
|
|
@ -244,43 +244,3 @@ DerivedMesh *CDDM_from_mesh(Mesh *mesh)
|
|||
{
|
||||
return cdDM_from_mesh_ex(mesh, CD_REFERENCE, &CD_MASK_MESH);
|
||||
}
|
||||
|
||||
DerivedMesh *CDDM_copy(DerivedMesh *source)
|
||||
{
|
||||
CDDerivedMesh *cddm = cdDM_create("CDDM_copy cddm");
|
||||
DerivedMesh *dm = &cddm->dm;
|
||||
int numVerts = source->numVertData;
|
||||
int numEdges = source->numEdgeData;
|
||||
int numTessFaces = 0;
|
||||
int numLoops = source->numLoopData;
|
||||
int numPolys = source->numPolyData;
|
||||
|
||||
/* NOTE: Don't copy tessellation faces if not requested explicitly. */
|
||||
|
||||
/* ensure these are created if they are made on demand */
|
||||
source->getVertDataArray(source, CD_ORIGINDEX);
|
||||
source->getEdgeDataArray(source, CD_ORIGINDEX);
|
||||
source->getPolyDataArray(source, CD_ORIGINDEX);
|
||||
|
||||
/* this initializes dm, and copies all non mvert/medge/mface layers */
|
||||
DM_from_template(dm, source, DM_TYPE_CDDM, numVerts, numEdges, numTessFaces, numLoops, numPolys);
|
||||
dm->deformedOnly = source->deformedOnly;
|
||||
dm->cd_flag = source->cd_flag;
|
||||
|
||||
CustomData_copy_data(&source->vertData, &dm->vertData, 0, 0, numVerts);
|
||||
CustomData_copy_data(&source->edgeData, &dm->edgeData, 0, 0, numEdges);
|
||||
|
||||
/* now add mvert/medge/mface layers */
|
||||
cddm->mvert = source->dupVertArray(source);
|
||||
cddm->medge = source->dupEdgeArray(source);
|
||||
|
||||
CustomData_add_layer(&dm->vertData, CD_MVERT, CD_ASSIGN, cddm->mvert, numVerts);
|
||||
CustomData_add_layer(&dm->edgeData, CD_MEDGE, CD_ASSIGN, cddm->medge, numEdges);
|
||||
|
||||
DM_DupPolys(source, dm);
|
||||
|
||||
cddm->mloop = CustomData_get_layer(&dm->loopData, CD_MLOOP);
|
||||
cddm->mpoly = CustomData_get_layer(&dm->polyData, CD_MPOLY);
|
||||
|
||||
return dm;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue