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);
	}
}