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

View differences:

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