mirror of
https://github.com/meteoinfo/MeteoInfo.git
synced 2025-12-08 20:36:05 +00:00
bugfix of colorbar function
This commit is contained in:
parent
88f4010d86
commit
897a68b403
2
.idea/inspectionProfiles/Project_Default.xml
generated
2
.idea/inspectionProfiles/Project_Default.xml
generated
@ -1908,7 +1908,7 @@
|
||||
<inspection_tool class="PatternVariableCanBeUsed" enabled="false" level="WARNING" enabled_by_default="false" />
|
||||
<inspection_tool class="PatternVariableHidesField" enabled="false" level="WARNING" enabled_by_default="false" />
|
||||
<inspection_tool class="PatternVariablesCanBeReplacedWithCast" enabled="false" level="INFORMATION" enabled_by_default="false" />
|
||||
<inspection_tool class="PbDuplicatedImports" enabled="true" level="WARNING" enabled_by_default="true" />
|
||||
<inspection_tool class="PbDuplicatedImports" enabled="false" level="WARNING" enabled_by_default="false" />
|
||||
<inspection_tool class="PlaceholderCountMatchesArgumentCount" enabled="false" level="WARNING" enabled_by_default="false" />
|
||||
<inspection_tool class="PlatformExtensionReceiverOfInline" enabled="true" level="WARNING" enabled_by_default="true" />
|
||||
<inspection_tool class="PluginXmlCapitalization" enabled="true" level="WARNING" enabled_by_default="true" />
|
||||
|
||||
@ -1025,118 +1025,115 @@ public class ChartColorBar extends ChartLegend {
|
||||
g.setFont(tickLabelFont);
|
||||
g.setColor(this.tickColor);
|
||||
idx = 0;
|
||||
for (int i = 0; i < bNum; i++) {
|
||||
sP.X += barWidth;
|
||||
if (labelIdxs.contains(i)) {
|
||||
ColorBreak cb = aLS.getLegendBreaks().get(i);
|
||||
if (this.autoTick) {
|
||||
if (aLS.getLegendType() == LegendType.UNIQUE_VALUE) {
|
||||
caption = cb.getCaption();
|
||||
} else {
|
||||
caption = DataConvert.removeTailingZeros(cb.getEndValue().toString());
|
||||
}
|
||||
} else {
|
||||
caption = tLabels.get(idx);
|
||||
}
|
||||
|
||||
double sX = sP.X;
|
||||
switch (extendType) {
|
||||
case BOTH:
|
||||
case MIN:
|
||||
sX = sX - barWidth + extendLength;
|
||||
break;
|
||||
}
|
||||
for (int i : labelIdxs) {
|
||||
sP.X = sX + barWidth * (i + 1);
|
||||
ColorBreak cb = aLS.getLegendBreaks().get(i);
|
||||
if (this.autoTick) {
|
||||
if (aLS.getLegendType() == LegendType.UNIQUE_VALUE) {
|
||||
aP.X = sP.X - barWidth / 2;
|
||||
g.setColor(this.tickLabelColor);
|
||||
if (this.tickLabelAngle == 0) {
|
||||
Draw.drawString(g, aP.X, sP.Y, caption, XAlign.CENTER, YAlign.TOP, this.tickLabelAngle, true);
|
||||
} else if (this.tickLabelAngle < 45) {
|
||||
Draw.drawString(g, aP.X, sP.Y, caption, XAlign.RIGHT, YAlign.TOP, this.tickLabelAngle, true);
|
||||
} else {
|
||||
Draw.drawString(g, aP.X, sP.Y, caption, XAlign.RIGHT, YAlign.CENTER, this.tickLabelAngle, true);
|
||||
}
|
||||
caption = cb.getCaption();
|
||||
} else {
|
||||
if (i == 0) {
|
||||
switch (extendType) {
|
||||
case BOTH:
|
||||
case MIN:
|
||||
sP.X = sP.X - barWidth + extendLength;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (this.autoTick) {
|
||||
if (i < bNum - 1) {
|
||||
g.setColor(this.tickColor);
|
||||
aP = this.drawTickLine(g, sP.X, sP.Y, tickLen, true, 0);
|
||||
g.setColor(this.tickLabelColor);
|
||||
if (this.tickLabelAngle == 0) {
|
||||
Draw.drawString(g, aP.X, aP.Y, caption, XAlign.CENTER, YAlign.TOP, this.tickLabelAngle, true);
|
||||
} else if (this.tickLabelAngle < 45) {
|
||||
Draw.drawString(g, aP.X, aP.Y, caption, XAlign.RIGHT, YAlign.TOP, this.tickLabelAngle, true);
|
||||
} else {
|
||||
Draw.drawString(g, aP.X, aP.Y, caption, XAlign.RIGHT, YAlign.CENTER, this.tickLabelAngle, true);
|
||||
}
|
||||
if (i == 0) {
|
||||
switch (this.extendType) {
|
||||
case NEITHER:
|
||||
case MAX:
|
||||
if (tickGap == 1) {
|
||||
g.setColor(this.tickColor);
|
||||
aP = this.drawTickLine(g, sP.X, sP.Y, tickLen, true, -this.barWidth);
|
||||
caption = DataConvert.removeTailingZeros(cb.getStartValue().toString());
|
||||
g.setColor(this.tickLabelColor);
|
||||
//Draw.drawString(g, ssP.X - this.barWidth, ssP.Y, caption, XAlign.CENTER, YAlign.TOP, this.tickLabelAngle, true);
|
||||
if (this.tickLabelAngle == 0) {
|
||||
Draw.drawString(g, aP.X - this.barWidth, aP.Y, caption, XAlign.CENTER, YAlign.TOP, this.tickLabelAngle, true);
|
||||
} else if (this.tickLabelAngle < 45) {
|
||||
Draw.drawString(g, aP.X - this.barWidth, aP.Y, caption, XAlign.RIGHT, YAlign.TOP, this.tickLabelAngle, true);
|
||||
} else {
|
||||
Draw.drawString(g, aP.X - this.barWidth, aP.Y, caption, XAlign.RIGHT, YAlign.CENTER, this.tickLabelAngle, true);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
caption = DataConvert.removeTailingZeros(cb.getEndValue().toString());
|
||||
}
|
||||
} else {
|
||||
caption = tLabels.get(idx);
|
||||
}
|
||||
|
||||
if (aLS.getLegendType() == LegendType.UNIQUE_VALUE) {
|
||||
aP.X = sP.X - barWidth / 2;
|
||||
g.setColor(this.tickLabelColor);
|
||||
if (this.tickLabelAngle == 0) {
|
||||
Draw.drawString(g, aP.X, sP.Y, caption, XAlign.CENTER, YAlign.TOP, this.tickLabelAngle, true);
|
||||
} else if (this.tickLabelAngle < 45) {
|
||||
Draw.drawString(g, aP.X, sP.Y, caption, XAlign.RIGHT, YAlign.TOP, this.tickLabelAngle, true);
|
||||
} else {
|
||||
Draw.drawString(g, aP.X, sP.Y, caption, XAlign.RIGHT, YAlign.CENTER, this.tickLabelAngle, true);
|
||||
}
|
||||
} else {
|
||||
if (this.autoTick) {
|
||||
if (i < bNum - 1) {
|
||||
g.setColor(this.tickColor);
|
||||
aP = this.drawTickLine(g, sP.X, sP.Y, tickLen, true, 0);
|
||||
g.setColor(this.tickLabelColor);
|
||||
if (this.tickLabelAngle == 0) {
|
||||
Draw.drawString(g, aP.X, aP.Y, caption, XAlign.CENTER, YAlign.TOP, this.tickLabelAngle, true);
|
||||
} else if (this.tickLabelAngle < 45) {
|
||||
Draw.drawString(g, aP.X, aP.Y, caption, XAlign.RIGHT, YAlign.TOP, this.tickLabelAngle, true);
|
||||
} else {
|
||||
Draw.drawString(g, aP.X, aP.Y, caption, XAlign.RIGHT, YAlign.CENTER, this.tickLabelAngle, true);
|
||||
}
|
||||
if (i == 0) {
|
||||
switch (this.extendType) {
|
||||
case NEITHER:
|
||||
case MIN:
|
||||
g.setColor(this.tickColor);
|
||||
aP = this.drawTickLine(g, sP.X, sP.Y, tickLen, true, 0);
|
||||
g.setColor(this.tickLabelColor);
|
||||
if (this.tickLabelAngle == 0) {
|
||||
Draw.drawString(g, aP.X, aP.Y, caption, XAlign.CENTER, YAlign.TOP, this.tickLabelAngle, true);
|
||||
} else if (this.tickLabelAngle < 45) {
|
||||
Draw.drawString(g, aP.X, aP.Y, caption, XAlign.RIGHT, YAlign.TOP, this.tickLabelAngle, true);
|
||||
} else {
|
||||
Draw.drawString(g, aP.X, aP.Y, caption, XAlign.RIGHT, YAlign.CENTER, this.tickLabelAngle, true);
|
||||
case MAX:
|
||||
if (tickGap == 1) {
|
||||
g.setColor(this.tickColor);
|
||||
aP = this.drawTickLine(g, sP.X, sP.Y, tickLen, true, -this.barWidth);
|
||||
caption = DataConvert.removeTailingZeros(cb.getStartValue().toString());
|
||||
g.setColor(this.tickLabelColor);
|
||||
//Draw.drawString(g, ssP.X - this.barWidth, ssP.Y, caption, XAlign.CENTER, YAlign.TOP, this.tickLabelAngle, true);
|
||||
if (this.tickLabelAngle == 0) {
|
||||
Draw.drawString(g, aP.X - this.barWidth, aP.Y, caption, XAlign.CENTER, YAlign.TOP, this.tickLabelAngle, true);
|
||||
} else if (this.tickLabelAngle < 45) {
|
||||
Draw.drawString(g, aP.X - this.barWidth, aP.Y, caption, XAlign.RIGHT, YAlign.TOP, this.tickLabelAngle, true);
|
||||
} else {
|
||||
Draw.drawString(g, aP.X - this.barWidth, aP.Y, caption, XAlign.RIGHT, YAlign.CENTER, this.tickLabelAngle, true);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (i == 0 && this.tickLocations.get(idx) == Double.parseDouble(cb.getStartValue().toString())) {
|
||||
g.setColor(this.tickColor);
|
||||
aP = this.drawTickLine(g, sP.X, sP.Y, tickLen, true, -this.barWidth);
|
||||
g.setColor(this.tickLabelColor);
|
||||
//Draw.drawString(g, sP.X - this.barWidth, sP.Y, caption, XAlign.CENTER, YAlign.TOP, this.tickLabelAngle, true);
|
||||
if (this.tickLabelAngle == 0) {
|
||||
Draw.drawString(g, aP.X - this.barWidth, aP.Y, caption, XAlign.CENTER, YAlign.TOP, this.tickLabelAngle, true);
|
||||
} else if (this.tickLabelAngle < 45) {
|
||||
Draw.drawString(g, aP.X - this.barWidth, aP.Y, caption, XAlign.RIGHT, YAlign.TOP, this.tickLabelAngle, true);
|
||||
} else {
|
||||
Draw.drawString(g, aP.X - this.barWidth, aP.Y, caption, XAlign.RIGHT, YAlign.CENTER, this.tickLabelAngle, true);
|
||||
}
|
||||
switch (this.extendType) {
|
||||
case NEITHER:
|
||||
case MIN:
|
||||
g.setColor(this.tickColor);
|
||||
aP = this.drawTickLine(g, sP.X, sP.Y, tickLen, true, 0);
|
||||
g.setColor(this.tickLabelColor);
|
||||
if (this.tickLabelAngle == 0) {
|
||||
Draw.drawString(g, aP.X, aP.Y, caption, XAlign.CENTER, YAlign.TOP, this.tickLabelAngle, true);
|
||||
} else if (this.tickLabelAngle < 45) {
|
||||
Draw.drawString(g, aP.X, aP.Y, caption, XAlign.RIGHT, YAlign.TOP, this.tickLabelAngle, true);
|
||||
} else {
|
||||
Draw.drawString(g, aP.X, aP.Y, caption, XAlign.RIGHT, YAlign.CENTER, this.tickLabelAngle, true);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (i == 0 && this.tickLocations.get(idx) == Double.parseDouble(cb.getStartValue().toString())) {
|
||||
g.setColor(this.tickColor);
|
||||
aP = this.drawTickLine(g, sP.X, sP.Y, tickLen, true, -this.barWidth);
|
||||
g.setColor(this.tickLabelColor);
|
||||
//Draw.drawString(g, sP.X - this.barWidth, sP.Y, caption, XAlign.CENTER, YAlign.TOP, this.tickLabelAngle, true);
|
||||
if (this.tickLabelAngle == 0) {
|
||||
Draw.drawString(g, aP.X - this.barWidth, aP.Y, caption, XAlign.CENTER, YAlign.TOP, this.tickLabelAngle, true);
|
||||
} else if (this.tickLabelAngle < 45) {
|
||||
Draw.drawString(g, aP.X - this.barWidth, aP.Y, caption, XAlign.RIGHT, YAlign.TOP, this.tickLabelAngle, true);
|
||||
} else {
|
||||
g.setColor(this.tickColor);
|
||||
aP = this.drawTickLine(g, sP.X, sP.Y, tickLen, true, 0);
|
||||
g.setColor(this.tickLabelColor);
|
||||
if (this.tickLabelAngle == 0) {
|
||||
Draw.drawString(g, aP.X, aP.Y, caption, XAlign.CENTER, YAlign.TOP, this.tickLabelAngle, true);
|
||||
} else if (this.tickLabelAngle < 45) {
|
||||
Draw.drawString(g, aP.X, aP.Y, caption, XAlign.RIGHT, YAlign.TOP, this.tickLabelAngle, true);
|
||||
} else {
|
||||
Draw.drawString(g, aP.X, aP.Y, caption, XAlign.RIGHT, YAlign.CENTER, this.tickLabelAngle, true);
|
||||
}
|
||||
Draw.drawString(g, aP.X - this.barWidth, aP.Y, caption, XAlign.RIGHT, YAlign.CENTER, this.tickLabelAngle, true);
|
||||
}
|
||||
} else {
|
||||
g.setColor(this.tickColor);
|
||||
aP = this.drawTickLine(g, sP.X, sP.Y, tickLen, true, 0);
|
||||
g.setColor(this.tickLabelColor);
|
||||
if (this.tickLabelAngle == 0) {
|
||||
Draw.drawString(g, aP.X, aP.Y, caption, XAlign.CENTER, YAlign.TOP, this.tickLabelAngle, true);
|
||||
} else if (this.tickLabelAngle < 45) {
|
||||
Draw.drawString(g, aP.X, aP.Y, caption, XAlign.RIGHT, YAlign.TOP, this.tickLabelAngle, true);
|
||||
} else {
|
||||
Draw.drawString(g, aP.X, aP.Y, caption, XAlign.RIGHT, YAlign.CENTER, this.tickLabelAngle, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
idx += 1;
|
||||
}
|
||||
idx += 1;
|
||||
}
|
||||
|
||||
//Draw label
|
||||
@ -1413,7 +1410,7 @@ public class ChartColorBar extends ChartLegend {
|
||||
if (this.tickLocations.contains(v)) {
|
||||
labelIdxs.add(i);
|
||||
tickIdx = this.tickLocations.indexOf(v);
|
||||
tLabels.add(this.tickLabels.get(tickIdx).getText());
|
||||
tLabels.add(0, this.tickLabels.get(tickIdx).getText());
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1637,79 +1634,76 @@ public class ChartColorBar extends ChartLegend {
|
||||
}
|
||||
g.setFont(tickLabelFont);
|
||||
idx = 0;
|
||||
for (int i = 0; i < bNum; i++) {
|
||||
sP.Y -= this.barHeight;
|
||||
if (labelIdxs.contains(i)) {
|
||||
ColorBreak cb = aLS.getLegendBreaks().get(i);
|
||||
if (this.autoTick) {
|
||||
if (aLS.getLegendType() == LegendType.UNIQUE_VALUE) {
|
||||
caption = cb.getCaption();
|
||||
} else {
|
||||
caption = DataConvert.removeTailingZeros(cb.getEndValue().toString());
|
||||
}
|
||||
} else {
|
||||
caption = tLabels.get(idx);
|
||||
}
|
||||
|
||||
double sY = sP.Y;
|
||||
switch (extendType) {
|
||||
case BOTH:
|
||||
case MIN:
|
||||
sY = sY + this.barHeight - extendLength;
|
||||
break;
|
||||
}
|
||||
for (int i : labelIdxs) {
|
||||
sP.Y = sY - this.barHeight * (i + 1);
|
||||
ColorBreak cb = aLS.getLegendBreaks().get(i);
|
||||
if (this.autoTick) {
|
||||
if (aLS.getLegendType() == LegendType.UNIQUE_VALUE) {
|
||||
g.setColor(this.tickLabelColor);
|
||||
Draw.drawString(g, sP.X, sP.Y, caption, XAlign.LEFT, YAlign.CENTER, this.tickLabelAngle, true);
|
||||
caption = cb.getCaption();
|
||||
} else {
|
||||
if (i == 0) {
|
||||
switch (extendType) {
|
||||
case BOTH:
|
||||
case MIN:
|
||||
sP.Y = aP.Y - extendLength;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (this.autoTick) {
|
||||
if (i < bNum - 1) {
|
||||
g.setColor(this.tickColor);
|
||||
aP = this.drawTickLine(g, sP.X, sP.Y, tickLen, false, 0);
|
||||
g.setColor(this.tickLabelColor);
|
||||
Draw.drawString(g, aP.X, aP.Y, caption, XAlign.LEFT, YAlign.CENTER, this.tickLabelAngle, true);
|
||||
if (i == 0) {
|
||||
switch (this.extendType) {
|
||||
case NEITHER:
|
||||
case MAX:
|
||||
if (tickGap == 1) {
|
||||
g.setColor(this.tickColor);
|
||||
aP = this.drawTickLine(g, sP.X, sP.Y, tickLen, false, this.barHeight);
|
||||
caption = DataConvert.removeTailingZeros(cb.getStartValue().toString());
|
||||
g.setColor(this.tickLabelColor);
|
||||
Draw.drawString(g, aP.X, aP.Y + this.barHeight, caption, XAlign.LEFT, YAlign.CENTER, this.tickLabelAngle, true);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
caption = DataConvert.removeTailingZeros(cb.getEndValue().toString());
|
||||
}
|
||||
} else {
|
||||
caption = tLabels.get(idx);
|
||||
}
|
||||
|
||||
if (aLS.getLegendType() == LegendType.UNIQUE_VALUE) {
|
||||
g.setColor(this.tickLabelColor);
|
||||
Draw.drawString(g, sP.X, sP.Y, caption, XAlign.LEFT, YAlign.CENTER, this.tickLabelAngle, true);
|
||||
} else {
|
||||
if (this.autoTick) {
|
||||
if (i < bNum - 1) {
|
||||
g.setColor(this.tickColor);
|
||||
aP = this.drawTickLine(g, sP.X, sP.Y, tickLen, false, 0);
|
||||
g.setColor(this.tickLabelColor);
|
||||
Draw.drawString(g, aP.X, aP.Y, caption, XAlign.LEFT, YAlign.CENTER, this.tickLabelAngle, true);
|
||||
if (i == 0) {
|
||||
switch (this.extendType) {
|
||||
case NEITHER:
|
||||
case MIN:
|
||||
g.setColor(this.tickColor);
|
||||
aP = this.drawTickLine(g, sP.X, sP.Y, tickLen, false, 0);
|
||||
g.setColor(this.tickLabelColor);
|
||||
Draw.drawString(g, aP.X, aP.Y, caption, XAlign.LEFT, YAlign.CENTER, this.tickLabelAngle, true);
|
||||
case MAX:
|
||||
if (tickGap == 1) {
|
||||
g.setColor(this.tickColor);
|
||||
aP = this.drawTickLine(g, sP.X, sP.Y, tickLen, false, this.barHeight);
|
||||
caption = DataConvert.removeTailingZeros(cb.getStartValue().toString());
|
||||
g.setColor(this.tickLabelColor);
|
||||
Draw.drawString(g, aP.X, aP.Y + this.barHeight, caption, XAlign.LEFT, YAlign.CENTER, this.tickLabelAngle, true);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (i == 0 && this.tickLocations.get(idx) == Double.parseDouble(cb.getStartValue().toString())) {
|
||||
g.setColor(this.tickColor);
|
||||
aP = this.drawTickLine(g, sP.X, sP.Y, tickLen, false, this.barHeight);
|
||||
g.setColor(this.tickLabelColor);
|
||||
Draw.drawString(g, aP.X, aP.Y + this.barHeight, caption, XAlign.LEFT, YAlign.CENTER, this.tickLabelAngle, true);
|
||||
} else {
|
||||
g.setColor(this.tickColor);
|
||||
aP = this.drawTickLine(g, sP.X, sP.Y, tickLen, false, 0);
|
||||
g.setColor(this.tickLabelColor);
|
||||
Draw.drawString(g, aP.X, aP.Y, caption, XAlign.LEFT, YAlign.CENTER, this.tickLabelAngle, true);
|
||||
switch (this.extendType) {
|
||||
case NEITHER:
|
||||
case MIN:
|
||||
g.setColor(this.tickColor);
|
||||
aP = this.drawTickLine(g, sP.X, sP.Y, tickLen, false, 0);
|
||||
g.setColor(this.tickLabelColor);
|
||||
Draw.drawString(g, aP.X, aP.Y, caption, XAlign.LEFT, YAlign.CENTER, this.tickLabelAngle, true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (i == 0 && this.tickLocations.get(idx) == Double.parseDouble(cb.getStartValue().toString())) {
|
||||
g.setColor(this.tickColor);
|
||||
aP = this.drawTickLine(g, sP.X, sP.Y, tickLen, false, this.barHeight);
|
||||
g.setColor(this.tickLabelColor);
|
||||
Draw.drawString(g, aP.X, aP.Y + this.barHeight, caption, XAlign.LEFT, YAlign.CENTER, this.tickLabelAngle, true);
|
||||
} else {
|
||||
g.setColor(this.tickColor);
|
||||
aP = this.drawTickLine(g, sP.X, sP.Y, tickLen, false, 0);
|
||||
g.setColor(this.tickLabelColor);
|
||||
Draw.drawString(g, aP.X, aP.Y, caption, XAlign.LEFT, YAlign.CENTER, this.tickLabelAngle, true);
|
||||
}
|
||||
}
|
||||
idx += 1;
|
||||
}
|
||||
idx += 1;
|
||||
}
|
||||
//Draw label
|
||||
double sx, sy;
|
||||
|
||||
@ -9032,6 +9032,36 @@ public class GraphicFactory {
|
||||
float x, y, z;
|
||||
int idx;
|
||||
|
||||
//Z slices
|
||||
dim1 = (int) ya.getSize();
|
||||
dim2 = (int) xa.getSize();
|
||||
for (int s = 0; s < zSlice.size(); s++) {
|
||||
z = zSlice.get(s).floatValue();
|
||||
Array r = ArrayUtil.slice(data, 0, za, z);
|
||||
if (r != null) {
|
||||
Index index = r.getIndex();
|
||||
MeshGraphic graphic = new MeshGraphic();
|
||||
float[] vertexPosition = new float[dim1 * dim2 * 3];
|
||||
float[] vertexValue = new float[dim1 * dim2];
|
||||
for (int i = 0; i < dim1; i++) {
|
||||
y = ya.getFloat(i);
|
||||
for (int j = 0; j < dim2; j++) {
|
||||
x = xa.getFloat(j);
|
||||
idx = i * dim2 +j;
|
||||
vertexValue[idx] = r.getFloat(index.set(i, j));
|
||||
idx = idx * 3;
|
||||
vertexPosition[idx] = x;
|
||||
vertexPosition[idx+1] = y;
|
||||
vertexPosition[idx+2] = z;
|
||||
}
|
||||
}
|
||||
graphic.setVertexPosition(vertexPosition, dim1);
|
||||
graphic.setVertexValue(vertexValue);
|
||||
graphic.setLegendScheme(ls);
|
||||
sgs.add(graphic);
|
||||
}
|
||||
}
|
||||
|
||||
//X slices
|
||||
dim1 = (int) za.getSize();
|
||||
dim2 = (int) ya.getSize();
|
||||
@ -9092,36 +9122,6 @@ public class GraphicFactory {
|
||||
}
|
||||
}
|
||||
|
||||
//Z slices
|
||||
dim1 = (int) ya.getSize();
|
||||
dim2 = (int) xa.getSize();
|
||||
for (int s = 0; s < zSlice.size(); s++) {
|
||||
z = zSlice.get(s).floatValue();
|
||||
Array r = ArrayUtil.slice(data, 0, za, z);
|
||||
if (r != null) {
|
||||
Index index = r.getIndex();
|
||||
MeshGraphic graphic = new MeshGraphic();
|
||||
float[] vertexPosition = new float[dim1 * dim2 * 3];
|
||||
float[] vertexValue = new float[dim1 * dim2];
|
||||
for (int i = 0; i < dim1; i++) {
|
||||
y = ya.getFloat(i);
|
||||
for (int j = 0; j < dim2; j++) {
|
||||
x = xa.getFloat(j);
|
||||
idx = i * dim2 +j;
|
||||
vertexValue[idx] = r.getFloat(index.set(i, j));
|
||||
idx = idx * 3;
|
||||
vertexPosition[idx] = x;
|
||||
vertexPosition[idx+1] = y;
|
||||
vertexPosition[idx+2] = z;
|
||||
}
|
||||
}
|
||||
graphic.setVertexPosition(vertexPosition, dim1);
|
||||
graphic.setVertexValue(vertexValue);
|
||||
graphic.setLegendScheme(ls);
|
||||
sgs.add(graphic);
|
||||
}
|
||||
}
|
||||
|
||||
return sgs;
|
||||
}
|
||||
|
||||
@ -9151,6 +9151,36 @@ public class GraphicFactory {
|
||||
float x, y, z;
|
||||
int idx;
|
||||
|
||||
//Z slices
|
||||
dim1 = (int) ya.getSize();
|
||||
dim2 = (int) xa.getSize();
|
||||
for (int s = 0; s < zSlice.size(); s++) {
|
||||
z = zSlice.get(s).floatValue();
|
||||
Array r = ArrayUtil.slice(data, 0, za, z);
|
||||
if (r != null) {
|
||||
Index index = r.getIndex();
|
||||
MeshGraphic graphic = new MeshGraphic();
|
||||
float[] vertexPosition = new float[dim1 * dim2 * 3];
|
||||
float[] vertexValue = new float[dim1 * dim2];
|
||||
for (int i = 0; i < dim1; i++) {
|
||||
y = ya.getFloat(i);
|
||||
for (int j = 0; j < dim2; j++) {
|
||||
x = xa.getFloat(j);
|
||||
idx = i * dim2 +j;
|
||||
vertexValue[idx] = r.getFloat(index.set(i, j));
|
||||
idx = idx * 3;
|
||||
vertexPosition[idx] = x;
|
||||
vertexPosition[idx+1] = y;
|
||||
vertexPosition[idx+2] = z;
|
||||
}
|
||||
}
|
||||
graphic.setVertexPosition(vertexPosition, dim1);
|
||||
graphic.setVertexValue(vertexValue);
|
||||
graphic.setTransferFunction(transferFunction);
|
||||
sgs.add(graphic);
|
||||
}
|
||||
}
|
||||
|
||||
//X slices
|
||||
dim1 = (int) za.getSize();
|
||||
dim2 = (int) ya.getSize();
|
||||
@ -9211,36 +9241,6 @@ public class GraphicFactory {
|
||||
}
|
||||
}
|
||||
|
||||
//Z slices
|
||||
dim1 = (int) ya.getSize();
|
||||
dim2 = (int) xa.getSize();
|
||||
for (int s = 0; s < zSlice.size(); s++) {
|
||||
z = zSlice.get(s).floatValue();
|
||||
Array r = ArrayUtil.slice(data, 0, za, z);
|
||||
if (r != null) {
|
||||
Index index = r.getIndex();
|
||||
MeshGraphic graphic = new MeshGraphic();
|
||||
float[] vertexPosition = new float[dim1 * dim2 * 3];
|
||||
float[] vertexValue = new float[dim1 * dim2];
|
||||
for (int i = 0; i < dim1; i++) {
|
||||
y = ya.getFloat(i);
|
||||
for (int j = 0; j < dim2; j++) {
|
||||
x = xa.getFloat(j);
|
||||
idx = i * dim2 +j;
|
||||
vertexValue[idx] = r.getFloat(index.set(i, j));
|
||||
idx = idx * 3;
|
||||
vertexPosition[idx] = x;
|
||||
vertexPosition[idx+1] = y;
|
||||
vertexPosition[idx+2] = z;
|
||||
}
|
||||
}
|
||||
graphic.setVertexPosition(vertexPosition, dim1);
|
||||
graphic.setVertexValue(vertexValue);
|
||||
graphic.setTransferFunction(transferFunction);
|
||||
sgs.add(graphic);
|
||||
}
|
||||
}
|
||||
|
||||
return sgs;
|
||||
}
|
||||
|
||||
|
||||
@ -16,6 +16,7 @@ package org.meteoinfo.geo.layer;
|
||||
import com.l2fprod.common.beans.BaseBeanInfo;
|
||||
import com.l2fprod.common.beans.ExtendedPropertyDescriptor;
|
||||
import com.l2fprod.common.beans.editor.ComboBoxPropertyEditor;
|
||||
import org.meteoinfo.chart.graphic.GeoGraphicCollection;
|
||||
import org.meteoinfo.common.Extent;
|
||||
import org.meteoinfo.common.util.GlobalUtil;
|
||||
import org.meteoinfo.geometry.graphic.Graphic;
|
||||
@ -516,8 +517,9 @@ public class ImageLayer extends MapLayer {
|
||||
* @param interpolation Image interpolation
|
||||
* @return Graphics
|
||||
*/
|
||||
public GraphicCollection getGraphics(double xShift, String interpolation) {
|
||||
GraphicCollection graphics = new GraphicCollection();
|
||||
public GeoGraphicCollection getGraphics(double xShift, String interpolation) {
|
||||
GeoGraphicCollection graphics = new GeoGraphicCollection();
|
||||
graphics.setProjInfo(this._projInfo);
|
||||
ImageShape ishape = new ImageShape();
|
||||
ishape.setImage(this.getImage());
|
||||
Extent extent = this.getExtent();
|
||||
|
||||
@ -1,32 +1,32 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<MeteoInfo File="milconfig.xml" Type="configurefile">
|
||||
<Path OpenPath="D:\Working\MIScript\Jython\mis\io\radar">
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\map"/>
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\map\projection"/>
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types"/>
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types\3d"/>
|
||||
<Path OpenPath="D:\Working\MIScript\Jython\mis\io">
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\meteo"/>
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\meteo\interpolation"/>
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis"/>
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\common_math"/>
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\common_math\interpolate"/>
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl"/>
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl\surf"/>
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl\slice"/>
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\io"/>
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\io\radar\cinrad"/>
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\io\radar"/>
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis"/>
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\chart"/>
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types"/>
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types\contour"/>
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\chart\legend"/>
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl\slice"/>
|
||||
<RecentFolder Folder="D:\Working\MIScript\Jython\mis\io"/>
|
||||
</Path>
|
||||
<File>
|
||||
<OpenedFiles>
|
||||
<OpenedFile File="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl\slice\slice_2d.py"/>
|
||||
<OpenedFile File="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl\slice\plot_cuace_3d_slice.py"/>
|
||||
<OpenedFile File="D:\Working\MIScript\Jython\mis\io\radar\cinrad\test_read_radar_mosic.py"/>
|
||||
<OpenedFile File="D:\Working\MIScript\Jython\mis\io\savegrid_micaps4.py"/>
|
||||
</OpenedFiles>
|
||||
<RecentFiles>
|
||||
<RecentFile File="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl\slice\slice_2d.py"/>
|
||||
<RecentFile File="D:\Working\MIScript\Jython\mis\plot_types\3d\jogl\slice\plot_cuace_3d_slice.py"/>
|
||||
<RecentFile File="D:\Working\MIScript\Jython\mis\io\radar\cinrad\test_read_radar_mosic.py"/>
|
||||
<RecentFile File="D:\Working\MIScript\Jython\mis\io\savegrid_micaps4.py"/>
|
||||
</RecentFiles>
|
||||
</File>
|
||||
<Font>
|
||||
@ -34,5 +34,5 @@
|
||||
</Font>
|
||||
<LookFeel DockWindowDecorated="true" LafDecorated="true" Name="FlatDarkLaf"/>
|
||||
<Figure DoubleBuffering="true"/>
|
||||
<Startup MainFormLocation="-7,-7" MainFormSize="1293,765"/>
|
||||
<Startup MainFormLocation="-7,0" MainFormSize="1383,860"/>
|
||||
</MeteoInfo>
|
||||
|
||||
@ -168,4 +168,4 @@ class BoundaryNorm(Normalize):
|
||||
boundaries = np.array(boundaries)
|
||||
|
||||
extend = ExtendType.valueOf(extend.upper())
|
||||
self._norm = JBoundaryNorm(boundaries._array, ncolors, extend)
|
||||
self._norm = JBoundaryNorm(boundaries._array, extend)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user