Mercurial > hg > jslab
view src/samer/tools/ImageVTrace.java @ 8:5e3cbbf173aa tip
Reorganise some more
author | samer |
---|---|
date | Fri, 05 Apr 2019 22:41:58 +0100 |
parents | bf79fb79ee13 |
children |
line wrap: on
line source
/* * Copyright (c) 2000, Samer Abdallah, King's College London. * All rights reserved. * * This software is provided AS iS and WITHOUT ANY WARRANTY; * without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. */ package samer.tools; import java.awt.*; import java.util.*; /** Things to add: UI for LinearMap used in MatrixImageSource vertical and horizontal scaling: cell size, vertical stretch vertical sweep version? cooperate with MatrixImageSource for efficiency: vertical strips rather than scan lines */ public class ImageVTrace extends ImageTraceBase { private int y=0; public ImageVTrace( ImageSourceBase i, Observable o) { super(i,o); } public void next() { ip.sendPixels(); // img is m by n if (!sc) { graphics.drawImage( img, 0, y, null); } else { if (stretch) { graphics.drawImage( img, 0, y, width, sy, null); } else { graphics.drawImage( img, 0, y, sx, sy, null); } } // Scroll DOWN y-=sy; if (scroll) while (y<0) { graphics.copyArea(0,0,width,height-scrollStep-1,0,scrollStep); y+=scrollStep; } else if (y<0) y=height-1; /* // Scroll UP y+=sy; if (scroll) while (y>=height) { graphics.copyArea(0,scrollStep,width,height-1,0,-scrollStep); y-=scrollStep; } else if (y>=height) y=0; */ } public Dimension getPreferredSize() { return new Dimension(cx*ip.getWidth(),cy*256); } }