GPL license added
[jalview.git] / src / jalview / schemes / ScoreColourScheme.java
1 /*\r
2 * Jalview - A Sequence Alignment Editor and Viewer\r
3 * Copyright (C) 2005 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle\r
4 *\r
5 * This program is free software; you can redistribute it and/or\r
6 * modify it under the terms of the GNU General Public License\r
7 * as published by the Free Software Foundation; either version 2\r
8 * of the License, or (at your option) any later version.\r
9 *\r
10 * This program is distributed in the hope that it will be useful,\r
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of\r
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
13 * GNU General Public License for more details.\r
14 *\r
15 * You should have received a copy of the GNU General Public License\r
16 * along with this program; if not, write to the Free Software\r
17 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA\r
18 */\r
19 \r
20 package jalview.schemes;\r
21 \r
22 import java.awt.*;\r
23 \r
24 public class ScoreColourScheme extends ResidueColourScheme {\r
25   public double min;\r
26   public double max;\r
27   public double[] scores;\r
28 \r
29   public ScoreColourScheme( double[] scores,\r
30                            double min,\r
31                            double max) {\r
32 \r
33     super();\r
34 \r
35     this.scores = scores;\r
36     this.min = min;\r
37     this.max = max;\r
38   }\r
39 \r
40 \r
41     public Color findColour(String s,int j)\r
42     {\r
43 \r
44       if (threshold > 0)\r
45       {\r
46          if (!aboveThreshold(s,j))\r
47              return Color.white;\r
48       }\r
49 \r
50         float red = (float)(scores[((Integer)ResidueProperties.aaHash.get(s)).intValue()]\r
51                             - (float)min)/(float)(max - min);\r
52         if (red > 1.0f)\r
53             red = 1.0f;\r
54 \r
55         if (red < 0.0f)\r
56             red = 0.0f;\r
57 \r
58     char c = s.charAt(0);\r
59 \r
60     if(jalview.util.Comparison.isGap((c)))\r
61         return Color.white;\r
62 \r
63         // This isn';t great - pool of colours in here?\r
64         return makeColour(red);\r
65     }\r
66     public Color makeColour(float c) {\r
67         return new Color(c,(float)0.0,(float)1.0-c);\r
68     }\r
69 }\r
70 \r