void TetrahedMesh::deconnect(vector<unsigned int> adjecentList, arma::Mat<double> v, unsigned int vIndex) { unsigned int vInd; Vertex temp; temp.setPosition(v); mVertices->push_back(temp); vInd = mVertices->size()-1; for (int j = 0; j < adjecentList.size(); j++) { vector<unsigned int> faceIndices = mTetraheds->at(adjecentList.at(j)).getFaceInd(); for (int i = 0; i< faceIndices.size();i++) { Face & face = mFaces->at(faceIndices[i]); HalfEdge* edge = &mHalfEdges->at(face.getEdgeInd()); Vertex & v1 = mVertices->at(edge->getVertexInd()); if(vecEquals(v1.getPosition(),v)) { //mFaces->at(faceIndices[i]).setOppositeFaceInd(-1); edge->setVertexInd(vInd); break; } edge = &mHalfEdges->at(edge->getNextInd()); Vertex & v2 = mVertices->at(edge->getVertexInd()); if(vecEquals(v2.getPosition(),v)) { //mFaces->at(faceIndices[i]).setOppositeFaceInd(-1); edge->setVertexInd(vInd); break; } edge = &mHalfEdges->at(edge->getNextInd()); Vertex & v3 = mVertices->at(edge->getVertexInd()); if(vecEquals(v3.getPosition(),v)) { edge->setVertexInd(vInd); break; } } } }