index.js
function (coord, ringAndEdge1, ringAndEdge2, nxtIsectAlongRingAndEdge1, nxtIsectAlongRingAndEdge2, ringAndEdge1Walkable, ringAndEdge2Walkable) {
  this.coord = coord; // [x,y] of this intersection
  this.ringAndEdge1 = ringAndEdge1; // first edge of this intersection
  this.ringAndEdge2 = ringAndEdge2; // second edge of this intersection
  this.nxtIsectAlongRingAndEdge1 = nxtIsectAlongRingAndEdge1; // the next intersection when following ringAndEdge1
  this.nxtIsectAlongRingAndEdge2 = nxtIsectAlongRingAndEdge2; // the next intersection when following ringAndEdge2
  this.ringAndEdge1Walkable = ringAndEdge1Walkable; // May we (still) walk away from this intersection over ringAndEdge1?
  this.ringAndEdge2Walkable = ringAndEdge2Walkable; // May we (still) walk away from this intersection over ringAndEdge2?
}
function (coord, ringAndEdge1, ringAndEdge2, nxtIsectAlongRingAndEdge1, nxtIsectAlongRingAndEdge2, ringAndEdge1Walkable, ringAndEdge2Walkable) {
  this.coord = coord; // [x,y] of this intersection
  this.ringAndEdge1 = ringAndEdge1; // first edge of this intersection
  this.ringAndEdge2 = ringAndEdge2; // second edge of this intersection
  this.nxtIsectAlongRingAndEdge1 = nxtIsectAlongRingAndEdge1; // the next intersection when following ringAndEdge1
  this.nxtIsectAlongRingAndEdge2 = nxtIsectAlongRingAndEdge2; // the next intersection when following ringAndEdge2
  this.ringAndEdge1Walkable = ringAndEdge1Walkable; // May we (still) walk away from this intersection over ringAndEdge1?
  this.ringAndEdge2Walkable = ringAndEdge2Walkable; // May we (still) walk away from this intersection over ringAndEdge2?
}
function ( coord , ringAndEdge1 , ringAndEdge2 , nxtIsectAlongRingAndEdge1 , nxtIsectAlongRingAndEdge2 , ringAndEdge1Walkable , ringAndEdge2Walkable ) { this . coord = coord ; // [x,y] of this intersection this . ringAndEdge1 = ringAndEdge1 ; // first edge of this intersection this . ringAndEdge2 = ringAndEdge2 ; // second edge of this intersection this . nxtIsectAlongRingAndEdge1 = nxtIsectAlongRingAndEdge1 ; // the next intersection when following ringAndEdge1 this . nxtIsectAlongRingAndEdge2 = nxtIsectAlongRingAndEdge2 ; // the next intersection when following ringAndEdge2 this . ringAndEdge1Walkable = ringAndEdge1Walkable ; // May we (still) walk away from this intersection over ringAndEdge1? this . ringAndEdge2Walkable = ringAndEdge2Walkable ; // May we (still) walk away from this intersection over ringAndEdge2? }
Constructor for an intersection. There are two intersection-pseudo-vertices per self-intersection and one ring-pseudo-vertex per ring-vertex-intersection. Their labels 1 and 2 are not assigned a particular meaning but are permanent once given.
Constructor for an intersection . There are two intersection - pseudo - vertices per self - intersection and one ring - pseudo - vertex per ring - vertex - intersection . Their labels 1 and 2 are not assigned a particular meaning but are permanent once given .