code: public void addSegment(Segment segment, boolean bStartNewPath) {
  		mergeVertexDescription(segment.getDescription());
  		if (segment.getType() == Type.Line) {
  			Point point = new Point();
  			if (bStartNewPath || isEmpty()) {
  				segment.queryStart(point);
  				startPath(point);
  			}
  
  			segment.queryEnd(point);
  			lineTo(point);
  		} else {
  			throw GeometryException.GeometryInternalError();
  		}
  	}
docs: Reviewed vs. Native Jan 11, 2011