Revision 84

View differences:

1.10/trunk/extensions/ext3Dgui/src/org/gvsig/gvsig3dgui/display/FullScreenPanel.java
69 69
import com.iver.core.NotificationDialog;
70 70

  
71 71
public class FullScreenPanel extends GridBagLayoutPanel implements IWindow,
72
ChangeListener, IWindowListener {
72
		ChangeListener, IWindowListener {
73 73

  
74 74
	/**
75 75
	 * 
......
206 206
		gridBagConstraints.insets = new java.awt.Insets(0, 0, 11, 0);
207 207
		jPanel1.add(wowjCheckBox, gridBagConstraints);
208 208
		wowjCheckBox.setSelected(false);
209
		
209

  
210 210
		xyzjCheckBox.setText(PluginServices.getText(this, "Activar_XYZ"));
211
		xyzjCheckBox.setToolTipText(PluginServices.getText(this, "Activar_XYZ_tooltip"));
211
		xyzjCheckBox.setToolTipText(PluginServices.getText(this,
212
				"Activar_XYZ_tooltip"));
212 213
		gridBagConstraints = new java.awt.GridBagConstraints();
213 214
		gridBagConstraints.gridx = 0;
214 215
		gridBagConstraints.gridy = 8;
......
381 382

  
382 383
	private Compass compass;
383 384

  
384
	
385

  
386 385
	protected void jButton1ActionPerformed(ActionEvent evt) {
387 386

  
388 387
		_view3D = (View3D) PluginServices.getMDIManager().getActiveWindow();
......
394 393
		changedManipulator = false;
395 394

  
396 395
		GraphicsEnvironment ge = GraphicsEnvironment
397
		.getLocalGraphicsEnvironment();
396
				.getLocalGraphicsEnvironment();
398 397
		try {
399 398
			GraphicsDevice[] gs = ge.getScreenDevices();
400
			int screenNum = ((SpinnerNumberModel) jSpinner1
401
					.getModel()).getNumber().intValue();
399
			int screenNum = ((SpinnerNumberModel) jSpinner1.getModel())
400
					.getNumber().intValue();
402 401
			_numScreens = gs.length;
403
			if(_numScreens <= screenNum) screenNum=0;
402
			if (_numScreens <= screenNum)
403
				screenNum = 0;
404 404
			_screenWidth = gs[screenNum].getDisplayMode().getWidth();
405 405
			_screenHeight = gs[screenNum].getDisplayMode().getHeight();
406
			_logger.debug("Num Screens:"+ _numScreens);
407
			_logger.debug("Selected Screen:"+ screenNum);
408
			_logger.debug("Selected Screen Resolution:("+_screenWidth+","+_screenHeight+")");
406
			_logger.debug("Num Screens:" + _numScreens);
407
			_logger.debug("Selected Screen:" + screenNum);
408
			_logger.debug("Selected Screen Resolution:(" + _screenWidth + ","
409
					+ _screenHeight + ")");
409 410
		} catch (HeadlessException e) {
410 411
			// Is thrown if there are no screen devices
411 412
		}
......
424 425
			terrain.setTerrainName(planetView3D.getTerrainName());
425 426

  
426 427
			MapContext3D mc = (MapContext3D) _view3D.getMapControl()
427
			.getMapContext();
428
					.getMapContext();
428 429
			terrain.init();
429 430
			terrain.setLayerManager(mc.getTerrain().getLayerManager());
430 431
			viewCam = new Camera();
......
434 435
					if (synchronize) {
435 436
						_fullScreenViewer.setFusionDistance((float) terrain
436 437
								.getZoom());
437
						Matrix refView = _view3D.getCanvas3d().getOSGViewer()
438
						.getViewMatrix();
439
						viewCam.setViewMatrix(refView);
438
						 Matrix refView = _view3D.getCanvas3d().getOSGViewer()
439
						 .getViewMatrix();
440
						 viewCam.setViewMatrix(refView);
440 441
						_fullScreenViewer.setCamera(viewCam);
441

  
442

  
443 442
					}
444 443

  
445 444
					super.frame();
446 445
				};
447 446
			};
448

  
449

  
450

  
451 447
			_fullScreenViewer.addTerrain(terrain);
452 448
			_fullScreenViewer.addFeature((((TerrainViewer) _view3D
453 449
					.getCanvas3d().getOSGViewer()).getFeatures()));
......
471 467
			_fullScreenViewer.addNodeToCameraHUD(compass);
472 468

  
473 469
			Vec4 color = ((TerrainViewer) _view3D.getCanvas3d().getOSGViewer())
474
			.getClearColor();
470
					.getClearColor();
475 471
			_fullScreenViewer.setClearColor(color.x(), color.y(), color.z(),
476 472
					color.w());
477 473
			_fullScreenViewer.setDisplaySettings(_ds);
478 474
			Matrix refView = _view3D.getCanvas3d().getOSGViewer()
479
			.getViewMatrix();
475
					.getViewMatrix();
480 476
			viewCam.setViewMatrix(refView);
481 477
			_fullScreenViewer.setCamera(viewCam);
482 478

  
483

  
484

  
485 479
			_canvas3d = ViewerFactory.getInstance().createViewer(
486 480
					ViewerFactory.VIEWER_TYPE.CANVAS_VIEWER, _fullScreenViewer);
487 481
			_canvas3d
488
			.addKeyListener(new ViewerStateListener(_fullScreenViewer));
482
					.addKeyListener(new ViewerStateListener(_fullScreenViewer));
489 483
			frame = new JDialog();
490 484
			JPanel jContentPane = new JPanel();
491 485
			jContentPane.setLayout(new BorderLayout());
......
494 488
			ViewerFactory.getInstance().startAnimator();
495 489
			frame.addWindowListener(new WindowAdapter() {
496 490
				public void windowClosing(WindowEvent e) {
497
					if (changedManipulator) {
498
						((TerrainViewer) (_view3D.getCanvas3d().getOSGViewer()))
499
						.setCameraManipulator(null);
500
					}
491
					/*
492
					 * if (changedManipulator) { ((TerrainViewer)
493
					 * (_view3D.getCanvas3d().getOSGViewer()))
494
					 * .setCameraManipulator(null); }
495
					 */
501 496

  
502 497
					_canvas3d.dispose();
503 498
				}
......
556 551
			e1.printStackTrace();
557 552
		}
558 553

  
559
		if (_view3D.getCanvas3d().getOSGViewer().getCameraManipulator() == null) {
560
			((TerrainViewer) (_view3D.getCanvas3d().getOSGViewer()))
561
			.restoreCustomTerrainManipulator();
562
			changedManipulator = true;
563
		}
554
		/*
555
		 * if (_view3D.getCanvas3d().getOSGViewer().getCameraManipulator() ==
556
		 * null) { ((TerrainViewer) (_view3D.getCanvas3d().getOSGViewer()))
557
		 * .restoreCustomTerrainManipulator(); changedManipulator = true; }
558
		 */
564 559

  
565 560
		if (synchronize)
566 561
			_fullScreenViewer.setCameraManipulator(null);
......
570 565
			if (wowjCheckBox.isSelected()) {
571 566
				enableWOWDisplay();
572 567
				runViewer();
573
			}
574
			else if(_ds.getStereoMode()== DisplaySettings.StereoMode.QUAD_BUFFER) {
568
			} else if (_ds.getStereoMode() == DisplaySettings.StereoMode.QUAD_BUFFER) {
575 569
				enableQUADBUFFERDisplay();
576 570
				runViewer();
577
				
578
			}
579
			else {
571
			} else {
580 572
				if (!jCheckBox2.isSelected()) {
581
					if(xyzjCheckBox.isSelected()) {
573
					if (xyzjCheckBox.isSelected()) {
582 574
						enableXYZDisplay();
583 575
					}
584 576
					frame.setUndecorated(true);
585 577
					frame.requestFocus();
586
					//Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
587
					//frame.setSize(dim.width, dim.height);
588
					frame.setSize(_screenWidth,_screenHeight);
578
					// Dimension dim =
579
					// Toolkit.getDefaultToolkit().getScreenSize();
580
					// frame.setSize(dim.width, dim.height);
581
					frame.setSize(_screenWidth, _screenHeight);
589 582
					frame.setVisible(true);
590 583
				}
591 584

  
592 585
				else {
593
					if(xyzjCheckBox.isSelected()) {
586
					if (xyzjCheckBox.isSelected()) {
594 587
						enableXYZDisplay();
595 588
					}
596 589
					frame.setUndecorated(true);
597 590
					frame.requestFocus();
598
					//Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
599
					//frame.setSize(dim.width / _numScreens, dim.height);
600
					frame.setSize(_screenWidth,_screenHeight);
591
					// Dimension dim =
592
					// Toolkit.getDefaultToolkit().getScreenSize();
593
					// frame.setSize(dim.width / _numScreens, dim.height);
594
					frame.setSize(_screenWidth, _screenHeight);
601 595
					frame.setLocation(((SpinnerNumberModel) jSpinner1
602 596
							.getModel()).getNumber().intValue()
603 597
							* _screenWidth, 0);
......
614 608
				frame.setSize(((SpinnerNumberModel) jSpinner4.getModel())
615 609
						.getNumber().intValue(),
616 610
						((SpinnerNumberModel) jSpinner5.getModel()).getNumber()
617
						.intValue());
611
								.intValue());
618 612
				frame.setLocation((((SpinnerNumberModel) jSpinner1.getModel())
619 613
						.getNumber().intValue() * dim.width)
620 614
						+ ((SpinnerNumberModel) jSpinner2.getModel())
621
						.getNumber().intValue(),
615
								.getNumber().intValue(),
622 616
						((SpinnerNumberModel) jSpinner3.getModel()).getNumber()
623
						.intValue());
617
								.intValue());
624 618
				frame.setVisible(true);
625 619
			} else {
626 620

  
627 621
				frame.setSize(((SpinnerNumberModel) jSpinner4.getModel())
628 622
						.getNumber().intValue(),
629 623
						((SpinnerNumberModel) jSpinner5.getModel()).getNumber()
630
						.intValue());
624
								.intValue());
631 625
				frame.setLocation(((SpinnerNumberModel) jSpinner2.getModel())
632 626
						.getNumber().intValue(),
633 627
						((SpinnerNumberModel) jSpinner3.getModel()).getNumber()
634
						.intValue());
628
								.intValue());
635 629
				frame.setVisible(true);
636

  
637 630
			}
638 631

  
639 632
		}
640 633

  
641 634
		compass.setScale(new Vec3(75, 75, 75));
642

  
643 635
		System.gc();
644 636

  
645 637
	}
......
674 666
		// TODO Auto-generated method stub
675 667
		return WindowInfo.DIALOG_PROFILE;
676 668
	}
677
	
678
	protected void enableWOWDisplay()
679
	{
669

  
670
	protected void enableWOWDisplay() {
680 671
		char wow_content = 0x02, wow_factor = 0x40, wow_offset = 0x80;
681 672
		float wow_Zd = 0.459813f;
682 673
		float wow_vz = 6.180772f;
683 674
		float wow_M = -1586.34f;
684 675
		float wow_C = 127.5f;
685
		int screenNum = ((SpinnerNumberModel) jSpinner1
686
				.getModel()).getNumber().intValue();
676
		int screenNum = ((SpinnerNumberModel) jSpinner1.getModel()).getNumber()
677
				.intValue();
687 678

  
688
		_fullScreenViewer.setUpViewForWoWVxDisplay(screenNum,
689
				wow_content, wow_factor, wow_offset, wow_Zd, wow_vz,
690
				wow_M, wow_C);
679
		_fullScreenViewer.setUpViewForWoWVxDisplay(screenNum, wow_content,
680
				wow_factor, wow_offset, wow_Zd, wow_vz, wow_M, wow_C);
691 681
	}
692
	
693
	protected void enableXYZDisplay()
694
	{
695
		//int screenNum = ((SpinnerNumberModel) jSpinner1
696
		//		.getModel()).getNumber().intValue();
697
		//_fullScreenViewer.setUpViewOnSingleScreen(screenNum);
682

  
683
	protected void enableXYZDisplay() {
684
		// int screenNum = ((SpinnerNumberModel) jSpinner1
685
		// .getModel()).getNumber().intValue();
686
		// _fullScreenViewer.setUpViewOnSingleScreen(screenNum);
698 687
		Node n = _fullScreenViewer.getSceneData();
699
		Node multiview = osgDB.readNodeFileNoException(String.valueOf(n.getCPtr())+".multiview");
688
		Node multiview = osgDB.readNodeFileNoException(String.valueOf(n
689
				.getCPtr())
690
				+ ".multiview");
700 691
		_fullScreenViewer.setSceneData(multiview);
701 692
	}
702
	
703
	protected void enableQUADBUFFERDisplay()
704
	{	
705
		if(!_fullScreenViewer.setUpViewerWithQuadBuffer(0, 0, _screenWidth, _screenHeight))
706
			JOptionPane.showMessageDialog((Component)PluginServices.getMainFrame(), PluginServices.getText(this, "Quadbuffer_error"));
693

  
694
	protected void enableQUADBUFFERDisplay() {
695
		if (!_fullScreenViewer.setUpViewerWithQuadBuffer(0, 0, _screenWidth,
696
				_screenHeight))
697
			JOptionPane.showMessageDialog((Component) PluginServices
698
					.getMainFrame(), PluginServices.getText(this,
699
					"Quadbuffer_error"));
707 700
		compass.setPosition(new Vec3(_screenWidth - 70, _screenHeight - 70, 0));
708 701
	}
709
	
710
	protected void runViewer()
711
	{
702

  
703
	protected void runViewer() {
712 704
		final ISlaveComponent slavePainter = new ISlaveComponent() {
713 705

  
714 706
			public void repaint() {
......
719 711
		new Thread(new Runnable() {
720 712

  
721 713
			public void run() {
722
				while(!_fullScreenViewer.done()) {
714
				while (!_fullScreenViewer.done()) {
723 715
					try {
724 716
						Thread.sleep(60);
725 717
					} catch (InterruptedException e) {
......
728 720
				_view3D.getCanvas3d().removeRenderSlaveComponent(slavePainter);
729 721
				_fullScreenViewer.dispose();
730 722
			}
731
		}).start();		
723
		}).start();
732 724
	}
733 725
}

Also available in: Unified diff