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