Cleanup: deduplicate DM's getLoopTriArray() callback.
All three functions were doing exactly the same thing, simpler to only have one in that case!
This commit is contained in:
parent
e6da7bb75c
commit
e9cbc700ef
|
@ -235,6 +235,17 @@ static int dm_getNumLoopTri(DerivedMesh *dm)
|
|||
return numlooptris;
|
||||
}
|
||||
|
||||
static const MLoopTri *dm_getLoopTriArray(DerivedMesh *dm)
|
||||
{
|
||||
if (dm->looptris.array) {
|
||||
BLI_assert(poly_to_tri_count(dm->numPolyData, dm->numLoopData) == dm->looptris.num);
|
||||
}
|
||||
else {
|
||||
dm->recalcLoopTri(dm);
|
||||
}
|
||||
return dm->looptris.array;
|
||||
}
|
||||
|
||||
static CustomData *dm_getVertCData(DerivedMesh *dm)
|
||||
{
|
||||
return &dm->vertData;
|
||||
|
@ -278,6 +289,8 @@ void DM_init_funcs(DerivedMesh *dm)
|
|||
dm->dupLoopArray = dm_dupLoopArray;
|
||||
dm->dupPolyArray = dm_dupPolyArray;
|
||||
|
||||
dm->getLoopTriArray = dm_getLoopTriArray;
|
||||
|
||||
/* subtypes handle getting actual data */
|
||||
dm->getNumLoopTri = dm_getNumLoopTri;
|
||||
|
||||
|
|
|
@ -1927,19 +1927,6 @@ void CDDM_recalc_looptri(DerivedMesh *dm)
|
|||
cddm->dm.looptris.array);
|
||||
}
|
||||
|
||||
static const MLoopTri *cdDM_getLoopTriArray(DerivedMesh *dm)
|
||||
{
|
||||
if (dm->looptris.array) {
|
||||
BLI_assert(poly_to_tri_count(dm->numPolyData, dm->numLoopData) == dm->looptris.num);
|
||||
}
|
||||
else {
|
||||
dm->recalcLoopTri(dm);
|
||||
|
||||
/* ccdm is an exception here, that recalcLoopTri will fill in the array too */
|
||||
}
|
||||
return dm->looptris.array;
|
||||
}
|
||||
|
||||
static void cdDM_free_internal(CDDerivedMesh *cddm)
|
||||
{
|
||||
if (cddm->pmap) MEM_freeN(cddm->pmap);
|
||||
|
@ -1990,8 +1977,6 @@ static CDDerivedMesh *cdDM_create(const char *desc)
|
|||
dm->getEdgeDataArray = DM_get_edge_data_layer;
|
||||
dm->getTessFaceDataArray = DM_get_tessface_data_layer;
|
||||
|
||||
dm->getLoopTriArray = cdDM_getLoopTriArray;
|
||||
|
||||
dm->calcNormals = CDDM_calc_normals;
|
||||
dm->calcLoopNormals = CDDM_calc_loop_normals;
|
||||
dm->calcLoopNormalsSpaceArray = CDDM_calc_loop_normals_spacearr;
|
||||
|
|
|
@ -661,18 +661,6 @@ static void emDM_recalcLoopTri(DerivedMesh *dm)
|
|||
}
|
||||
}
|
||||
|
||||
static const MLoopTri *emDM_getLoopTriArray(DerivedMesh *dm)
|
||||
{
|
||||
if (dm->looptris.array) {
|
||||
BLI_assert(poly_to_tri_count(dm->numPolyData, dm->numLoopData) == dm->looptris.num);
|
||||
}
|
||||
else {
|
||||
dm->recalcLoopTri(dm);
|
||||
}
|
||||
|
||||
return dm->looptris.array;
|
||||
}
|
||||
|
||||
static void emDM_foreachMappedVert(
|
||||
DerivedMesh *dm,
|
||||
void (*func)(void *userData, int index, const float co[3], const float no_f[3], const short no_s[3]),
|
||||
|
@ -2259,8 +2247,6 @@ DerivedMesh *getEditDerivedBMesh(
|
|||
bmdm->dm.getNumLoops = emDM_getNumLoops;
|
||||
bmdm->dm.getNumPolys = emDM_getNumPolys;
|
||||
|
||||
bmdm->dm.getLoopTriArray = emDM_getLoopTriArray;
|
||||
|
||||
bmdm->dm.getVert = emDM_getVert;
|
||||
bmdm->dm.getVertCo = emDM_getVertCo;
|
||||
bmdm->dm.getVertNo = emDM_getVertNo;
|
||||
|
|
|
@ -4505,18 +4505,6 @@ static void ccgDM_recalcLoopTri(DerivedMesh *dm)
|
|||
BLI_rw_mutex_unlock(&loops_cache_rwlock);
|
||||
}
|
||||
|
||||
static const MLoopTri *ccgDM_getLoopTriArray(DerivedMesh *dm)
|
||||
{
|
||||
if (dm->looptris.array) {
|
||||
BLI_assert(poly_to_tri_count(dm->numPolyData, dm->numLoopData) == dm->looptris.num);
|
||||
}
|
||||
else {
|
||||
dm->recalcLoopTri(dm);
|
||||
}
|
||||
|
||||
return dm->looptris.array;
|
||||
}
|
||||
|
||||
static void ccgDM_calcNormals(DerivedMesh *dm)
|
||||
{
|
||||
/* Nothing to do: CCG calculates normals during drawing */
|
||||
|
@ -4533,8 +4521,6 @@ static void set_default_ccgdm_callbacks(CCGDerivedMesh *ccgdm)
|
|||
ccgdm->dm.getNumPolys = ccgDM_getNumPolys;
|
||||
ccgdm->dm.getNumTessFaces = ccgDM_getNumTessFaces;
|
||||
|
||||
ccgdm->dm.getLoopTriArray = ccgDM_getLoopTriArray;
|
||||
|
||||
ccgdm->dm.getVert = ccgDM_getFinalVert;
|
||||
ccgdm->dm.getEdge = ccgDM_getFinalEdge;
|
||||
ccgdm->dm.getTessFace = ccgDM_getFinalFace;
|
||||
|
|
Loading…
Reference in New Issue