# 2次元点群PointGroup pg
giftWrapping(pg):
    head ← pg.pointsの最も左の点の番号
    f ← head # 最終点をメモ
    
    while True:
        t ← pg.pointsの中で点headを起点として最も反時計回りの位置にある点の番号
        点tを凸法に追加する
        head ← t;
        if head = f:
            break # 始点に戻ってきたら終了