int Cal3dModel::shutdown() { assert (m_initialised == true); // TODO: Clear m_dos DynamicObjectList::const_iterator I = m_dos.begin(); DynamicObjectList::const_iterator Iend = m_dos.end(); for (; I != Iend; ++I) { DynamicObject* so = *I; assert(so); so->contextDestroyed(true); so->shutdown(); delete so; } m_dos.clear(); // destroy the model instance m_calModel.reset(0); m_initialised = false; return 0; }