Hello !
Alessandro, you solved my problem, thanks!
Best regards
Fredrik
Below is the result:
PlatformGeometry platformGeometry = new PlatformGeometry();
Aim aim = new Aim(new Color3f(1f, 0f, 0f), new Vector3d(0.0,
0.0, -0.8), 0.005f, 0.005f);
platformGeometry.addChild(aim);
ViewingPlatform viewingPlatform = simpleUniverse.getViewingPlatform();
viewingPlatform.setPlatformGeometry(platformGeometry);
public class Aim extends TransformGroup
{
Color3f color;
Vector3d position;
float radius;
float height;
public Aim(Color3f c, Vector3d p, float r, float h)
{
color = c;
position = p;
radius = r;
height = h;
setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
Transform3D transform3D = new Transform3D();
transform3D.rotX(Math.PI/2.0);
transform3D.setTranslation(position);
setTransform(transform3D);
Appearance appearance = new Appearance();
ColoringAttributes coloringAttributes = new ColoringAttributes(color,
ColoringAttributes.FASTEST);
appearance.setColoringAttributes(coloringAttributes);
TransparencyAttributes transparencyAttributes = new
TransparencyAttributes(TransparencyAttributes.FASTEST, 1.0f);
appearance.setTransparencyAttributes(transparencyAttributes);
Cylinder cylinder = new Cylinder(radius, height, appearance);
addChild(cylinder);
Point3f[] verts = { new Point3f (-0.01f, 0.0f, 0.0f),new Point3f(0.01f,
0.0f, 0.0f)};
Point3f[] verts2 = { new Point3f (-0.01f, 0.0f, 0.0f),new
Point3f(0.01f,
0.0f, 0.0f)};
Color3f black = new Color3f (1.0f, 1.0f, 1.0f);
Color3f[] colors = {black, black};
LineArray la = new LineArray (4, LineArray.COORDINATES |
LineArray.COLOR_3);
la.setCoordinates (0, verts);
la.setCoordinates (1, verts2);
la.setColors (0, colors);
la.setColors (1, colors);
Shape3D shape = new Shape3D();
shape.setGeometry (la);
addChild(shape);
}
}
-----Ursprungligt meddelande-----
Fr�n: Discussion list for Java 3D API
[mailto:[EMAIL PROTECTED] Alessandro Borges
Skickat: den 10 februari 2004 16:29
Till: [EMAIL PROTECTED]
�mne: Re: [JAVA3D] How to paint a aim on the GlassPane
Hi,
This will not work.
try to use a texture with transparency mask in a
platformGeometry.
See Java3D's PlatformGeometry demo
Alessandro
--- Fredrik Andersson
<[EMAIL PROTECTED]> escreveu: > Hello!
>
> I try to paint a filled oval on the glasspane, but
> it doesn't seems to work.
>
> This works on a regular JFrame but doesn't seems to
> work on a JMainFrame
> even do it extends from JFrame.
>
> My code to test my attemtp is below.
>
> So if any one could give me a hint or solution for
> this it would be great.
>
> The reason for this is to paint a aim like a
> haircross in a 3D-world. So
> perhaps someone got a better strategy for this.
>
> Best regards
> Fredrik
>
> //The glasscomponent
>
> import java.awt.*;
>
> public class AimPane extends JComponent
> {
> int x;
> int y;
>
> public AimPane(int x, int y)
> {
> this.x = x;
> this.y = y;
> setVisible(true);
> repaint();
> }
>
> protected void paintComponent(Graphics g)
> {
> g.setColor(Color.blue);
> g.fillOval(x, y, 20, 20);
> }
> }
>
> //The class to run this
> import java.applet.*;
> import java.awt.*;
> import java.awt.Frame;
> import java.awt.event.*;
> import com.sun.j3d.utils.applet.MainFrame;
> import com.sun.j3d.utils.universe.*;
> import com.sun.j3d.utils.geometry.*;
> import com.sun.j3d.utils.behaviors.keyboard.*;
> import javax.media.j3d.*;
> import javax.vecmath.*;
> import javax.swing.*;
>
> import java.util.*;
>
> import com.sun.j3d.utils.applet.*;
>
>
>
>
> public class TestAimPane extends Applet
> {
> Canvas3D canvas3D;
> SimpleUniverse simpleUniverse;
>
> public void init()
> {
> long start =
> System.currentTimeMillis();
> setLayout(new BorderLayout());
> GraphicsConfiguration config =
> SimpleUniverse.getPreferredConfiguration();
> canvas3D = new Canvas3D(config);
> add("Center", canvas3D);
> simpleUniverse = new
> SimpleUniverse(canvas3D);
>
> TransformGroup transformGroup = new
> TransformGroup();
> Transform3D transform3D = new
> Transform3D();
> transform3D.setTranslation( new
> Vector3d( 0.0, 0.0, -8.0 ) );
>
> transformGroup.setTransform(transform3D);
> transformGroup.addChild(new
> ColorCube());
>
> BranchGroup branchGroup = new
> BranchGroup();
>
> branchGroup.addChild(transformGroup);
>
> simpleUniverse.addBranchGraph(
> branchGroup );
>
> long end =
> System.currentTimeMillis();
>
> System.out.println((end-start)/1000);
> }
>
>
> public static void main(String[] args)
> {
> JMainFrame jMainFrame = new
> JMainFrame(new TestAimPane(), 700, 300);
> Dimension dimension =
> jMainFrame.getToolkit().getScreenSize();
> Rectangle bounds =
> jMainFrame.getBounds();
> jMainFrame.setBounds(
> (dimension.width - bounds.width) / 2,
> (dimension.height - bounds.height) / 2, 700, 300);
> AimPane aimPane = new
> AimPane(bounds.width/2, bounds.height/2);
> jMainFrame.setGlassPane(aimPane);
> aimPane.setVisible(true);
>
> try
> {
> java.awt.Robot robot = new
> java.awt.Robot();
>
>
robot.mouseMove(dimension.width/2,dimension.height/2);
> }
> catch(Exception e)
> {
> }
>
> }
>
>
===========================================================================
> 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".
______________________________________________________________________
Yahoo! GeoCities: 15MB de espa�o gr�tis para criar seu web site!
http://br.geocities.yahoo.com/
===========================================================================
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".
===========================================================================
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".