public boolean setPointAt(int index, double x, double y, boolean canonize) {
		final int count = getPointCount();
		int idx = index;
		if (idx < 0) {
			idx = count + idx;
		}
		if (idx < 0) {
			throw new IndexOutOfBoundsException(idx + "<0"); //$NON-NLS-1$
		}
		if (idx >= count) {
			throw new IndexOutOfBoundsException(idx + ">=" + count); //$NON-NLS-1$
		}
		final PointFusionValidator validator = getPointFusionValidator();
		final int idx1 = idx * 2;
		final int idx2 = idx1 + 1;
		if (!validator.isSame(x, y, this.pointCoordinates[idx1], this.pointCoordinates[idx2])) {
			this.pointCoordinates[idx1] = x;
			this.pointCoordinates[idx2] = y;

			if (canonize) {
				canonize(idx);
			}

			fireShapeChanged();
			fireElementChanged();
			return true;
		}
		return false;
	}
public boolean setPointAt ( int index , double x , double y , boolean canonize ) { final int count = getPointCount ( ) ; int idx = index ; if ( idx < 0 ) { idx = count + idx ; } if ( idx < 0 ) { throw new IndexOutOfBoundsException ( idx + "<0" ) ; } if ( idx >= count ) { throw new IndexOutOfBoundsException ( idx + ">=" + count ) ; } final PointFusionValidator validator = getPointFusionValidator ( ) ; final int idx1 = idx * 2 ; final int idx2 = idx1 + 1 ; if ( ! validator . isSame ( x , y , this . pointCoordinates [ idx1 ] , this . pointCoordinates [ idx2 ] ) ) { this . pointCoordinates [ idx1 ] = x ; this . pointCoordinates [ idx2 ] = y ; if ( canonize ) { canonize ( idx ) ; } fireShapeChanged ( ) ; fireElementChanged ( ) ; return true ; } return false ; }
Set the specified point at the given index.

<p>If the <var>index</var> is negative, it will corresponds
to an index starting from the end of the list.

@param index is the index of the desired point
@param x is the new value of the point
@param y is the new value of the point
@param canonize indicates if the function {@link #canonize(int)} must be called.
@return <code>true</code> if the point was set, <code>false</code> if
the specified coordinates correspond to the already existing point.
@throws IndexOutOfBoundsException in case of error.