std::vector<std::pair<Triangle, int>> FramedFace::makeTriangleEdgePairs(double frameWidth,const VertexVector& vertices,const EdgeVector& edges) { int faceSize=(int) edges.size(); std::vector<std::pair<Triangle, int>> pairs; pairs.reserve(2*faceSize); for (int i=0;i<faceSize;i++) { int index1=(i)%faceSize; int index2=(i+1)%faceSize; int edgeIndex=edges.at(i); Point v1=vertices.at(index1); Point v2=vertices.at(index2); pairs.push_back( std::pair<Triangle,int>( Triangle(v1,inners.at(index2),inners.at(index1)) , edgeIndex) ); pairs.push_back( std::pair<Triangle,int>( Triangle(v1,v2,inners.at(index2)) , edgeIndex) ); } return pairs; }