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);
	}
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 ; 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 ) ; }
Reviewed vs. Native Jan 11, 2011