Revision 257

View differences:

2.0/trunk/org.gvsig.gvsig3d.app/org.gvsig.gvsig3d.app.extension/src/main/java/org/gvsig/gvsig3d/app/extension/DefaultView3DDocument.java
88 88

  
89 89
		ProjectPreferences preferences = (ProjectPreferences) ApplicationLocator
90 90
				.getManager().getPreferences("project");
91
		MapContext3D viewMapContext;
92
		ViewPort vp = new ViewPort();
93
		try {
94
			viewMapContext = Gvsig3DLocator.getManager()
95
					.createDefaultMapContext3DInstance(vp);
96
			this.setMapContext(viewMapContext);
97
		} catch (LocatorException e) {
98
			// TODO Auto-generated catch block
99
			e.printStackTrace();
100
		}
101 91

  
102 92
	}
103 93

  
2.0/trunk/org.gvsig.gvsig3d.app/org.gvsig.gvsig3d.app.extension/src/main/java/org/gvsig/gvsig3d/app/extension/DefaultView3DPanel.java
48 48
import org.gvsig.fmap.crs.CRSFactory;
49 49
import org.gvsig.fmap.geom.primitive.Envelope;
50 50
import org.gvsig.fmap.geom.primitive.impl.Envelope2D;
51
import org.gvsig.fmap.mapcontext.MapContext;
52 51
import org.gvsig.fmap.mapcontext.ViewPort;
53 52
import org.gvsig.fmap.mapcontext.events.ColorEvent;
54 53
import org.gvsig.fmap.mapcontext.events.ExtentEvent;
55 54
import org.gvsig.fmap.mapcontext.events.ProjectionEvent;
56 55
import org.gvsig.fmap.mapcontext.events.listeners.ViewPortListener;
57
import org.gvsig.fmap.mapcontrol.MapControl;
58 56
import org.gvsig.fmap.mapcontrol.MapControl.MapToolListener;
59 57
import org.gvsig.fmap.mapcontrol.MapControlLocator;
60 58
import org.gvsig.fmap.mapcontrol.MapControlManager;
......
63 61
import org.gvsig.gvsig3d.Gvsig3DException;
64 62
import org.gvsig.gvsig3d.Gvsig3DLocator;
65 63
import org.gvsig.gvsig3d.Gvsig3DManager;
66
import org.gvsig.gvsig3d.app.listener.PointSelectListener3D;
67 64
import org.gvsig.gvsig3d.app.resources.ResourcesFactory;
68 65
import org.gvsig.gvsig3d.map3d.MapContext3D;
69 66
import org.gvsig.gvsig3d.map3d.ViewPort3D;
......
170 167
		_canvas3d.addMouseMotionListener(mapToolListener);
171 168
		_canvas3d.addMouseWheelListener(mapToolListener);
172 169
		//
173
		m_MapControl.setMapContext((MapContext) mContext3D);
174
		m_TOC.setMapContext((MapContext) mContext3D);
170
		m_MapControl.setMapContext(mContext3D);
171
		m_TOC.setMapContext(mContext3D);
175 172
		m_MapControl.setBackground(new Color(255, 255, 255));
176 173
		if (modelo.getMapOverViewContext() != null) {
177 174
			m_MapLoc.setModel(modelo.getMapOverViewContext());
2.0/trunk/org.gvsig.gvsig3d.app/org.gvsig.gvsig3d.app.extension/src/main/java/org/gvsig/gvsig3d/app/extension/View3DManager.java
21 21
 */
22 22
package org.gvsig.gvsig3d.app.extension;
23 23

  
24
import java.text.DateFormat;
25
import java.util.Date;
26

  
24 27
import javax.swing.ImageIcon;
25 28

  
26 29
import org.gvsig.andami.PluginServices;
......
35 38
import org.gvsig.app.project.documents.gui.WindowLayout;
36 39
import org.gvsig.app.project.documents.view.DefaultViewDocument;
37 40
import org.gvsig.app.project.documents.view.gui.ViewProperties;
41
import org.gvsig.fmap.mapcontext.MapContext;
38 42
import org.gvsig.fmap.mapcontext.ViewPort;
39 43
import org.gvsig.fmap.mapcontext.layers.FLayers;
44
import org.gvsig.gvsig3d.Gvsig3DException;
40 45
import org.gvsig.gvsig3d.Gvsig3DLocator;
41 46
import org.gvsig.gvsig3d.Gvsig3DManager;
47
import org.gvsig.gvsig3d.map3d.layers.FLayers3D;
42 48
import org.gvsig.osgvp.exceptions.node.NodeException;
43 49
import org.gvsig.osgvp.terrain.Extent;
44 50
import org.gvsig.osgvp.terrain.JavaDataDriver;
......
64 70
	public static String TYPENAME = "project.document.view3d";
65 71
	private DynStruct persistenceDefinition;
66 72

  
67
	private IViewerContainer _canvas3d = null;
68
	private TerrainViewer _terrainViewer = null;
69 73

  
70
	private Terrain _terrain = null;
71
	private JavaDataDriver _terrainDataManager = null;
72
	private LayerManager _terrainLayerManager = null;
73
	private int _terrainType = Terrain.CoordinateSystemType.PROJECTED; // spheric
74

  
75
	// or
76
	// plane
77

  
78
	// private Terrain _terrain = null;
79
	// //private ProjectCamera _projectCamera = null;
80
	// private JavaDataDriver _terrainDataManager = null;
81
	// private LayerManager _terrainLayerManager = null;
82
	// private int _terrainType = Terrain.CoordinateSystemType.PROJECTED; //
83
	// spheric
84
	// // or
85
	// // plane
86

  
87 74
	public View3DManager() {
88 75
		// Do nothing
89 76
	}
......
110 97

  
111 98
	public AbstractDocument createDocument() {
112 99

  
113
		String viewName = "";
100
		String viewName = "Vista3D";
114 101
		String aux = PluginServices.getText(this, "untitled");
102
		Gvsig3DManager manager = Gvsig3DLocator.getManager();
115 103
//		int numViews = ((Integer) AbstractDocument.NUMS.get(_registerName))
116 104
//				.intValue();
117 105
//
......
121 109
		
122 110
		DefaultView3DDocument viewDocument = new DefaultView3DDocument(this);
123 111
		
124
//		if(viewDocument != null)
125
//			viewDocument.setProject(project);
126
//		
112
		try {
113
			ViewPort vp = manager.createDefaultViewPort3DInstance();
114
			FLayers3D layers = manager.createDefaultFLayers3DInstance(vp);
115
			viewDocument.setMapContext(layers.getMapContext());
116
			viewDocument.setMapOverViewContext(new MapContext(null));
117
			viewDocument.getMapOverViewContext().setProjection(
118
					viewDocument.getMapContext().getProjection());
119
			viewDocument.setName(viewName);
120
			viewDocument.setCreationDate(DateFormat.getInstance().format(new Date()));
121
			
122
		} catch (Gvsig3DException e) {
123
			// TODO Auto-generated catch block
124
			e.printStackTrace();
125
		}
126
		
127 127
		return viewDocument;
128 128
	}
129 129

  
......
132 132
		DefaultView3DPanel view = new DefaultView3DPanel();
133 133
		DefaultView3DDocument viewDoc = (DefaultView3DDocument) doc;
134 134

  
135
		Gvsig3DManager manager = Gvsig3DLocator.getManager();
136

  
137 135
		ViewPort vp = new ViewPort();
138
		FLayers layers = manager.createDefaultFLayers3DInstance(vp);
136
		
139 137

  
140
		viewDoc.setMapContext(layers.getMapContext());
141
		viewDoc.setMapOverViewContext(manager
142
				.createDefaultMapContext3DInstance());
143

  
144 138
		IViewerContainer canvas3d = viewDoc.getOrCreateCanvas3D();
145 139
		view.setCanvas3d(canvas3d);
146

  
147 140
		view.setTerrain(viewDoc.getTerrain());
148 141
		view.setDataManager(viewDoc.getTerrainDataManager());
149 142
		view.setLayerManager(viewDoc.getTerrainLayerManager());
2.0/trunk/org.gvsig.gvsig3d/org.gvsig.gvsig3d.lib/org.gvsig.gvsig3d.lib.api/src/main/java/org/gvsig/gvsig3d/Gvsig3DManager.java
23 23

  
24 24
import org.cresques.cts.IProjection;
25 25
import org.gvsig.fmap.mapcontext.ViewPort;
26
import org.gvsig.fmap.mapcontext.layers.FLayers;
26 27
import org.gvsig.gvsig3d.map3d.GraphicLayer3D;
27 28
import org.gvsig.gvsig3d.map3d.Layer3DProps;
28 29
import org.gvsig.gvsig3d.map3d.MapContext3D;
......
52 53
	public MapContext3D createDefaultMapContext3DInstance();
53 54

  
54 55
	public MapContext3D createDefaultMapContext3DInstance(ViewPort vp);
56
	
57
	public MapContext3D createDefaultMapContext3DInstance(FLayers fl, ViewPort vp);
55 58

  
56 59
	public void registerDefaultMapControl3D(Class mapControl3DClass);
57 60

  
2.0/trunk/org.gvsig.gvsig3d/org.gvsig.gvsig3d.lib/org.gvsig.gvsig3d.lib.api/src/main/java/org/gvsig/gvsig3d/map3d/ViewPort3D.java
21 21
 */
22 22
package org.gvsig.gvsig3d.map3d;
23 23

  
24
import java.awt.Color;
24 25
import java.awt.geom.Point2D;
25 26

  
27
import org.cresques.cts.IProjection;
26 28
import org.gvsig.fmap.geom.primitive.Envelope;
29
import org.gvsig.fmap.mapcontext.ViewPort;
27 30
import org.gvsig.osgvp.terrain.Terrain;
28 31
import org.gvsig.osgvp.viewer.IViewerContainer;
29 32

  
......
32 35
 * @version $Id$
33 36
 *
34 37
 */
35
public interface ViewPort3D {
38
public abstract class ViewPort3D extends ViewPort {
39
	
40
	
41
    public ViewPort3D(){
42
    	
43
    	super();
44
    }
45
    
46
	public ViewPort3D(IProjection proj) {
47
		super(proj);
48
	
49
	}
36 50

  
37
    public Terrain getTerrain();
51
    public abstract Terrain getTerrain();
38 52

  
39
    public void setTerrain(Terrain terrain);
53
    public abstract void setTerrain(Terrain terrain);
40 54

  
41
    public void setViewer(IViewerContainer canvas);
55
    public abstract void setViewer(IViewerContainer canvas);
42 56

  
43
    public void setDirty(boolean isDirty);
57
    public abstract void setDirty(boolean isDirty);
44 58

  
45
    public boolean getDirty();
59
    public abstract boolean getDirty();
46 60

  
47
    public Envelope getAdjustedEnvelope();
48

  
49
    public void setEnvelope(Envelope r);
50 61
    
51
    public Envelope getEnvelope();
52 62

  
53
    public Point2D fromMapPoint(double x, double y);
54

  
55
    public Point2D toMapPoint(Point2D pScreen);
56

  
57
    public Point2D toMapPoint(int x, int y);
58

  
59
    public double toMapDistance(int d);
60

  
61
    public void refreshExtent();
62

  
63 63
}
2.0/trunk/org.gvsig.gvsig3d/org.gvsig.gvsig3d.lib/org.gvsig.gvsig3d.lib.api/src/main/java/org/gvsig/gvsig3d/map3d/MapContext3D.java
50 50
public abstract class MapContext3D extends MapContext implements DataLoader,
51 51
LayerListener, LegendListener, SelectionListener {
52 52
	
53
	public MapContext3D(){}
53 54
	
54
	public MapContext3D(){};
55
    public MapContext3D(ViewPort vp) {
56

  
57
    	super(vp);
55
	
56
	public MapContext3D(ViewPort vp) {
57
		super(vp);
58 58
	}
59
	
60
	public MapContext3D(FLayers fLayers, ViewPort vp){
61
		
62
		super(fLayers, vp);
63
		
64
	}
59 65

  
60 66
	public abstract void setTerrain(Terrain terrain);
61 67

  
2.0/trunk/org.gvsig.gvsig3d/org.gvsig.gvsig3d.lib/org.gvsig.gvsig3d.lib.impl/src/main/java/org/gvsig/gvsig3d/impl/map3d/Viewport3DImpl.java
22 22
package org.gvsig.gvsig3d.impl.map3d;
23 23

  
24 24
import java.awt.Color;
25
import java.awt.geom.Point2D;
25 26
import java.awt.geom.Rectangle2D;
26 27

  
27 28
import org.cresques.cts.IProjection;
29
import org.gvsig.fmap.geom.GeometryLocator;
30
import org.gvsig.fmap.geom.GeometryManager;
31
import org.gvsig.fmap.geom.Geometry.SUBTYPES;
32
import org.gvsig.fmap.geom.exception.CreateEnvelopeException;
33
import org.gvsig.fmap.geom.primitive.Envelope;
28 34
import org.gvsig.fmap.mapcontext.ViewPort;
29 35
import org.gvsig.gvsig3d.map3d.ViewPort3D;
36
import org.gvsig.osgvp.core.osg.Matrix;
37
import org.gvsig.osgvp.core.osg.Vec3;
30 38
import org.gvsig.osgvp.terrain.Terrain;
31 39
import org.gvsig.osgvp.viewer.IViewerContainer;
32 40

  
......
36 44
 * @version $Id$
37 45
 *
38 46
 */
39
public class Viewport3DImpl extends ViewPort implements ViewPort3D {
40

  
41
    private Terrain _terrain;
47
public class Viewport3DImpl extends ViewPort3D {
48
	
49
	private Terrain _terrain;
42 50
    private IViewerContainer _canvas3d;
43 51
    private boolean _dirty = false;
52
    
53
    private static final GeometryManager geomManager =
54
        GeometryLocator.getGeometryManager();
44 55

  
45 56
    public Viewport3DImpl(){
46 57
    	
2.0/trunk/org.gvsig.gvsig3d/org.gvsig.gvsig3d.lib/org.gvsig.gvsig3d.lib.impl/src/main/java/org/gvsig/gvsig3d/impl/map3d/MapContext3DImpl.java
22 22
package org.gvsig.gvsig3d.impl.map3d;
23 23

  
24 24
import java.awt.Graphics2D;
25
import java.awt.Point;
25 26
import java.awt.geom.AffineTransform;
26 27
import java.awt.geom.Rectangle2D;
27 28
import java.awt.image.BufferedImage;
......
33 34
import javax.print.attribute.PrintRequestAttributeSet;
34 35

  
35 36
import org.cresques.cts.IProjection;
36
import org.gvsig.fmap.mapcontext.MapContext;
37 37
import org.gvsig.fmap.mapcontext.ViewPort;
38 38
import org.gvsig.fmap.mapcontext.layers.FLayer;
39
import org.gvsig.fmap.mapcontext.layers.FLayers;
39 40
import org.gvsig.fmap.mapcontext.layers.LayerEvent;
41
import org.gvsig.fmap.mapcontext.layers.LayerListener;
40 42
import org.gvsig.fmap.mapcontext.layers.SelectionEvent;
41 43
import org.gvsig.fmap.mapcontext.layers.SingleLayerIterator;
44
import org.gvsig.fmap.mapcontext.layers.operations.Classifiable;
45
import org.gvsig.fmap.mapcontext.layers.vectorial.FLyrVect;
42 46
import org.gvsig.fmap.mapcontext.rendering.legend.events.LegendChangedEvent;
43 47
import org.gvsig.gvsig3d.map3d.Layer3DProps;
44 48
import org.gvsig.gvsig3d.map3d.MapContext3D;
45
import org.gvsig.gvsig3d.map3d.ViewPort3D;
46 49
import org.gvsig.gvsig3d.map3d.layers.FLayers3D;
47 50
import org.gvsig.osgvp.core.osg.Image;
48 51
import org.gvsig.osgvp.core.osg.Matrix;
......
57 60
import org.gvsig.osgvp.terrain.LayerManager;
58 61
import org.gvsig.osgvp.terrain.RequestDataEvent;
59 62
import org.gvsig.osgvp.terrain.Terrain;
63
import org.gvsig.osgvp.terrain.Terrain.CoordinateSystemType;
60 64
import org.gvsig.osgvp.terrain.TerrainViewer;
61 65
import org.gvsig.osgvp.terrain.UpdateDataEvent;
62 66
import org.gvsig.osgvp.viewer.Camera;
......
92 96

  
93 97
	private boolean visibilityChange = false;
94 98

  
95
	public MapContext3DImpl() {
96
		super();
97
	}
99
	
100
	public MapContext3DImpl(){}
98 101

  
99 102
	public MapContext3DImpl(ViewPort vp) {
100 103
		super(vp);
101 104
	}
105
	
106
	public MapContext3DImpl(FLayers fLayers, ViewPort vp){
107
		
108
		super(fLayers,vp);
109
		
110
	}
102 111

  
103 112
	public void draw(BufferedImage image, Graphics2D g, Cancellable cancel,
104 113
			double scale) {
......
246 255
		while (lyrIterator.hasNext()) {
247 256
			FLayer layer = lyrIterator.next();
248 257
			Layer3DProps props = getLayer3DProps(layer);
249
			// props.setTerrainOrder(props.getTocOrder());
250 258
			addLayerToTerrain(layer, false);
251 259
		}
252 260

  
......
561 569
	public void layerAdded(FLayers3D parent, FLayer layer) {
562 570
		
563 571
		System.out.println("Añadida capa. Evento Capturado");
564
		// // to add group layers to 3D, just add recursively child data layers
565
		// if (layer instanceof FLayers) {
566
		// FLayers group = (FLayers) layer;
567
		// for (int iChild = 0; iChild < group.getLayersCount(); iChild++) {
568
		// layerAdded((FLayers3D) group, group.getLayer(iChild));
569
		// }
570
		// getLayer3DProps(layer).setHooked(true);
571
		// return;
572
		// }
573
		//
574
		// if (layer instanceof Classifiable) {
575
		// Classifiable legendLyr = (Classifiable) layer;
576
		// // legendLyr.addLegendListener((LegendListener) this);
577
		// this.addLayerListener(this);
578
		// }
579
		// layer.addLayerListener((LayerListener) this);
580
		//
581
		// // listener to manage the selection for the layers
582
		// if (layer.getClass().equals(FLyrVect.class)) {
583
		// FLyrVect lyr = (FLyrVect) layer;
584
		// refreshLayerVectorsVisibility(lyr);
585
		// try {
586
		// SelectableDataSource recordSet = lyr.getRecordset();
587
		// if (recordSet != null) {
588
		// SelectionSupport selectionSupport = recordSet
589
		// .getSelectionSupport();
590
		// selectionSupport.addSelectionListener(this);
591
		// }
592
		// } catch (ReadDriverException e) {
593
		// // TODO Auto-generated catch block
594
		// e.printStackTrace();
595
		// }
596
		// }
597
		//
598
		// if (!_bLoading)
599
		// addLayerToTerrain(layer, true);
600
		//
601
		// // Only do this the first time to add layer
602
		// if (_bEmptyView && !_bLoading) {
603
		// if (layers.getLayersCount() > 0) {
604
		// try {
605
		// zoomToExtent(layer.getFullExtent());
606
		// } catch (ExpansionFileReadException e) {
607
		// e.printStackTrace();
608
		// } catch (ReadDriverException e) {
609
		// e.printStackTrace();
610
		// }
611
		// _bEmptyView = false;
612
		// }
613
		// }
614
		//
615
		// //PrintDebugLayers();
572
//		// to add group layers to 3D, just add recursively child data layers
573
//		if (layer instanceof FLayers) {
574
//			FLayers group = (FLayers) layer;
575
//			for (int iChild = 0; iChild < group.getLayersCount(); iChild++) {
576
//				layerAdded((FLayers3D) group, group.getLayer(iChild));
577
//			}
578
//			getLayer3DProps(layer).setHooked(true);
579
//			return;
580
//		}
581
//
582
//		if (layer instanceof Classifiable) {
583
//			Classifiable legendLyr = (Classifiable) layer;
584
//			// legendLyr.addLegendListener((LegendListener) this);
585
//			this.addLayerListener(this);
586
//		}
587
//		layer.addLayerListener((LayerListener) this);
588
//
589
//		// listener to manage the selection for the layers
590
//		if (layer.getClass().equals(FLyrVect.class)) {
591
//			FLyrVect lyr = (FLyrVect) layer;
592
//			refreshLayerVectorsVisibility(lyr);
593
//			try {
594
//				SelectableDataSource recordSet = lyr.getRecordset();
595
//				if (recordSet != null) {
596
//					SelectionSupport selectionSupport = recordSet
597
//							.getSelectionSupport();
598
//					selectionSupport.addSelectionListener(this);
599
//				}
600
//			} catch (ReadDriverException e) {
601
//				// TODO Auto-generated catch block
602
//				e.printStackTrace();
603
//			}
604
//		}
605
//
606
//		if (!_bLoading)
607
//			addLayerToTerrain(layer, true);
608
//
609
//		// Only do this the first time to add layer
610
//		if (_bEmptyView && !_bLoading) {
611
//			if (layers.getLayersCount() > 0) {
612
//				try {
613
//					zoomToExtent(layer.getFullExtent());
614
//				} catch (ExpansionFileReadException e) {
615
//					e.printStackTrace();
616
//				} catch (ReadDriverException e) {
617
//					e.printStackTrace();
618
//				}
619
//				_bEmptyView = false;
620
//			}
621
//		}
622
//
623
//		// PrintDebugLayers();
616 624

  
617 625
	}
618 626

  
......
756 764
	public UpdateDataEvent loadData(RequestDataEvent rde) {
757 765
		
758 766
		System.out.println("Load data");
759
		// if (_terrainLayerMap.size() == 0)
760
		// return null;
761
		// if (rde == null)
762
		// return null;
763
		// if (rde.getExtent() == null)
764
		// return null;
765
		// if (rde.getLayer() == null)
766
		// return null;
767
		// if (rde.getLayerManager() == null)
768
		// return null;
769
		//
770
		// UpdateDataEvent ude = new UpdateDataEvent();
771
		// ude.copyDataFromRequest(rde);
772
		//
773
		//
774
		// String layerID = rde.getLayer().getLayerID();
775
		// FLayer layer = (FLayer) _terrainLayerMap.get(layerID);
776
		// if (layer == null)
777
		// return null;
778
		// if (!layer.isVisible())
779
		// return null;
780
		//
781
		// Layer3DProps props3D = getLayer3DProps(layer);
782
		//
783
		// // get/create cache service
784
		// FLayerCacheService cacheService = (FLayerCacheService) props3D
785
		// .getCacheService();
786
		// if (cacheService == null) {
787
		//
788
		// cacheService = new FLayerCacheService(_terrain, props3D
789
		// .getCacheName(), layer, _viewProjection);
790
		// cacheService.setCacheRootDir(Layer3DProps.m_cacheDir);
791
		// props3D.setCacheService(cacheService);
792
		//
793
		// }
794
		//
795
		//
796
		//
797
		// int dataType = props3D.getType();
798
		// Point tileIndices = new Point(rde.getTileX(), rde.getTileY());
799
		// TileNum tileNum = new TileNum(rde.getTileLevel(), tileIndices);
800
		//
801
		// String tileFileName = "";
802
		//
803
		// double minX, minY, width, height;
804
		//
805
		// if (_terrain.getCoordinateSystemType() ==
806
		// CoordinateSystemType.PROJECTED) {
807
		// minX = rde.getExtent().xMin();
808
		// minY = rde.getExtent().yMin();
809
		// width = rde.getExtent().xMax() - rde.getExtent().xMin();
810
		// height = rde.getExtent().yMax() - rde.getExtent().yMin();
811
		// } else {
812
		// minX = Math.toDegrees(rde.getExtent().xMin());
813
		// minY = Math.toDegrees(rde.getExtent().yMin());
814
		// width = Math.toDegrees(rde.getExtent().xMax()
815
		// - rde.getExtent().xMin());
816
		// height = Math.toDegrees(rde.getExtent().yMax()
817
		// - rde.getExtent().yMin());
818
		// }
819
		// boolean failData = false;
820
		//
821
		// Rectangle2D extent = new Rectangle2D.Double(minX, minY, width,
822
		// height);
823
		// if (cacheService.intersectsLayer(extent)) { // extent test
824
		// try {
825
		// tileFileName = cacheService.getTileAsFName(tileNum, extent);
826
		// if (tileFileName == null)
827
		// failData = true;
828
		// } catch (Exception e) {
829
		// failData = true;
830
		// NotificationManager.addInfo("Problem reading tile:" + tileNum,
831
		// e);
832
		// e.printStackTrace();
833
		// }
834
		//
835
		// if (failData) {
836
		// return null;
837
		// // ude.setFailData();
838
		// } else {
839
		// switch (dataType) {
840
		// case Layer3DProps.layer3DImage:
841
		// ude.setRasterData(tileFileName, "gdal");
842
		// break;
843
		// case Layer3DProps.layer3DElevation:
844
		// ude.setHeightfieldData(tileFileName, "gdal");
845
		// break;
846
		// case Layer3DProps.layer3DVectorMR:
847
		// ude.setVectorData(tileFileName, "osg");
848
		// break;
849
		// }
850
		// }
851
		// }
852
		//
853
		// return ude;
854
		return null;
767
		if (_terrainLayerMap.size() == 0)
768
			return null;
769
		if (rde == null)
770
			return null;
771
		if (rde.getExtent() == null)
772
			return null;
773
		if (rde.getLayer() == null)
774
			return null;
775
		if (rde.getLayerManager() == null)
776
			return null;
777

  
778
		UpdateDataEvent ude = new UpdateDataEvent();
779
		ude.copyDataFromRequest(rde);
780

  
781
		String layerID = rde.getLayer().getLayerID();
782
		FLayer layer = (FLayer) _terrainLayerMap.get(layerID);
783
		if (layer == null)
784
			return null;
785
		if (!layer.isVisible())
786
			return null;
787

  
788
		Layer3DProps props3D = getLayer3DProps(layer);
789

  
790
		// get/create cache service
791
//		FLayerCacheService cacheService = (FLayerCacheService) props3D
792
//				.getCacheService();
793
//		if (cacheService == null) {
794
//
795
//			cacheService = new FLayerCacheService(_terrain,
796
//					props3D.getCacheName(), layer, _viewProjection);
797
//			cacheService.setCacheRootDir(Layer3DProps.m_cacheDir);
798
//			props3D.setCacheService(cacheService);
799
//
800
//		}
801

  
802
		int dataType = props3D.getType();
803
		Point tileIndices = new Point(rde.getTileX(), rde.getTileY());
804
		//TileNum tileNum = new TileNum(rde.getTileLevel(), tileIndices);
805

  
806
		String tileFileName = "";
807

  
808
		double minX, minY, width, height;
809

  
810
		if (_terrain.getCoordinateSystemType() == CoordinateSystemType.PROJECTED) {
811
			minX = rde.getExtent().xMin();
812
			minY = rde.getExtent().yMin();
813
			width = rde.getExtent().xMax() - rde.getExtent().xMin();
814
			height = rde.getExtent().yMax() - rde.getExtent().yMin();
815
		} else {
816
			minX = Math.toDegrees(rde.getExtent().xMin());
817
			minY = Math.toDegrees(rde.getExtent().yMin());
818
			width = Math.toDegrees(rde.getExtent().xMax()
819
					- rde.getExtent().xMin());
820
			height = Math.toDegrees(rde.getExtent().yMax()
821
					- rde.getExtent().yMin());
822
		}
823
		boolean failData = false;
824

  
825
		Rectangle2D extent = new Rectangle2D.Double(minX, minY, width, height);
826
//		if (cacheService.intersectsLayer(extent)) { // extent test
827
//			try {
828
//				tileFileName = cacheService.getTileAsFName(tileNum, extent);
829
//				if (tileFileName == null)
830
//					failData = true;
831
//			} catch (Exception e) {
832
//				failData = true;
833
//				NotificationManager.addInfo("Problem reading tile:" + tileNum,
834
//						e);
835
//				e.printStackTrace();
836
//			}
837
//
838
//			if (failData) {
839
//				return null;
840
//				// ude.setFailData();
841
//			} else {
842
//				switch (dataType) {
843
//				case Layer3DProps.layer3DImage:
844
//					ude.setRasterData(tileFileName, "gdal");
845
//					break;
846
//				case Layer3DProps.layer3DElevation:
847
//					ude.setHeightfieldData(tileFileName, "gdal");
848
//					break;
849
//				case Layer3DProps.layer3DVectorMR:
850
//					ude.setVectorData(tileFileName, "osg");
851
//					break;
852
//				}
853
//			}
854
//		}
855

  
856
		return ude;
857
		
855 858
	}
856 859

  
857 860
	public void nameChanged(LayerEvent e) {
2.0/trunk/org.gvsig.gvsig3d/org.gvsig.gvsig3d.lib/org.gvsig.gvsig3d.lib.impl/src/main/java/org/gvsig/gvsig3d/impl/DefaultGvsig3DManager.java
23 23

  
24 24
import org.cresques.cts.IProjection;
25 25
import org.gvsig.fmap.mapcontext.ViewPort;
26
import org.gvsig.fmap.mapcontext.layers.FLayers;
26 27
import org.gvsig.gvsig3d.Gvsig3DException;
27 28
import org.gvsig.gvsig3d.Gvsig3DManager;
28 29
import org.gvsig.gvsig3d.impl.layers.FLayers3DImpl;
......
135 136
	public MapContext3D createDefaultMapContext3DInstance(ViewPort vp) {
136 137
		return new MapContext3DImpl(vp);
137 138
	}
139
	
140
	public MapContext3D createDefaultMapContext3DInstance(FLayers fl, ViewPort vp) {
141
		return new MapContext3DImpl(fl, vp);
142
	}
138 143

  
139 144
	public MapContext3D createMapContext3DInstance(String name)
140 145
			throws Gvsig3DException {

Also available in: Unified diff