protected synchronized void performChange() {
double zoom = Math.abs(Math.pow(FACTOR, previousZoom));
ArrayList<NavCommand> commands=new ArrayList<NavCommand>();
if( horizontal!=0 || vertical!=0 ){
commands.add(
new PanCommand((horizontal*-PAN_AMOUNT), (vertical*-PAN_AMOUNT)));
}
if( zoom>0.00000001 ){
double targetZoom = context.calculateZoomLevel(1,previousZoom, fixedPoint, false, zoomAmount != 0);
ZoomCommand zoomCommand = new ZoomCommand(previousZoom);
zoomCommand.setFixedPoint(fixedPoint);