Statistics
| Revision:

svn-gvsig-desktop / trunk / libraries / libFMap / src / com / iver / cit / gvsig / fmap / rendering / ColorRamp.java @ 472

History | View | Annotate | Download (3.72 KB)

1 230 fernando
/* Generated by Together */
2
package com.iver.cit.gvsig.fmap.rendering;
3
4 458 fjp
import com.iver.cit.gvsig.fmap.core.v02.FSymbol;
5 435 vcaballero
import com.iver.cit.gvsig.fmap.rendering.styling.FStyle2D;
6 230 fernando
7 435 vcaballero
import com.iver.utiles.StringUtilities;
8
import com.iver.utiles.XMLEntity;
9 298 vcaballero
10 435 vcaballero
import java.awt.Color;
11 322 fernando
12
13 298 vcaballero
/**
14 322 fernando
 * Rampa de colores para el dibujado de Raster's
15 298 vcaballero
 *
16
 * @author Vicente Caballero Navarro
17
 */
18 435 vcaballero
public class ColorRamp implements RasterLegend {
19 298 vcaballero
    private Color firstColor;
20
    private Color lastColor;
21
    private double first;
22
    private double last;
23
24
    /**
25
     * DOCUMENT ME!
26
     *
27
     * @param d DOCUMENT ME!
28
     * @param c DOCUMENT ME!
29
     */
30
    public void setFirstPoint(double d, Color c) {
31
        firstColor = c;
32
        first = d;
33 233 fernando
    }
34 230 fernando
35 298 vcaballero
    /**
36
     * DOCUMENT ME!
37
     *
38
     * @param d DOCUMENT ME!
39
     * @param c DOCUMENT ME!
40
     */
41
    public void setLastPoint(double d, Color c) {
42
        lastColor = c;
43
        last = d;
44 233 fernando
    }
45
46 298 vcaballero
    /**
47
     * DOCUMENT ME!
48
     *
49
     * @param d DOCUMENT ME!
50
     *
51
     * @return DOCUMENT ME!
52
     */
53
    public Color getColor(double d) {
54
        int fr = firstColor.getRed();
55
        int fg = firstColor.getGreen();
56
        int fb = firstColor.getBlue();
57
58
        int lr = lastColor.getRed();
59
        int lg = lastColor.getGreen();
60
        int lb = lastColor.getBlue();
61
62
        double total = last - first;
63
        double tr = lr - fr;
64
        double tg = lg - fg;
65
        double tb = lb - fb;
66
67
        double por = (d - first) / total;
68
        int r = (int) ((por * tr) + fr);
69
        int g = (int) ((por * tg) + fg);
70
        int b = (int) ((por * tb) + fb);
71
72
        return new Color(r, g, b);
73 233 fernando
    }
74 322 fernando
75 435 vcaballero
    /**
76
     * @see com.iver.cit.gvsig.fmap.rendering.ClassifiedLegendInfo#getDescriptions()
77
     */
78
    public String[] getDescriptions() {
79
        return null;
80
    }
81 322 fernando
82 435 vcaballero
    /**
83
     * @see com.iver.cit.gvsig.fmap.rendering.ClassifiedLegendInfo#getSymbols()
84
     */
85 458 fjp
    public FSymbol[] getSymbols() {
86 435 vcaballero
        return null;
87
    }
88 322 fernando
89 435 vcaballero
    /**
90
     * @see com.iver.cit.gvsig.fmap.rendering.ClassifiedLegendInfo#getValues()
91
     */
92
    public Object[] getValues() {
93
        return null;
94
    }
95 322 fernando
96 435 vcaballero
    /**
97 458 fjp
     * @see com.iver.cit.gvsig.fmap.rendering.Legend#getDefaultSymbol()
98 435 vcaballero
     */
99 458 fjp
    public FSymbol getDefaultSymbol() {
100 435 vcaballero
        return null;
101
    }
102 322 fernando
103 435 vcaballero
    /**
104
     * @see com.iver.cit.gvsig.fmap.rendering.RasterLegend#getSymbol(double)
105
     */
106
    public FStyle2D getSymbol(double d) {
107
        return null;
108
    }
109 322 fernando
110 435 vcaballero
    /**
111
     * @see com.iver.cit.gvsig.fmap.rendering.RasterLegend#setDefaultSymbol(com.iver.cit.gvsig.fmap.rendering.styling.FStyle2D)
112
     */
113
    public void setDefaultSymbol(FStyle2D s) {
114
    }
115
116
    /**
117 458 fjp
     * @see com.iver.cit.gvsig.fmap.rendering.Legend#getXMLEntity()
118 435 vcaballero
     */
119
    public XMLEntity getXMLEntity() {
120
        XMLEntity xml = new XMLEntity();
121
        xml.putProperty("first", first);
122
        xml.putProperty("firstColor", StringUtilities.color2String(firstColor));
123
        xml.putProperty("last", last);
124
        xml.putProperty("lastColor", StringUtilities.color2String(lastColor));
125
126
        return xml;
127
    }
128
129
    /**
130
     * DOCUMENT ME!
131
     *
132
     * @param xml DOCUMENT ME!
133
     *
134
     * @return DOCUMENT ME!
135
     */
136
    public static ColorRamp createFromXML(XMLEntity xml) {
137
        ColorRamp cr = new ColorRamp();
138
        cr.first = xml.getDoubleProperty("first");
139
        cr.firstColor = StringUtilities.string2Color(xml.getStringProperty(
140
                    "fistColor"));
141
        cr.last = xml.getDoubleProperty("last");
142
        cr.lastColor = StringUtilities.string2Color(xml.getStringProperty(
143
                    "lastColor"));
144
145
        return cr;
146
    }
147
148
    /**
149 470 fjp
     * @see com.iver.cit.gvsig.fmap.rendering.Legend#cloneLegend()
150 435 vcaballero
     */
151 470 fjp
    public Legend cloneLegend() {
152 435 vcaballero
        return createFromXML(getXMLEntity());
153
    }
154 230 fernando
}