public MapComposedElement invert ( ) { if ( this . pointCoordinates == null ) { throw new IndexOutOfBoundsException ( ) ; } double [ ] tmp = new double [ this . pointCoordinates . length ] ; for ( int i = 0 ; i < this . pointCoordinates . length ; i += 2 ) { tmp [ i ] = this . pointCoordinates [ this . pointCoordinates . length - 1 - ( i + 1 ) ] ; tmp [ i + 1 ] = this . pointCoordinates [ this . pointCoordinates . length - 1 - i ] ; } System . arraycopy ( tmp , 0 , this . pointCoordinates , 0 , this . pointCoordinates . length ) ; if ( this . partIndexes != null ) { int [ ] tmpint = new int [ this . partIndexes . length ] ; //part 0 not inside the index array for ( int i = 0 ; i < this . partIndexes . length ; ++ i ) { tmpint [ this . partIndexes . length - 1 - i ] = this . pointCoordinates . length - this . partIndexes [ i ] ; } System . arraycopy ( tmpint , 0 , this . partIndexes , 0 , this . partIndexes . length ) ; tmpint = null ; } tmp = null ; return this ; }
Invert the order of points coordinates of this element and reorder the groupIndex too .