2015-05-08 20:36:26 -06:00
|
|
|
import javax.swing.*;
|
|
|
|
import javax.swing.event.*;
|
|
|
|
import java.awt.*;
|
|
|
|
import java.awt.event.*;
|
|
|
|
import java.util.Scanner;
|
|
|
|
|
2015-05-08 12:51:53 -06:00
|
|
|
import java.lang.*;
|
|
|
|
import java.io.*;
|
|
|
|
import java.net.*;
|
|
|
|
|
|
|
|
class Tester3D {
|
2015-05-08 20:36:26 -06:00
|
|
|
public static Display3D area3d;
|
|
|
|
public static JFrame frame;
|
|
|
|
public static JSlider slider;
|
|
|
|
public static JButton button;
|
|
|
|
public static double rawYaw;
|
|
|
|
public static double yawAdjust = 0.0;
|
|
|
|
|
2015-05-08 12:51:53 -06:00
|
|
|
public static void main(String[] args) {
|
2015-05-08 20:36:26 -06:00
|
|
|
frame = new JFrame( "Tester3D" );
|
|
|
|
frame.setResizable( true );
|
|
|
|
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
|
|
|
frame.setLayout( new BorderLayout() );
|
|
|
|
|
2015-05-08 20:38:08 -06:00
|
|
|
area3d = new DisplayNewQuad( 80 );
|
2015-05-08 20:36:26 -06:00
|
|
|
frame.add( area3d, BorderLayout.CENTER );
|
|
|
|
area3d.init();
|
|
|
|
while( area3d.defaultSize && !area3d.finished )
|
|
|
|
try { Thread.sleep( 5 ); } catch( Exception e ) {}
|
|
|
|
|
2015-05-08 20:49:45 -06:00
|
|
|
slider = new JSlider( JSlider.VERTICAL, 0, 157, 52 ); // initial position pi/6
|
|
|
|
Tester3D.area3d.camAngle = (float)( 157 - Tester3D.slider.getValue() ) / 100; // set initial camera angle
|
2015-05-08 20:36:26 -06:00
|
|
|
slider.addChangeListener( new ChangeListener() {
|
|
|
|
public void stateChanged( ChangeEvent evt ) {
|
|
|
|
Tester3D.area3d.camAngle = (float)( 157 - Tester3D.slider.getValue() ) / 100;
|
|
|
|
}
|
|
|
|
});
|
|
|
|
frame.add( slider, BorderLayout.EAST );
|
|
|
|
|
|
|
|
button = new JButton( "reset yaw" );
|
|
|
|
button.addActionListener( new ActionListener() {
|
|
|
|
public void actionPerformed( ActionEvent evt ) {
|
|
|
|
Tester3D.yawAdjust = rawYaw;
|
|
|
|
}
|
|
|
|
});
|
|
|
|
frame.add( button, BorderLayout.NORTH );
|
|
|
|
|
|
|
|
frame.pack();
|
|
|
|
frame.setVisible( true );
|
|
|
|
|
2015-05-08 12:51:53 -06:00
|
|
|
try {
|
|
|
|
Socket skt = new Socket("localhost", 7777);
|
|
|
|
BufferedReader in = new BufferedReader(new
|
|
|
|
InputStreamReader(skt.getInputStream()));
|
2015-05-08 20:36:26 -06:00
|
|
|
Scanner in2 = new Scanner( skt.getInputStream() );
|
|
|
|
System.out.println("STARTING...");
|
2015-05-08 12:51:53 -06:00
|
|
|
|
2015-05-08 20:36:26 -06:00
|
|
|
while( !in.ready() ) {}
|
2015-05-08 12:51:53 -06:00
|
|
|
|
2015-05-08 20:36:26 -06:00
|
|
|
String inString;
|
2015-05-08 20:57:59 -06:00
|
|
|
while( !in2.hasNext() ) {}
|
|
|
|
while( !updateYPR( in2 ) ) {}
|
|
|
|
|
|
|
|
yawAdjust = rawYaw;
|
|
|
|
|
2015-05-08 20:36:26 -06:00
|
|
|
while( true ) {
|
|
|
|
//while( !in.ready() ) {}
|
|
|
|
//inString = in.readLine();
|
|
|
|
if( in2.hasNext() ) {
|
2015-05-08 20:57:59 -06:00
|
|
|
updateYPR( in2 );
|
2015-05-08 20:36:26 -06:00
|
|
|
}
|
|
|
|
}
|
|
|
|
//System.out.print("'\n");
|
|
|
|
//in.close();
|
2015-05-08 12:51:53 -06:00
|
|
|
}
|
|
|
|
catch(Exception e) {
|
|
|
|
System.out.print("Whoops! It didn't work!\n");
|
|
|
|
}
|
|
|
|
}
|
2015-05-08 20:57:59 -06:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @return true on successful update, false if scan.next() is not "ypr"
|
|
|
|
*/
|
|
|
|
public static boolean updateYPR( Scanner scan) {
|
|
|
|
if( scan.next().equals( "ypr" ) ) {
|
|
|
|
while( !scan.hasNext() ) {}
|
|
|
|
rawYaw = (float)( 0.01745329251 * scan.nextFloat() );
|
|
|
|
area3d.yaw = (float)( rawYaw - yawAdjust );
|
|
|
|
while( !scan.hasNext() ) {}
|
|
|
|
area3d.pitch = (float)( 0.01745329251 * scan.nextFloat() );
|
|
|
|
while( !scan.hasNext() ) {}
|
|
|
|
area3d.roll = (float)( 0.01745329251 * scan.nextFloat() );
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
}
|
2015-05-08 12:51:53 -06:00
|
|
|
}
|