simplifyVertex method

double simplifyVertex(
  1. VWVertex vwLine
)

Implementation

double simplifyVertex(VWVertex vwLine) {
  ///
  /// Scan vertices in line and remove the one with smallest effective area.
  ///
  // TODO: use an appropriate data structure to optimize finding the smallest area vertex
  VWVertex? curr = vwLine;
  double minArea = curr.getArea();
  VWVertex? minVertex;
  while (curr != null) {
    double area = curr.getArea();
    if (area < minArea) {
      minArea = area;
      minVertex = curr;
    }
    curr = curr.next;
  }
  if (minVertex != null && minArea < tolerance) {
    minVertex.remove();
  }
  if (!vwLine.isLive) return -1;
  return minArea;
}