I guess the file didn't make it.  Here is a cut n paste.

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import javax.media.j3d.*;

import javax.vecmath.*;

import com.sun.j3d.utils.universe.*;

import com.sun.j3d.utils.behaviors.vp.*;

import com.sun.j3d.utils.picking.behaviors.*;

import java.util.Enumeration;

public class TestButtons extends JFrame

{

class PickPoints extends Behavior

{

public PickPoints( Canvas3D canvas, Bounds bounds )

{

m_canvas = canvas;

setSchedulingBounds( bounds );

}

public void initialize()

{

conditions = new WakeupCriterion[1];

conditions[0] = new WakeupOnAWTEvent(MouseEvent.MOUSE_RELEASED);

//conditions[1] = new WakeupOnAWTEvent(MouseEvent.MOUSE_DOWN);

wakeupCondition = new WakeupOr(conditions);

wakeupOn(wakeupCondition);

}

public void processStimulus( Enumeration criteria )

{

WakeupCriterion wakeup;

AWTEvent[] evt = null;

while(criteria.hasMoreElements())

{

wakeup = (WakeupCriterion)criteria.nextElement();

if (wakeup instanceof WakeupOnAWTEvent)

evt = ((WakeupOnAWTEvent)wakeup).getAWTEvent();

}

if (evt[0] instanceof MouseEvent)

{

mevent = (MouseEvent) evt[0];

processMouseEvent(mevent);

}

wakeupOn( wakeupCondition );

}

public void processMouseEvent( MouseEvent e )

{

int xpos = 0, ypos = 0;

xpos = e.getPoint().x;

ypos = e.getPoint().y;

m_canvas.getImagePlateToVworld( m_eyeToVpc );

m_canvas.getPixelLocationInImagePlate( xpos, ypos, m_Point );

m_eyeToVpc.transform( m_Point );

updateScene( m_Point.x, m_Point.y, m_Point.z );

}

public void updateScene( double x, double y, double z )

{

m_Data[m_Cnt*3] = x;

m_Data[m_Cnt*3+1] = y;

m_Data[m_Cnt*3+2] = z;

m_Cnt += 1;

PointArray points = null;

points = new PointArray( m_Cnt,

GeometryArray.COORDINATES | GeometryArray.BY_REFERENCE );

points.setCoordRefDouble( m_Data );

m_PointShape.setGeometry( points );

}

protected WakeupCriterion[] conditions;

protected WakeupOr wakeupCondition;

protected MouseEvent mevent;

protected Canvas3D m_canvas;

protected Transform3D m_eyeToVpc = new Transform3D();

protected Point3d m_Point = new Point3d();

}

public TestButtons()

{

String plaf = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";

try {

UIManager.setLookAndFeel( plaf );

//SwingUtilities.updateComponentTreeUI( getContentPane() );

} catch( Exception e ) { }

setTitle("Test Buttons");

setSize( 300, 300 );

Container c = getContentPane();

c.setLayout( new BorderLayout() );

JPanel panel = new JPanel();

Box b = Box.createVerticalBox();

JButton button1 = new JButton( "Hello" );

b.add( button1 );

JToggleButton button2 = new JToggleButton( "Bubba" );

b.add( button2 );

panel.add( b );

c.add( "West", panel );

Canvas3D canvas = createCanvas();

SimpleUniverse univ = new SimpleUniverse( canvas );

// Create the viewing model

BoundingSphere bounds =

new BoundingSphere(new Point3d(0.0, 0.0, 0.0), 100.0);

PickPoints creator = new PickPoints( canvas, bounds );

BranchGroup scene = new BranchGroup();

m_PointShape = new Shape3D();

Appearance appear = new Appearance();

appear.setPointAttributes( new PointAttributes( 5.0f, true ) );

m_PointShape.setAppearance( appear );

m_PointShape.setCapability( Shape3D.ALLOW_GEOMETRY_READ );

m_PointShape.setCapability( Shape3D.ALLOW_GEOMETRY_WRITE );

scene.addChild( m_PointShape );

scene.addChild( creator );

univ.addBranchGraph( scene );

ViewingPlatform viewingPlatform = univ.getViewingPlatform();

viewingPlatform.setNominalViewingTransform();

c.add( "Center", canvas );

addWindowListener( new WindowAdapter()

{

public void windowClosing( WindowEvent evt )

{

System.exit(0);

}

} );

}

public Canvas3D createCanvas()

{

GraphicsConfigTemplate3D template = new GraphicsConfigTemplate3D();

GraphicsConfiguration gc1 =

GraphicsEnvironment.

getLocalGraphicsEnvironment().

getDefaultScreenDevice().

getBestConfiguration(template);

Canvas3D canvas = new Canvas3D( gc1 );

canvas.setDoubleBufferEnable(true);

return canvas;

}

public static void main( String[] args )

{

JFrame f = new TestButtons();

f.show();

}

protected double[] m_Data = new double[3 * 1000];

protected int m_Cnt = 0;

protected Shape3D m_PointShape;

}

===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA3D-INTEREST".  For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".

Reply via email to