code: void addConnectedSegment(RoadPolyline segment, boolean attachToStartPoint) {
  		if (segment == null) {
  			return;
  		}
  		if (this.connectedSegments.isEmpty()) {
  			this.connectedSegments.add(new Connection(segment, attachToStartPoint));
  		} else {
  			// Compute the angle to the unit vector for the new segment
  			final double newSegmentAngle = computeAngle(segment, attachToStartPoint);
  
  			// Search for the insertion index
  			final int insertionIndex = searchInsertionIndex(newSegmentAngle, 0, this.connectedSegments.size() - 1);
  			// Insert
  			this.connectedSegments.add(insertionIndex, new Connection(segment, attachToStartPoint));
  		}
  		fireIteratorUpdate();
  	}
docs: Add a segment to this connection point.
  
  <p>The segments are ordered according to there
  geo-localization along a trigonometric cicle.
  The first segment has the nearest angle to the
  vector (1,0), and the following segments are
  ordered according to the positive value of there
  angles to this unity vector (counterclockwise order).
  
  @param segment is the segment to add.
  @param attachToStartPoint indicates if the segment must be attached by
  its start point (if value is <code>true</code>) or by its end point
  (if value is <code>false</code>).