code: public void reversePath(int pathIndex) {
  		_verifyAllStreams();
  		int pathCount = getPathCount();
  		if (pathIndex >= pathCount)
  			throw new IllegalArgumentException();
  
  		int reversedPathStart = getPathStart(pathIndex);
  		int reversedPathSize = getPathSize(pathIndex);
  		int offset = isClosedPath(pathIndex) ? 1 : 0;
  
  		// TODO: a bug for the non linear segments here.
  		// There could be an issue here if someone explicity closes the path
  		// with the same start/end point.
  		for (int iattr = 0, nattr = m_description.getAttributeCount(); iattr < nattr; iattr++) {
  			if (m_vertexAttributes[iattr] != null) {
  				int semantics = m_description._getSemanticsImpl(iattr);
  				int comp = VertexDescription.getComponentCount(semantics);
  				m_vertexAttributes[iattr].reverseRange(comp
  						* (reversedPathStart + offset), comp
  						* (reversedPathSize - offset), comp);
  			}
  		}
  
  		notifyModified(DirtyFlags.DirtyCoordinates);
  	}
docs: Reviewed vs. Native Jan 11, 2011