Revision 23304

View differences:

trunk/libraries/lib3DMap/src/org/gvsig/gvsig3d/navigation/NavigationMode.java
221 221
			}
222 222
		}
223 223
	}
224
	
225
	public static void restoreAllNavigationModes() {
226
		if (CTM !=null){
227
			// Setting left button for roll mode
228
			for (Iterator iter = manRollList.iterator(); iter.hasNext();) {
229
				// Get the mask element
230
				NavigationMask mask = (NavigationMask) iter.next();
231
				// Settin mode
232
				CTM.addRollButtonMask(mask.getBtnMask(), mask.getKeyMask());
233
				
234
			}
235
			// Setting left button for roll mode
236
			for (Iterator iter = manZoomList.iterator(); iter.hasNext();) {
237
				// Get the mask element
238
				NavigationMask mask = (NavigationMask) iter.next();
239
				// Settin mode
240
				CTM.addZoomButtonMask(mask.getBtnMask(), mask.getKeyMask());
241
				
242
			}
243
			
244
			// Setting left button for roll mode
245
			for (Iterator iter = manAzimutList.iterator(); iter.hasNext();) {
246
				// Get the mask element
247
				NavigationMask mask = (NavigationMask) iter.next();
248
				// Settin mode
249
				CTM.addAzimButtonMask(mask.getBtnMask(), mask.getKeyMask());
250
				
251
			}
252
		}
253
		
254
	}
224 255

  
225 256
}
trunk/libraries/lib3DMap/src/org/gvsig/gvsig3d/cacheservices/OSGCacheService.java
2 2

  
3 3
import java.awt.geom.Rectangle2D;
4 4
import java.io.File;
5
import java.io.FileNotFoundException;
6 5

  
6
import javax.swing.JOptionPane;
7

  
7 8
import org.apache.log4j.Logger;
8 9
import org.cresques.cts.IProjection;
9 10
import org.gvsig.cacheservice.CacheService;
......
13 14
import org.gvsig.geometries3D.MultiGeometry;
14 15
import org.gvsig.geometries3D.MultiSolid;
15 16
import org.gvsig.gvsig3d.drivers.GvsigDriverOSG;
17
import org.gvsig.gvsig3d.listener.EditorListener;
16 18
import org.gvsig.operations3D.Draw3DMultiSolid;
17 19
import org.gvsig.operations3D.context.Draw3DContext;
18 20
import org.gvsig.osgvp.Group;
19 21
import org.gvsig.osgvp.Node;
20 22
import org.gvsig.osgvp.PositionAttitudeTransform;
21 23
import org.gvsig.osgvp.Vec3;
22
import org.gvsig.osgvp.osgDB;
23 24
import org.gvsig.osgvp.exceptions.node.NodeException;
25
import org.gvsig.osgvp.manipulator.EditionManager;
26
import org.gvsig.osgvp.manipulator.ManipulatorHandler;
27
import org.gvsig.osgvp.manipulator.RemoveAllSelectionCommand;
28
import org.gvsig.osgvp.manipulator.Manipulator.DraggerType;
24 29
import org.gvsig.osgvp.planets.Planet;
25 30
import org.gvsig.osgvp.planets.PlanetViewer;
26 31
import org.gvsig.osgvp.viewer.IViewerContainer;
......
43 48

  
44 49
	// vector caching for libJOSG
45 50
	private Group _layerNode;
46
	
51

  
47 52
	private boolean newLayerOSG = false;
48 53

  
54
	private EditionManager editionManager;
55

  
56
	private RemoveAllSelectionCommand command;
57

  
49 58
	private static Logger logger = Logger.getLogger(OSGCacheService.class
50 59
			.getName());
51 60

  
......
62 71
		_layer = layer;
63 72
		_layerNode = new Group();
64 73
		_layerNode.setNodeName("layer3DOSG");
65
		
74

  
66 75
		try {
67 76
			_planetViewer.addSpecialNode(_layerNode);
68 77
		} catch (NodeException e1) {
......
88 97
		}
89 98

  
90 99
	}
91
	
100

  
92 101
	public Group getLayerNode() {
93 102
		return _layerNode;
94 103
	}
95
	
96 104

  
97 105
	// uses a strategy to get all features from layer and their symbols
98 106
	// and add them to the planet
......
100 108
	public void AddFeaturesToPlanet() {
101 109

  
102 110
		boolean newLayer = Layer3DProps.getLayer3DProps(_layer).isNewLayerOSG();
103
		
104
		if(!newLayer)
105
		{
106
			GvsigDriverOSG osgD = (GvsigDriverOSG) ((FLyrVect) _layer).getSource()
107
			.getDriver();
111

  
112
		if (!newLayer) {
113
			GvsigDriverOSG osgD = (GvsigDriverOSG) ((FLyrVect) _layer)
114
					.getSource().getDriver();
108 115
			try {
109 116
				File file = osgD.getFile();
110
				Node n = null; 
111
				
112
				
113
				try {
114
					n = osgDB.readNodeFile(file.getAbsolutePath());
115
				} catch (FileNotFoundException e) {
116
					// TODO Auto-generated catch block
117
					e.printStackTrace();
118
				}
117
				Node n = null;
118

  
119
				// try {
120
				// n = osgDB.readNodeFile(file.getAbsolutePath());
121
				// } catch (FileNotFoundException e) {
122
				// // TODO Auto-generated catch block
123
				// e.printStackTrace();
124
				// }
119 125
				MultiGeometry root = osgD.getOSGDriver().getRootFeature();
120 126
				// Insert the geometry in the root node of the graph.
121 127
				Group g = new Group();
122
//				buildGeometry(root, g);
123
				g.addChild(n);
128
				buildGeometry(root, g);
129
				// g.addChild(n);
124 130
				_layerNode.addChild(g);
125 131
			} catch (NodeException e) {
126 132
				// TODO Auto-generated catch block
......
155 161
			posAttTrasn = new PositionAttitudeTransform();
156 162
			posAttTrasn.setPosition(position);
157 163
			posAttTrasn.setScale(scale);
158
			posAttTrasn.setAttitude((float) rotation.x(), new Vec3(1,0,0));
159
			posAttTrasn.setAttitude((float) rotation.y(), new Vec3(0,1,0));
160
			posAttTrasn.setAttitude((float) rotation.z(), new Vec3(0,0,1));
164
			// posAttTrasn.setAttitude((float) rotation.x(), new Vec3(1,0,0));
165
			// posAttTrasn.setAttitude((float) rotation.y(), new Vec3(0,1,0));
166
			// posAttTrasn.setAttitude((float) rotation.z(), new Vec3(0,0,1));
161 167
			buildGeometry(multiGeometry, group);
162 168
			posAttTrasn.addChild(group);
163 169
			_layerNode.addChild(posAttTrasn);
170
			// _layerNode.addChild(group);
164 171
		} catch (NodeException e1) {
165 172
			// TODO Auto-generated catch block
166 173
			e1.printStackTrace();
167 174
		}
168 175

  
169

  
170 176
	}
171 177

  
172 178
	private void buildGeometry(AbstractPrimitive geom, Group group)
......
206 212

  
207 213
	}
208 214

  
215
	public void startEditing() {
209 216

  
217
		try {
218
			Layer3DProps props3D = Layer3DProps.getLayer3DProps(this._layer);
219
			if ((props3D.getType() == Layer3DProps.layer3DOSG)
220
					&& (!props3D.isEditing())) {
221
				props3D.setEditing(true);
222
				JOptionPane.showMessageDialog(null,
223
						"la capa ha sido puesta en edicion automaticamente");
224
				editionManager = new EditionManager();
225
				editionManager.setScene(_layerNode);
226
				Group parent = _layerNode.getParent(0);
227
				parent.removeChild(_layerNode);
228
				parent.addChild(editionManager);
229

  
230
				ManipulatorHandler manipulatorHandler = new ManipulatorHandler();
231
				manipulatorHandler.setActive(true);
232

  
233
				EditorListener editionListener = new EditorListener(
234
						editionManager, manipulatorHandler, _canvas3D);
235

  
236
				_canvas3D.getOSGViewer().addEventHandler(manipulatorHandler);
237

  
238
				// public void changeDragger(String draggerType)
239
				//editionManager.changeDragger(DraggerType.ROTATE_SPHERE_DRAGGER
240
				// );
241
				// editionManager.changeDragger(DraggerType.TABBOX_DRAGGER);
242
				//editionManager.changeDragger(DraggerType.TRANSLATE_AXIS_DRAGGER
243
				// );
244

  
245
			}
246
		} catch (NodeException e) {
247
			// TODO Auto-generated catch block
248
			e.printStackTrace();
249
		}
250
	}
251

  
252
	public void endEditing() {
253
		
254
		try {
255
			Layer3DProps props3D = Layer3DProps.getLayer3DProps(this._layer);
256
			if ((props3D.getType() == Layer3DProps.layer3DOSG)
257
					&& (props3D.isEditing())) {
258
				props3D.setEditing(false);
259
				
260
				 command = new RemoveAllSelectionCommand(editionManager);
261
				 command.execute();
262
				 
263
				 Group scene = editionManager.getTransformedScene();
264
				 Group parent = _layerNode.getParent(0);
265
				 parent.removeChild(_layerNode);
266
				 parent.addChild(scene);
267
				 
268
				// public void changeDragger(String draggerType)
269
				//editionManager.changeDragger(DraggerType.ROTATE_SPHERE_DRAGGER
270
				// );
271
				// editionManager.changeDragger(DraggerType.TABBOX_DRAGGER);
272
				//editionManager.changeDragger(DraggerType.TRANSLATE_AXIS_DRAGGER
273
				// );
274

  
275
			}
276
		} catch (NodeException e) {
277
			// TODO Auto-generated catch block
278
			e.printStackTrace();
279
		}
280
		
281
	}
282
	public EditionManager getEditionManager() {
283
		return editionManager;
284
	}
285

  
286
	public void setEditionManager(EditionManager editionManager) {
287
		this.editionManager = editionManager;
288
	}
289

  
290

  
210 291
}
trunk/libraries/lib3DMap/src/org/gvsig/gvsig3d/simbology3D/symbol3D/point/ObjectPoint3DSymbol.java
21 21
import com.iver.cit.gvsig.fmap.core.symbols.ISymbol;
22 22
import com.sun.java_cup.internal.sym;
23 23

  
24
public class ObjectPoint3DSymbol extends Abstract3DSymbol{
24
public class ObjectPoint3DSymbol extends Abstract3DSymbol {
25 25

  
26 26
	private Object3DMarkerSymbol object3DMarketSymbol;
27
	private static Node object3D = null;
28
	private static String oldPath = "";
27 29

  
28 30
	public ObjectPoint3DSymbol(ISymbol symbol) {
29 31
		super(symbol);
......
32 34

  
33 35
	@Override
34 36
	public Node generateSymbol(List<Vec3> position) {
35
		
37

  
36 38
		Group group = new Group();
37 39
		PositionAttitudeTransform posAttTrasn = null;
38 40
		Vec3 scale = object3DMarketSymbol.getScale();
39 41
		Vec3 rotation = object3DMarketSymbol.getRotationObject();
40 42
		try {
41
//			Node object3D = osgDB.readNodeFile("D:/modelos3d/cow.ive");
42
			Node object3D = osgDB.readNodeFile(object3DMarketSymbol
43
					.getObject3DPath());
43
			// Node object3D = osgDB.readNodeFile("D:/modelos3d/cow.ive");
44
			if (!(oldPath.equals(object3DMarketSymbol.getObject3DPath()))){
45
				oldPath = object3DMarketSymbol.getObject3DPath();
46
				object3D = osgDB.readNodeFile(oldPath);
47
			}
44 48
			for (Iterator iterator = position.iterator(); iterator.hasNext();) {
45 49
				Vec3 pos = (Vec3) iterator.next();
46
//				System.err.println("position " + pos.x() + " " + pos.y() + " "
47
//						+ pos.z());
50
				System.err.println("position " + pos.x() + " " + pos.y() + " "
51
						+ pos.z());
48 52
				posAttTrasn = new PositionAttitudeTransform();
49 53
				posAttTrasn.setPosition(pos);
50 54
				posAttTrasn.setScale(scale);
51
				
52
				if (object3DMarketSymbol.isAutoRotate()){
53
					AutoTransform autoRotateTrasn = null;	
54
					autoRotateTrasn = new AutoTransform(); 
55

  
56
				if (object3DMarketSymbol.isAutoRotate()) {
57
					AutoTransform autoRotateTrasn = null;
58
					autoRotateTrasn = new AutoTransform();
55 59
					autoRotateTrasn.setPosition(pos);
56 60
					autoRotateTrasn.addChild(posAttTrasn);
57
					autoRotateTrasn.setAutoRotateMode(AutoTransform.AutoRotateMode.ROTATE_TO_CAMERA);
58
//					autoRotateTrasn.setAutoScaleToScreen(true);
61
					autoRotateTrasn
62
							.setAutoRotateMode(AutoTransform.AutoRotateMode.ROTATE_TO_CAMERA);
63
					// autoRotateTrasn.setAutoScaleToScreen(true);
59 64
					group.addChild(autoRotateTrasn);
60
				}else{
65
				} else {
61 66
					group.addChild(posAttTrasn);
62 67
				}
63 68
				posAttTrasn.addChild(object3D);
64
				
69

  
65 70
			}
66 71
		} catch (NodeException e1) {
67 72
			// TODO Auto-generated catch block
trunk/libraries/lib3DMap/pom.xml
47 47
		<dependency>
48 48
			<groupId>org.gvsig.osgvp.libosgvp</groupId>
49 49
			<artifactId>libosgvp-ephemeris</artifactId>
50
			<version>2.1.5</version>
50
			<version>2.1.6.1</version>
51 51
		</dependency>
52 52
		<dependency>
53 53
			<groupId>org.gvsig.osgvp.libosgvp</groupId>
54 54
			<artifactId>libosgvp-features</artifactId>
55
			<version>2.1.5</version>
55
			<version>2.1.6.1</version>
56 56
		</dependency>
57 57
		<dependency>
58 58
			<groupId>org.gvsig.osgvp.libosgvp</groupId>
59 59
			<artifactId>libosgvp-manipulator</artifactId>
60
			<version>2.1.5</version>
60
			<version>2.1.6.1</version>
61 61
		</dependency>
62 62
		<dependency>
63 63
			<groupId>org.gvsig</groupId>

Also available in: Unified diff