Revision 25054 trunk/extensions/ext3Dgui/src/org/gvsig/gvsig3dgui/display/ProjectionMode.java

View differences:

ProjectionMode.java
3 3
import org.gvsig.gvsig3d.navigation.NavigationMode;
4 4
import org.gvsig.gvsig3dgui.view.View3D;
5 5
import org.gvsig.osgvp.planets.PlanetViewer;
6
import org.gvsig.osgvp.viewer.OSGViewer;
6 7

  
7 8
import com.iver.andami.PluginServices;
8 9
import com.iver.andami.plugins.Extension;
......
10 11
public class ProjectionMode extends Extension {
11 12

  
12 13
	private boolean _perspective = true;
14
	private double _fovy = 30.0;
13 15

  
14 16
	public void execute(String actionCommand) {
15 17
		// Getting view3D
......
18 20
		if (!(view instanceof View3D))
19 21
			return;
20 22

  
23
		OSGViewer viewer = (OSGViewer) ((View3D) view).getCanvas3d()
24
		.getOSGViewer();
21 25
		if (actionCommand.equals("PROJECTION")) {
22 26

  
23 27
			NavigationMode nm = ((View3D) view).getNavMode();
......
25 29
			if (!_perspective) {
26 30
				((View3D) view).getCanvas3d().getOSGViewer()
27 31
						.setProjectionMatrixAsPerspective(
28
								30,
29
								((double) ((View3D) view).getCanvas3d()
30
										.getOSGViewer().getWidth())
31
										/ ((double) ((View3D) view)
32
												.getCanvas3d().getOSGViewer()
32
								_fovy,
33
								((double) viewer.getWidth())
34
										/ ((double) viewer
33 35
												.getHeight()), 1, 10000);
34 36
				_perspective = true;
35 37
				nm.SetDefaultMode();
36 38

  
37 39
			} else {
38 40

  
41
				_fovy = viewer.getCamera().getProjectionMatrixAsPerspective().fovy;
42
				
39 43
				((View3D) view)
40 44
						.getCanvas3d()
41 45
						.getOSGViewer()
42 46
						.setProjectionMatrixAsOrtho(
43
								20 * (((double) ((View3D) view).getCanvas3d()
44
										.getOSGViewer().getCamera()
47
								20 * (((double) viewer.getCamera()
45 48
										.getProjectionMatrixAsFrustum().left)),
46
								20 * (((double) ((View3D) view).getCanvas3d()
47
										.getOSGViewer().getCamera()
49
								20 * (((double) viewer.getCamera()
48 50
										.getProjectionMatrixAsFrustum().right)),
49
								20 * (((double) ((View3D) view).getCanvas3d()
50
										.getOSGViewer().getCamera()
51
								20 * (((double)viewer.getCamera()
51 52
										.getProjectionMatrixAsFrustum().bottom)),
52
								20 * (((double) ((View3D) view).getCanvas3d()
53
										.getOSGViewer().getCamera()
53
								20 * (((double) viewer.getCamera()
54 54
										.getProjectionMatrixAsFrustum().top)),
55 55
								1, 1000);
56 56

  

Also available in: Unified diff