> Date:         Tue, 22 Jan 2002 09:21:33 +0100
> From: "Dipl. Ing. Paul Szawlowski" <[EMAIL PROTECTED]>
>
> Mark Hood schrieb:
>
> > If that's the case then setting the screen scale is the appropriate
> > solution.  Call the setScreenScalePolicy() method of the view with the
> > View.SCALE_EXPLICIT policy, and then call setScreenScale() with the desired
> > scale.
>
> From an email of  K. Rushforth ( in the archives):
>
> View.setScale is supported in perspective mode. However, in the default case
> where (0,0,0) in view platform coordinates is centered about the eye (view
> attach policy of NOMINAL_HEAD), a scale will have no visible effect on the
> size of the object, due to perspective.

Thanks, Paul, I stand corrected.  I should have thought about it some more
before making that assertion.  The screen scale is applied about the origin of
the view platform, and when the view platform is centered about the eye the
scaling of object distances will cancel the effect of scaling the object size
when the object is projected.

<boring details follow>

I talked with Kevin Rushforth about this, and his original email should be
refined to note that with the default view attach policy of NOMINAL_HEAD, the
origin of view platform coordinates follows the eye position only when the
window eyepoint is at its default value of RELATIVE_TO_FIELD_OF_VIEW.  For all
other window eyepoint policies, the NOMINAL_HEAD view attach policy uses the
nominalEyeOffsetFromNominalScreen attribute of PhysicalBody to place the view
platform origin.

This means that with the original poster's window eyepoint policy of
RELATIVE_TO_WINDOW, some effect on the apparent size of the object might occur
with a new screen scale.  Using a view attach policy of NOMINAL_SCREEN, which
places the view platform origin at the center of coexistence (usually the
middle of the screen), will also cause an apparent scaling effect when
adjusting the screen scale.  But in general, screen scale is intended to set
the scale factor between the virtual world and the physical world, and isn't
recommended to effect zooming in perspective mode as I erroneously stated.

> Date:         Mon, 21 Jan 2002 09:32:41 +0100
> From: "Dipl. Ing. Paul Szawlowski" <[EMAIL PROTECTED]>
>
> In this case I think you have to use the setLeftManualEyeInImagePlate and
> setRightManualEyeInImagePlate methods of Canvas3D. Read the Accessing and
> Modifying an Eye's Image Plate Position description in the API documentation
> of Canvas3D

Your original response is correct.  The eyepoint will move relative to the view
platform origin and the virtual world however, since RELATIVE_TO_WINDOW is in
effect and the view platform origin follows the eye position with the
NOMINAL_HEAD view attach policy only if RELATIVE_TO_FIELD_OF_VIEW is in effect.
The only easy way to get a real zoom without moving the eyepoint is to use the
default RELATIVE_TO_FIELD_OF_VIEW eyepoint policy with the default NOMINAL_HEAD
view attach policy and then to adjust the field of view.

Thanks -- Mark Hood

===========================================================================
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