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/AbstractRenderableLayer.java

View differences:

AbstractRenderableLayer.java
1 1
package org.gvsig.view3d.vector.lib.impl;
2 2

  
3
import java.util.ArrayList;
3 4
import java.util.List;
4 5
import java.util.concurrent.ExecutorService;
5 6
import java.util.concurrent.Executors;
6 7

  
8
import org.cresques.cts.ICoordTrans;
9
import org.cresques.cts.IProjection;
7 10
import org.slf4j.Logger;
8 11
import org.slf4j.LoggerFactory;
9 12

  
13
import org.gvsig.fmap.crs.CRSFactory;
10 14
import org.gvsig.fmap.dal.exception.DataException;
11 15
import org.gvsig.fmap.dal.feature.Feature;
12 16
import org.gvsig.fmap.dal.feature.FeatureQuery;
13 17
import org.gvsig.fmap.dal.feature.FeatureSet;
14 18
import org.gvsig.fmap.dal.feature.FeatureStore;
15 19
import org.gvsig.fmap.dal.feature.FeatureType;
20
import org.gvsig.fmap.geom.primitive.OrientablePrimitive;
21
import org.gvsig.fmap.geom.primitive.Point;
16 22
import org.gvsig.tools.dispose.DisposableIterator;
17 23
import org.gvsig.view3d.vector.lib.api.VectorElevationMode;
18 24
import org.gvsig.view3d.vector.lib.api.VectorLoaderParameters;
19 25

  
20 26
import gov.nasa.worldwind.WorldWind;
27
import gov.nasa.worldwind.geom.Position;
21 28
import gov.nasa.worldwind.layers.RenderableLayer;
22 29
import gov.nasa.worldwind.render.Renderable;
23 30

  
......
58 65
                    it = featureSet.fastIterator();
59 66
                    while (it.hasNext()) {
60 67
                        Feature feature = (Feature) it.next();
61
                        List<Renderable> renderables = getRenderable(feature);
68
                        List<Renderable> renderables = getRenderables(feature);
62 69
                        for (Renderable renderable : renderables) {
63 70
                            addRenderable(renderable);
64 71
                        }
......
100 107
        featureQuery.addAttributeName(geomAtt);
101 108
        return featureQuery;
102 109
    }
110
    
111
    protected List<Position> getVertices(OrientablePrimitive primitive, double h, boolean hasZ, ICoordTrans coordTrans) {
112
        List<Position> verticesList = new ArrayList<>(primitive.getNumVertices());
113
        for (int i = 0; i < primitive.getNumVertices(); i++) {
114
            Point vertex = primitive.getVertex(i);
115
            
116
            // Reproject point if there is a coordinate transformation
117
            if (coordTrans != null) {
118
                vertex.reProject(coordTrans);
119
            }
120
            
121
            if (hasZ) {
122
                double z = vertex.getCoordinateAt(2);
123
                verticesList.add(Position.fromDegrees(vertex.getY(), vertex.getX(), z + h));
124
            } else {
125
                verticesList.add(Position.fromDegrees(vertex.getY(), vertex.getX(), h));
126
            }
127
        }
128
        return verticesList;
129
    }
130
    
131
    protected ICoordTrans getCoordTrans(IProjection origProj) {
132
        IProjection destProj = CRSFactory.getCRS("EPSG:4326");
133
        return origProj.getCT(destProj);
134
    }
103 135

  
104
    protected abstract List<Renderable> getRenderable(Feature feature);
136
    protected abstract List<Renderable> getRenderables(Feature feature);
105 137
}

Also available in: Unified diff