예제 #1
0
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;
}