VDPMLoader::~VDPMLoader(){ this->qFilename_.clear(); this->mesh_loaded = false; vsplit_loaded.clear(); vfront_.clear(); vhierarchy_.clear(); index2handle_map.clear(); //mesh_.clear(); VDPMMesh::FaceIter fIt(mesh_.faces_begin()), fEnd(mesh_.faces_end()); for(; fIt != fEnd; ++fIt){ mesh_.delete_face(fIt.handle()); } VDPMMesh::VertexIter vIt(mesh_.vertices_begin()), vEnd(mesh_.vertices_end()); for(; vIt != vEnd; ++vIt){ mesh_.delete_vertex(vIt.handle()); } mesh_.garbage_collection(); if(base_info_data != NULL){ delete [] base_info_data; base_info_data = NULL; } base_info_data_size = 0; }
/*++ ******************************************************************************** FUNCTION: fSize DESCRIPTION: Return the size of the file ARGUMENTS: File handle RETURNS: Size of file in 64 bits ******************************************************************************** --*/ u64 fSize( FILE *handle ) { u64 size,pos; pos = fTell( handle ); fEnd( handle ); size = fTell( handle ); fPos( pos, handle ); return size; }
void MeshView::drawMesh( DRAW_MODE d ) { if( m_meshPtr ) { std::cout << "MeshView::drawMesh()" << std::endl; m_meshPtr->lock(); Mesh::ConstFaceIter fIt(m_meshPtr->faces_begin()), fEnd(m_meshPtr->faces_end()); Mesh::ConstFaceVertexIter fvIt; Mesh::ConstVertexIter vIt(m_meshPtr->vertices_begin()); float color[4] = { 1.0, 1.0, 1.0, 1.0 }; switch( d ) { case POINTS_ONLY: glBegin(GL_POINTS); glColor3fv(color); for(; vIt!=m_meshPtr->vertices_end(); ++vIt) { if( prepareColor( color, m_meshPtr->color(vIt) ) ) glColor3fv(color); glVertex3dv(m_meshPtr->point(vIt)); } glEnd(); break; case WIREFRAME: for (; fIt!=fEnd; ++fIt) { glBegin(GL_LINE_STRIP); glColor3fv(color); fvIt = m_meshPtr->cfv_iter(fIt.handle()); if( prepareColor( color, m_meshPtr->color(fvIt) ) ) glColor3fv(color); glVertex3dv(m_meshPtr->point(fvIt)); ++fvIt; if( prepareColor( color, m_meshPtr->color(fvIt) ) ) glColor3fv(color); glVertex3dv(m_meshPtr->point(fvIt)); ++fvIt; if( prepareColor( color, m_meshPtr->color(fvIt) ) ) glColor3fv(color); glVertex3dv(m_meshPtr->point(fvIt)); glEnd(); } break; case FACETS: case FLAT_FACET: glBegin(GL_TRIANGLES); glColor3fv(color); for (; fIt!=fEnd; ++fIt) { glNormal3fv( m_meshPtr->normal( fIt.handle() ) ); fvIt = m_meshPtr->cfv_iter(fIt.handle()); if( prepareColor( color, m_meshPtr->color(fvIt) ) ) glColor3fv(color); glVertex3dv(m_meshPtr->point(fvIt)); ++fvIt; if( prepareColor( color, m_meshPtr->color(fvIt) ) ) glColor3fv(color); glVertex3dv(m_meshPtr->point(fvIt)); ++fvIt; if( prepareColor( color, m_meshPtr->color(fvIt) ) ) glColor3fv(color); glVertex3dv(m_meshPtr->point(fvIt)); } glEnd(); break; case SMOOTH_FACET: glBegin(GL_TRIANGLES); glColor3fv(color); for (; fIt!=fEnd; ++fIt) { fvIt = m_meshPtr->cfv_iter(fIt.handle()); glNormal3fv(m_meshPtr->normal(fvIt.handle()) ); if( prepareColor( color, m_meshPtr->color(fvIt) ) ) glColor3fv(color); glVertex3dv(m_meshPtr->point(fvIt)); ++fvIt; glNormal3fv(m_meshPtr->normal(fvIt.handle())); if( prepareColor( color, m_meshPtr->color(fvIt) ) ) glColor3fv(color); glVertex3dv(m_meshPtr->point(fvIt)); ++fvIt; glNormal3fv(m_meshPtr->normal(fvIt.handle())); if( prepareColor( color, m_meshPtr->color(fvIt) ) ) glColor3fv(color); glVertex3dv(m_meshPtr->point(fvIt)); } glEnd(); break; default: break; } //glFlush(); m_meshPtr->unlock(); setDirty(false); //std::cout << " } MeshView::drawMesh()" << std::endl; } }