JaRMoS  1.1
Java Reduced Model Simulations
 All Classes Namespaces Files Functions Variables Enumerator Groups Pages
ColorGenerator.java
Go to the documentation of this file.
1 package jarmos.visual;
2 
18 public class ColorGenerator {
19 
24 
28  public float alphaValue = 0.8f;
29 
36  public float[] getDefaultColor(int size) {
37  float[] colors = new float[size * 4];
38  for (int i = 0; i < colors.length; i += 4) {
39  colors[i] = 0.0f;
40  colors[i + 1] = 0.0f;
41  colors[i + 2] = 1.0f;
42  colors[i + 3] = alphaValue;
43  }
44  return colors;
45  }
46 
53  public float[] computeColors(float[] fieldValues) {
54 
55  float[] colors = new float[fieldValues.length * 4];
56  float min = getMin(fieldValues);
57  float max = getMax(fieldValues);
58 
59  // calculate color data
60  for (int i = 0; i < fieldValues.length; i++) {
61  float tmpvar = (fieldValues[i] - min) / (max - min);
62  if (tmpvar <= 0.125f) {
63  colors[i * 4 + 0] = 0.0f;
64  colors[i * 4 + 1] = 0.0f;
65  colors[i * 4 + 2] = 0.5f + tmpvar / 0.25f;
66  colors[i * 4 + 3] = alphaValue;
67  }
68  if ((tmpvar > 0.125f) && (tmpvar <= 0.375f)) {
69  colors[i * 4 + 0] = 0.0f;
70  colors[i * 4 + 1] = 0.0f + (tmpvar - 0.125f) / 0.25f;
71  colors[i * 4 + 2] = 1.0f;
72  colors[i * 4 + 3] = alphaValue;
73  }
74  if ((tmpvar > 0.375f) && (tmpvar <= 0.625f)) {
75  colors[i * 4 + 0] = 0.0f + (tmpvar - 0.375f) / 0.25f;
76  colors[i * 4 + 1] = 1.0f;
77  colors[i * 4 + 2] = 1.0f - (tmpvar - 0.375f) / 0.25f;
78  colors[i * 4 + 3] = alphaValue;
79  }
80  if ((tmpvar > 0.625f) && (tmpvar <= 0.875f)) {
81  colors[i * 4 + 0] = 1.0f;
82  colors[i * 4 + 1] = 1.0f - (tmpvar - 0.625f) / 0.25f;
83  colors[i * 4 + 2] = 0.0f;
84  colors[i * 4 + 3] = alphaValue;
85  }
86  if (tmpvar > 0.875f) {
87  colors[i * 4 + 0] = 1.0f - (tmpvar - 0.875f) / 0.25f;
88  colors[i * 4 + 1] = 0.0f;
89  colors[i * 4 + 2] = 0.0f;
90  colors[i * 4 + 3] = alphaValue;
91  }
92  }
93  return colors;
94  }
95 
96  private float getMin(float[] values) {
97  float min = values[0];
98  for (int j = 0; j < values.length; j++) {
99  min = (min > values[j]) ? values[j] : min;
100  }
101  return min;
102  }
103 
104  private float getMax(float[] values) {
105  float min = values[0];
106  for (int j = 0; j < values.length; j++) {
107  min = (min < values[j]) ? values[j] : min;
108  }
109  return min;
110  }
111 
112 }
float alphaValue
default alpha value, use 1.0f for nonblend rendering
float[] getDefaultColor(int size)
Returns an array with &quot;size&quot; default colors (effectively 4*size RGBT values)
float[] computeColors(float[] fieldValues)
Computes a 4-tuple color array with values R, G, B, Alpha for the given field values.
ColorMap ColorMap
The color map to use.
The color generator is used to produce RGBA (RGB+Alpha) values from a given array of floats...
Interface for different colorizations.
Definition: ColorMap.java:14