package com.revolsys.geometry.graph.comparator;
import com.revolsys.geometry.graph.Node;
import com.revolsys.geometry.graph.attribute.NodeProperties;
public class NodeNumEdgeAnglesComparator<T> extends NodeDegreeComparator<T> {
public NodeNumEdgeAnglesComparator() {
}
public NodeNumEdgeAnglesComparator(final boolean invert) {
super(invert);
}
@Override
public int compare(final Node<T> node1, final Node<T> node2) {
int compare;
final int numAngles1 = NodeProperties.getEdgeAngles(node1).size();
final int numAngles2 = NodeProperties.getEdgeAngles(node2).size();
if (numAngles1 == numAngles2) {
return super.compare(node1, node2);
} else if (numAngles1 < numAngles2) {
compare = -1;
} else {
compare = 1;
}
if (isInvert()) {
return -compare;
} else {
return compare;
}
}
}