Revision 25054
trunk/extensions/ext3Dgui/src/org/gvsig/gvsig3dgui/display/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