#include "chain.h"
#include <math.h>
#include <assert.h>

vertexChain::vertexChain(link *linkList, int linkNum) :
  chain(linkList, linkNum) {
  // table size same as linkNum for polygons
  initTable(linkNum);
}

double vertexChain::componentWeight (int i, int j, int k) {
  //ordinates
  double x[3]= {linkList[i].x, linkList[j].x,
                linkList[k].x};

  //coordinates
  double y[3]= {linkList[i].y, linkList[j].y,
                linkList[k].y};
  double sum= 0;

  // find the length of the perimeter
  for (int i= 0; i != 3; i++) {
    sum += sqrt(pow(x[(i+1) % 3] - x[i], 2) +
                pow(y[(i+1) % 3] - y[i], 2));
  }
  return sum;
}

componentNode *vertexChain::minPartition(int linkNum) {
  return chain::minPartition(0, linkNum - 1);
}

