SceneData::~SceneData() { lightSources.clear(); lightGroupLightSources.clear(); Destroy_Skysphere(skysphere); while (fog != nullptr) { FOG *next = fog->Next; Destroy_Fog(fog); fog = next; } while (rainbow != nullptr) { RAINBOW *next = rainbow->Next; Destroy_Rainbow(rainbow); rainbow = next; } if (boundingSlabs != nullptr) Destroy_BBox_Tree(boundingSlabs); for (std::vector<TrueTypeFont*>::iterator i = TTFonts.begin(); i != TTFonts.end(); ++i) delete *i; // TODO: perhaps ObjectBase::~ObjectBase would be a better place // to handle cleanup of individual objects ? Destroy_Object(objects); if (tree != nullptr) delete tree; }
SceneData::~SceneData() { lightSources.clear(); lightGroupLightSources.clear(); Destroy_Skysphere(skysphere); while (fog != NULL) { FOG *next = fog->Next; Destroy_Fog(fog); fog = next; } while (rainbow != NULL) { RAINBOW *next = rainbow->Next; Destroy_Rainbow(rainbow); rainbow = next; } if(boundingSlabs != NULL) Destroy_BBox_Tree(boundingSlabs); if(TTFonts != NULL) FreeFontInfo(TTFonts); // TODO: perhaps ObjectBase::~ObjectBase would be a better place // to handle cleanup of individual objects ? Destroy_Object(objects); delete functionVM; if(tree != NULL) delete tree; }