Doug,

It works!  So where do I send the six-pack?  Thank you so very much!

Regards,

Gregory Bradford

Doug Gehringer wrote:
>
> > Now all I want to do is supply a (valid for my canvas) pixel X and Y and
> > get back a Point3d which indicates what value the pixel X and Y are in
> > my data's coordinate system.
>
> Here is a solution using some of the cool new stuff in J3D 1.2:  Create a non
> visible polygon which passes through the center of your data space and then use
> the picking utilities to find a point on the polygon which is at the x,y screen
> location.
>
> Create your polygon and make it non-visible using
>
>     RenderingAttributes.setVisible(false);
>
> If possible, make the rest of your data non-pickable.
>
> Generate your MC point using the pick utilities.  At init:
>
>           PickCanvas pickCanvas = new PickCanvas(canvas, scene);
>           pickCanvas.setMode(PickTool.GEOMETRY_INTERSECT_INFO);
>
> Then for your mouse event:
>
>           pickCanvas.setShapeLocation(mouseEvent);
>           PickResult[] results = pickCanvas.pickAll();
>
> The MC point will then be
>
>         Point3d mcPoint = results[0].getIntersection(0).getPointCoordinates();
>
> This assumes that the polygon is the only pickable part of your scene.  If not,
> then you may get back more than one PickResult. You'll need to figure out which
> PickResult has your polygon:
>
>         if (results.length > 0) {
>           for (int i = 0; i < results.length; i++) {
>             if (results[i].getObject() == <your polygon>) {
>                 mcPoint = results[i].getIntersection(0).getPointCoordinates();
>             }
>           }
>         }
>
> If your data space can be rotated to any orientation, then this method may fail
> because you rotate the pick polygon so that it is edge-on.  You can fix this by
> making three polygons through your data space which are aligned with the X, Y
> and Z axes, so that you will always get an intersection.  You can then use any
> of the intersections of the PickRay with your polygons for your MC point.
>
> Hope this helps,
>
> Doug Gehringer
> Sun Microsystems
>
> ===========================================================================
> 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".
begin:vcard
n:Bradford;Gregory
tel;fax:408-736-8447
tel;work:408-736-2822
x-mozilla-html:FALSE
adr:;;;;;;
version:2.1
email;internet:[EMAIL PROTECTED]
fn:Gregory Bradford
end:vcard

Reply via email to