Mercurial > hg > jslab
diff src/samer/maths/MatrixImage.java @ 0:bf79fb79ee13
Initial Mercurial check in.
author | samer |
---|---|
date | Tue, 17 Jan 2012 17:50:20 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/samer/maths/MatrixImage.java Tue Jan 17 17:50:20 2012 +0000 @@ -0,0 +1,58 @@ +/* + * MatrixImage.java + * + * 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.maths; +import samer.core.*; +import samer.tools.*; +import java.awt.Color; + +public class MatrixImage extends ImageViewer +{ + Matrix M; + Node n; + + public MatrixImage( Matrix M) + { + // should make an intelligent choice of + // image source depending on shape of matrix + super(new MatrixImageSource( M, true),M.observable()); + this.n=Shell.env().node(); + this.M=M; + } + + public void scale() + { + double max, min, x; + int n=M.getRowDimension(); + int m=M.getColumnDimension(); + + min=max=M.get(0,0); + for (int i=0; i<n; i++) { + for (int j=0; j<m; j++) { + x=M.get(i,j); + if (x>max) max=x; + if (x<min) min=x; + } + } + + getVMap().setDomain(min,max); + getVMap().changed(this); + } + + public static Viewer getViewerFor(Matrix M) + { + Shell.push(new Node("image",M.getNode())); + Viewer vwr = new MatrixImage(M); + Shell.pop(); + + return vwr; + } +}