samer@0: /* samer@0: * MatrixTImageSourceF.java samer@0: * samer@0: * Copyright (c) 2000, Samer Abdallah, King's College London. samer@0: * All rights reserved. samer@0: * samer@0: * This software is provided AS iS and WITHOUT ANY WARRANTY; samer@0: * without even the implied warranty of MERCHANTABILITY or samer@0: * FITNESS FOR A PARTICULAR PURPOSE. samer@0: */ samer@0: samer@0: package samer.maths; samer@0: import samer.tools.*; samer@0: import Jama.Matrix; samer@0: import java.awt.image.*; samer@0: samer@0: /** This one sends pixels in vertical strips: better for samer@0: column vectors or very narrow matrices samer@0: */ samer@0: samer@0: public class MatrixTImageSourceF extends ImageSourceBase samer@0: { samer@0: Matrix matrix; samer@0: byte [] strip; samer@0: samer@0: public MatrixTImageSourceF( Matrix mat) samer@0: { samer@0: matrix = mat; samer@0: width = mat.getRowDimension(); samer@0: height = mat.getColumnDimension(); samer@0: strip = new byte[height]; samer@0: } samer@0: samer@0: public void newMatrix(Matrix mat) { matrix=mat; sendPixels(); } samer@0: samer@0: protected int getHints() { samer@0: if (width==1) { samer@0: return ImageConsumer.TOPDOWNLEFTRIGHT samer@0: | ImageConsumer.COMPLETESCANLINES samer@0: | ImageConsumer.SINGLEPASS; samer@0: } else { samer@0: return ImageConsumer.RANDOMPIXELORDER | ImageConsumer.SINGLEPASS; samer@0: } samer@0: } samer@0: protected void sendPixels(ImageConsumer ic) samer@0: { samer@0: double[][] X=matrix.getArray(); samer@0: samer@0: for (int i=0; i