PView::~PView() { deleteVertexArrays(); if(normals) delete normals; if(_options) delete _options; std::vector<PView*>::iterator it = std::find(list.begin(), list.end(), this); if(it != list.end()) list.erase(it); for(unsigned int i = 0; i < list.size(); i++) list[i]->setIndex(i); if(!_data) return; // do not delete if another view is an alias of this one for(unsigned int i = 0; i < list.size(); i++) if(list[i]->getAliasOf() == _tag) return; // do not delete if this view is an alias and 1) if the original // still exists, or 2) if there are other aliases to the same view if(_aliasOf >= 0) for(unsigned int i = 0; i < list.size(); i++) if(list[i]->getTag() == _aliasOf || list[i]->getAliasOf() == _aliasOf) return; Msg::Debug("Deleting data in View[%d] (tag = %d)", _index, _tag); delete _data; }
void GEdge::deleteMesh() { for(unsigned int i = 0; i < mesh_vertices.size(); i++) delete mesh_vertices[i]; mesh_vertices.clear(); for(unsigned int i = 0; i < lines.size(); i++) delete lines[i]; lines.clear(); _normals.clear(); deleteVertexArrays(); model()->destroyMeshCaches(); }
void GRegion::deleteMesh() { for(unsigned int i = 0; i < mesh_vertices.size(); i++) delete mesh_vertices[i]; mesh_vertices.clear(); transfinite_vertices.clear(); for(unsigned int i = 0; i < tetrahedra.size(); i++) delete tetrahedra[i]; tetrahedra.clear(); for(unsigned int i = 0; i < hexahedra.size(); i++) delete hexahedra[i]; hexahedra.clear(); for(unsigned int i = 0; i < prisms.size(); i++) delete prisms[i]; prisms.clear(); for(unsigned int i = 0; i < pyramids.size(); i++) delete pyramids[i]; pyramids.clear(); for(unsigned int i = 0; i < polyhedra.size(); i++) delete polyhedra[i]; polyhedra.clear(); deleteVertexArrays(); model()->destroyMeshCaches(); }
inline void deleteAny(const NamedVertexArrayObject & v ){ deleteVertexArrays(1,&v); }