Revision 257
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