Thanks John, it works.
Just one question about picking through holes of a body. I am picking
downwards and I get the billiard table . Fine, but even above the pockets I
still get the table. It seems that the 3ds loader has made my table as a
square with no holes in it,such that as long as you are above the table you
will pick it.Maybe it is a picking bug?
Has anyone experienced such thing with picking?
My Table is a square with 6 pockets in it. it was done using 3ds max.
THANK YOU
BASSAM
----- Original Message -----
From: "John Wright" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Wednesday, June 02, 2004 7:33 PM
Subject: Re: [JAVA3D] picking the table
> Bassam, your code does not pick straight "down" from your point. Try
> something more like:
> Point3d end = new Point3d(point.x ,point.y-5 ,point.z );
> Point3d start = new Point3d(point);
>
> - John Wright
> Starfire Research
>
>
> Bassam wrote:
>
> > Sorry John it didn't work.It gives the same result (NULL).
> >
> > As my last choice I will post some of the code. Maybe you can figure out
> > somethig wrong. Here it is:
> >
> >
> > ///////////////////////////////////////////////////////
> > //This checks downwards .Parameter "point" is the center of the ball
> > ///////////////////////////////////////////////////////
> > public void CheckPocketed(Point3f point){
> > Point3d end = new Point3d(0 ,-5 , 0 );
> > Point3d start = new Point3d(point);
> > SceneGraphPath[] result = null;
> > start.add( end);
> > PickSegment pickSegment= new PickSegment(start, end);
> > result = branch.pickAll(pickSegment);
> > if (result == null) { System.out.println("Ball Falling!"); }
> > else System.out.println("Ball NOT Falling!");
> > }
> > ///////////////////////////////////////////////////////
> > ////This is another class that creates the table and the lamp. I set
picking
> > capability bits too.
> > ///////////////////////////////////////////////////////
> > public class Table extends TransformGroup{
> > TransformGroup TableTG;
> > TransformGroup LampTG;
> > public Table() {
> > this.setCapability(Node.ENABLE_PICK_REPORTING);
> > String filename = "3DModel\\pooltable.3DS";
> > Scene theScene = null;
> > Scene accessory = null;
> > ///////////////////////
> > //Creating the Table///
> > Loader3DS loader = new Loader3DS();
> > TableTG = new TransformGroup();
> > try{
> > theScene = loader.load(filename);
> > TableTG.addChild(theScene.getSceneGroup());
> > TableTG.setCapability(Node.ENABLE_PICK_REPORTING);
> > TableTG.setPickable(true);
> > }
> > catch ( IOException e )
> > {
> > System.err.println( "** Exception: " + e.getMessage() );
> > e.printStackTrace( System.err );
> > }
> > Transform3D trans3D = new Transform3D();
> > trans3D.setTranslation(new Vector3f(0.0f,-0.8f,0.0f));
> > trans3D.setScale(0.7);
> > TableTG.setTransform(trans3D);
> > addChild(TableTG);
> >
> > //Etc. The file creates other elements that are add to transformgroups
> > other than TableTG.
> >
> >
> > THANK YOU
> > BASSAM
> >
> > ----- Original Message -----
> > From: "John Wright" <[EMAIL PROTECTED]>
> > To: <[EMAIL PROTECTED]>
> > Sent: Wednesday, June 02, 2004 2:59 PM
> > Subject: Re: [JAVA3D] picking the table
> >
> >
> >
> >>Bassam,
> >>
> >>Try using pickAll rather than pickAny. We ended up rewriting all our
> >>terrain following routines because of buggy picking utilities.
> >>
> >>- John Wright
> >>Starfire Research
> >>
> >>Bassam wrote:
> >>
> >>
> >>>I just want to add more details. The table was done by 3ds Max program
> >
> > and saved as 3ds format. I ,then, loaded it using John's Wright loader
and
> > add it to a transform group. I set the group's setPickable(true);
> >
> >>>The ball is a transform group which has sphere as child .using
> >
> > PickSegment ,I am picking from the center of the sphere (transformed
center)
> > downwards (I add a point below the center to it), but I am getting null.
> >
> >>>Have I missed somthing? What's wrong?
> >>>Bassam
> >>>
> >>>
> >>>
> >>>
> >>> I have a ball on a billliard table each is add to different transform
> >
> > group. The problem is that I am trying to make the ball to pick
downwards to
> > check if it is on the table or pocketed. However ,after picking
> > scenegraphpath is null, even though the ball is above the table. I am
using
> > Picksegment and calling branchgroup.pickAny().
> >
> >>> Can you help me telling me what is wrong?
> >>>
> >>> Bassam
> >>>
> >
> >
===========================================================================
> > 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".
> >>
> >>
> >
===========================================================================
> >
> >>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".
> >
>
>
===========================================================================
> 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".