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".