JDK-8102189 : FX 8 3D: Change fixedEyePosition in PerspectiveCamera to a more descriptive name
  • Type: Enhancement
  • Component: javafx
  • Sub-Component: graphics
  • Affected Version: 8
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2013-04-12
  • Updated: 2015-06-16
  • Resolved: 2013-05-14
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 8
8Fixed
Related Reports
Blocks :  
Blocks :  
Relates :  
Relates :  
Description
In legacy camera mode: The projection plane and the device independent unit match with 2D ParallelCamera. Resizing the window will either see more or less of the scene. Objects in the scene will stay at the same size. 
In the new camea mode: The eye position remain fix in the local coordinate of the camera. Resizing the window will deduce or enlarge the scene. The coverage of the scene remain the same, but objects in the scene will shrink or grow proportionally to the resized window.
We propose to rename the new camera mode as autoResize to imply the objects in the scene will automatically resize with the size of the window. 
In legacy camera mode: The projection plane and the device independent unit match with 2D ParallelCamera. Resizing the window will either see more or less of the scene. Objects in the scene will stay at the same size. 
In the new camea mode: The eye position remain fix in the local coordinate of the camera. Resizing the window will deduce or enlarge the scene. The coverage of the scene remain the same, but objects in the scene will shrink or grow proportionally to the resized window.
We propose to rename the new camera mode as autoResize to imply the objects in the scene will automatically resize with the size of the window. 
Comments
Renamed fixedEyePosition to fixedEyeAtCameraZero.
14-05-2013

Renamed fixedEyePosition to fixedEyeAtCameraZero.
14-05-2013

Fixed. Changeset: 8659bf5391e3 Author: Chien Yang <chien.yang@orcale.com> Date: Tue May 14 09:07:01 2013 -0700 URL: http://jfxsrc.us.oracle.com/javafx/8.0/scrum/graphics/rt/rev/8659bf5391e3
14-05-2013

Fixed. Changeset: 8659bf5391e3 Author: Chien Yang <chien.yang@orcale.com> Date: Tue May 14 09:07:01 2013 -0700 URL: http://jfxsrc.us.oracle.com/javafx/8.0/scrum/graphics/rt/rev/8659bf5391e3
14-05-2013

What about isCentered?
07-05-2013

What about isCentered?
07-05-2013

It seems that there is no perfect name, but my concern with the name "manual" is that it isn't clear what the meaning of "manual" is, without reading the documentation. Does "manual" mean: "manual clipping planes"? "manual aperture"? "manual focus"? Kevin suggested the following addition to the documentation: "We recommend using the XXXX mode if you are going to transform the camera. Transforming the camera in non-XXXX mode may lead to results that are not intuitive." I think Kevin's suggestion actually captures the essence of the new camera mode, a mode where you "transform the camera". Given this key characteristic of the new camera, the intent of which is the "transform the camera", I'd like to suggest the following possible options: transformCamera transformPosition transformEye These words do not have the same issue as "movable", as we are describing the intended use, which is to "transform the camera". On other other hand, the word, "transformable", would come across the same issues as the word "movable", and therefore should be avoided.
06-05-2013

It seems that there is no perfect name, but my concern with the name "manual" is that it isn't clear what the meaning of "manual" is, without reading the documentation. Does "manual" mean: "manual clipping planes"? "manual aperture"? "manual focus"? Kevin suggested the following addition to the documentation: "We recommend using the XXXX mode if you are going to transform the camera. Transforming the camera in non-XXXX mode may lead to results that are not intuitive." I think Kevin's suggestion actually captures the essence of the new camera mode, a mode where you "transform the camera". Given this key characteristic of the new camera, the intent of which is the "transform the camera", I'd like to suggest the following possible options: transformCamera transformPosition transformEye These words do not have the same issue as "movable", as we are describing the intended use, which is to "transform the camera". On other other hand, the word, "transformable", would come across the same issues as the word "movable", and therefore should be avoided.
06-05-2013

Jasper is happy with any of the following: true = 3D "movableCamera", "manualCamera" true = 2D "autoResize", "autoCamera" However, Kevin suggested that Camera can be dropped by 3D case since this is in a PerspectiveCamera. We started with movable, but soon realized that it can be misleading as the method isMovable() on Camera which is a Node can be misinterpreted that the Node is not movable in the leagacy mode. Hence this webrev is done with name changed to "manual".
03-05-2013

Jasper is happy with any of the following: true = 3D "movableCamera", "manualCamera" true = 2D "autoResize", "autoCamera" However, Kevin suggested that Camera can be dropped by 3D case since this is in a PerspectiveCamera. We started with movable, but soon realized that it can be misleading as the method isMovable() on Camera which is a Node can be misinterpreted that the Node is not movable in the leagacy mode. Hence this webrev is done with name changed to "manual".
03-05-2013

Another possibility, which is simpler from the user's perspective perhaps, is call the legacy mode "originInUpperLeftCorner" mode. This is the distinctive trademark of the 2D, legacy mode, where the camera works behind the scenes to ensure that the origin stays in the upper left corner regardless of the window size. The new camera mode for 3D is really just as simple as the eye being where the camera's transform is. No automatic movement based on a window resize. Maybe "eyeAtTransform" could describe that? In any event, I agree with Jasper that the word "auto" feels like it does describe what is happening with the 2D parallel camera.
02-05-2013

Another possibility, which is simpler from the user's perspective perhaps, is call the legacy mode "originInUpperLeftCorner" mode. This is the distinctive trademark of the 2D, legacy mode, where the camera works behind the scenes to ensure that the origin stays in the upper left corner regardless of the window size. The new camera mode for 3D is really just as simple as the eye being where the camera's transform is. No automatic movement based on a window resize. Maybe "eyeAtTransform" could describe that? In any event, I agree with Jasper that the word "auto" feels like it does describe what is happening with the 2D parallel camera.
02-05-2013

I like the contrast between auto and local. Manual, however, i'm not sure about. It seems to be a question of whether the eye is local to the camera's coordinate system, or whether the eye is automatically controlled by a more complex movement. Auto = the legacy camera mode, eye is automatically moved based on resizing the window. Local = the new camera mode, eye is local to the coordinate system of the camera. I feel like "autoResize" is confusing because, there is much more that is "automatically" happening in the legacy camera mode in terms of camera positioning.
02-05-2013

I like the contrast between auto and local. Manual, however, i'm not sure about. It seems to be a question of whether the eye is local to the camera's coordinate system, or whether the eye is automatically controlled by a more complex movement. Auto = the legacy camera mode, eye is automatically moved based on resizing the window. Local = the new camera mode, eye is local to the coordinate system of the camera. I feel like "autoResize" is confusing because, there is much more that is "automatically" happening in the legacy camera mode in terms of camera positioning.
02-05-2013

Or "localEye", since this would describe how the eye is local to camera's coordinate system.
02-05-2013

Or "localEye", since this would describe how the eye is local to camera's coordinate system.
02-05-2013

I am thinking its really simpler than what we have been thinking. Its really just "auto" or "manual" modes. Where modes are manual developer controlled camera position and auto framework controlled to match 2D parallel camera.
02-05-2013

I am thinking its really simpler than what we have been thinking. Its really just "auto" or "manual" modes. Where modes are manual developer controlled camera position and auto framework controlled to match 2D parallel camera.
02-05-2013

Instead of fixedEyePosition or autoResize, how about "localCoordinate", since the eye is in the local coordinate of the camera?
02-05-2013

Instead of fixedEyePosition or autoResize, how about "localCoordinate", since the eye is in the local coordinate of the camera?
02-05-2013