* Simple and probably not even close to optimal performance wise
*/
EastNorth[] ppts = new EastNorth[nodeCount];
EastNorth prevA = pts[0].add(normals[0].scale(d));
EastNorth prevB = pts[1].add(normals[0].scale(d));
for (int i = 1; i < nodeCount - 1; i++) {
EastNorth A = pts[i].add(normals[i].scale(d));
EastNorth B = pts[i + 1].add(normals[i].scale(d));
if (Geometry.segmentsParallel(A, B, prevA, prevB)) {
ppts[i] = A;
} else {
ppts[i] = Geometry.getLineLineIntersection(A, B, prevA, prevB);
}
prevA = A;
prevB = B;
}
if (isClosedPath()) {
EastNorth A = pts[0].add(normals[0].scale(d));
EastNorth B = pts[1].add(normals[0].scale(d));
if (Geometry.segmentsParallel(A, B, prevA, prevB)) {
ppts[0] = A;
} else {
ppts[0] = Geometry.getLineLineIntersection(A, B, prevA, prevB);
}