¿Ordenar puntos en función de su distancia entre sí?

Tengo un vector de 3 puntos A, B y C Quiero ordenar este vector según la distancia entre esos puntos, digamos que la mayor distancia es entre B y C y que C y A y la última A y B:

Cómo puedo hacer eso ???

std::sort(vectorName.begin(), vectorName.end(), 
          [](const cv::Point2f &a, const cv::Point2f &b)
          {
              cv::Point2f diff = a-b;
             return  cv::sqrt(diff.x*diff.x + diff.y*diff.y); // I know it doesn't make a sense but how can I do this 
          });

Respuestas a la pregunta(1)

Su respuesta a la pregunta