Revision 767 2.1/trunk/org.gvsig.view3d/org.gvsig.view3d.vector/org.gvsig.view3d.vector.lib/org.gvsig.view3d.vector.lib.impl/src/main/java/org/gvsig/view3d/vector/lib/impl/vector/DefaultVectorPolygonRenderableLayer.java
DefaultVectorPolygonRenderableLayer.java | ||
---|---|---|
4 | 4 |
import java.util.ArrayList; |
5 | 5 |
import java.util.List; |
6 | 6 |
|
7 |
import org.cresques.cts.ICoordTrans; |
|
8 |
|
|
7 | 9 |
import org.gvsig.fmap.dal.feature.Feature; |
8 | 10 |
import org.gvsig.fmap.dal.feature.FeatureStore; |
9 | 11 |
import org.gvsig.fmap.geom.Geometry; |
... | ... | |
12 | 14 |
import org.gvsig.fmap.geom.primitive.Point; |
13 | 15 |
import org.gvsig.fmap.geom.primitive.Polygon; |
14 | 16 |
import org.gvsig.fmap.geom.primitive.Ring; |
17 |
import org.gvsig.fmap.mapcontext.layers.FLayer; |
|
15 | 18 |
import org.gvsig.fmap.mapcontext.rendering.legend.IVectorLegend; |
16 | 19 |
import org.gvsig.fmap.mapcontext.rendering.symbols.ISymbol; |
17 | 20 |
import org.gvsig.symbology.fmap.mapcontext.rendering.symbol.fill.IFillSymbol; |
... | ... | |
36 | 39 |
} |
37 | 40 |
|
38 | 41 |
@Override |
39 |
protected List<Renderable> getRenderable(Feature feature) { |
|
42 |
protected List<Renderable> getRenderables(Feature feature) {
|
|
40 | 43 |
Geometry geom = feature.getDefaultGeometry(); |
41 | 44 |
List<Renderable> renderables = new ArrayList<>(); |
42 | 45 |
if (geom.getGeometryType().isTypeOf(TYPES.MULTIPOLYGON)) { |
... | ... | |
71 | 74 |
h = parameters.getConstantHeight(); |
72 | 75 |
} |
73 | 76 |
} |
74 |
|
|
75 |
List<Position> verticesList = new ArrayList<>(polygon.getNumVertices()); |
|
76 |
for (int i = 0; i < polygon.getNumVertices(); i++) { |
|
77 |
Point vertex = polygon.getVertex(i); |
|
78 |
if (hasZ) { |
|
79 |
double z = vertex.getCoordinateAt(2); |
|
80 |
verticesList.add(Position.fromDegrees(vertex.getY(), vertex.getX(), z + h)); |
|
81 |
} else { |
|
82 |
verticesList.add(Position.fromDegrees(vertex.getY(), vertex.getX(), h)); |
|
83 |
} |
|
84 |
} |
|
77 |
|
|
78 |
ICoordTrans coordTrans = getCoordTrans(this.parameters.getLayer().getProjection()); |
|
79 |
List<Position> verticesList = getVertices(polygon, h, hasZ, coordTrans); |
|
85 | 80 |
renderable.setOuterBoundary(verticesList); |
81 |
|
|
86 | 82 |
int numInteriorRings = polygon.getNumInteriorRings(); |
87 | 83 |
for (int i = 0; i < numInteriorRings; i++) { |
88 | 84 |
renderable.addInnerBoundary(getInteriorRing(polygon.getInteriorRing(i), hasZ, h)); |
Also available in: Unified diff