protected void computePoints(DirectedEdge start){
  startDe=start;
  DirectedEdge de=start;
  boolean isFirstEdge=true;
  do {
    if (de == null)     throw new TopologyException("Found null DirectedEdge");
    if (de.getEdgeRing() == this)     throw new TopologyException("Directed Edge visited twice during ring-building at " + de.getCoordinate());
    edges.add(de);
    Label label=de.getLabel();
    Assert.isTrue(label.isArea());
    mergeLabel(label);
    addPoints(de.getEdge(),de.isForward(),isFirstEdge);
    isFirstEdge=false;
    setEdgeRing(de,this);
    de=getNext(de);
  }
 while (de != startDe);
}

protected void computePoints ( DirectedEdge start ) { startDe = start ; DirectedEdge de = start ; boolean isFirstEdge = true ; do { if ( de == null ) throw new TopologyException ( "Found null DirectedEdge" ) ; if ( de . getEdgeRing ( ) == this ) throw new TopologyException ( "Directed Edge visited twice during ring-building at " + de . getCoordinate ( ) ) ; edges . add ( de ) ; Label label = de . getLabel ( ) ; Assert . isTrue ( label . isArea ( ) ) ; mergeLabel ( label ) ; addPoints ( de . getEdge ( ) , de . isForward ( ) , isFirstEdge ) ; isFirstEdge = false ; setEdgeRing ( de , this ) ; de = getNext ( de ) ; } while ( de != startDe ) ; }
collect all the points from the directededges of this ring into a contiguous list
