float meshOperation::sumAnglesWheel( int from, int center, int to, mesh & m ) { vector<int> & nbrs = m.getNeighbors()[center]; vector<int> & nbr_fcs = m.getNeighborFaces()[center]; int actual = from, next, lps = 0; float angle = 0; do{ next = meshOperation::getPrevious(center,actual, m); if(next < 0 || lps > int(nbrs.size())){ throw std::runtime_error("Assertion failed at sum Angle Wheel"); } angle += tuple3f::angle( m.vertices[actual], m.vertices[center], m.vertices[next]); actual = next; lps++; } while (actual != to); return angle; }