EXPORT_API int nmlsBuildLayers(nmgBuildContext* ctx , rcCompactHeightfield* chf , const int borderSize , const int walkableHeight , rcHeightfieldLayerSet** resultSet) { if (!ctx || !chf) return -1; rcHeightfieldLayerSet* lset = rcAllocHeightfieldLayerSet(); if (!lset) return -1; if (!rcBuildHeightfieldLayers(ctx , *chf , borderSize , walkableHeight , *lset)) { rcFreeHeightfieldLayerSet(lset); return -1; } if (lset->nlayers == 0) { rcFreeHeightfieldLayerSet(lset); return -1; } *resultSet = lset; return lset->nlayers; }
DynamicNavBuildData::~DynamicNavBuildData() { dtFreeTileCacheContourSet(alloc_, contourSet_); contourSet_ = nullptr; dtFreeTileCachePolyMesh(alloc_, polyMesh_); polyMesh_ = nullptr; rcFreeHeightfieldLayerSet(heightFieldLayers_); heightFieldLayers_ = nullptr; }
~RasterizationContext() { rcFreeHeightField(solid); delete [] triareas; rcFreeHeightfieldLayerSet(lset); rcFreeCompactHeightfield(chf); for (int i = 0; i < MAX_LAYERS; ++i) { dtFree(tiles[i].data); tiles[i].data = 0; } }
EXPORT_API void nmlsFreeLayers(rcHeightfieldLayerSet* lset) { rcFreeHeightfieldLayerSet(lset); }