Half-baked API (Camera position)

Pavel Safrata pavel.safrata at oracle.com
Wed Oct 16 01:04:27 PDT 2013


Hello,
it looks like we can't help releasing a not-fully-baked piece of API 
with FX8. We've added bunch of new APIs for 3D and did our best to make 
them work well. Unfortunately, there's been not enough time&priority to 
fine-tune their behavior in 2D world. Right now I'm concerned about 
camera position in scene. It is inherent in the 3D perspective camera 
that it has its specific position in world, but the 2D parallel camera 
as we have it projects everything to the XY plane basically by ignoring 
the Z coordinate, so the camera position doesn't matter all that much. 
However, some of the newly added APIs depend on it:

1. Near/far clip on camera. This obviously cannot work without knowing 
where the camera is. Right now the parallel camera does no clipping 
though, so I guess we are OK to go with it as a "known limitation".

2. PickResult on events which reports "intersectedDistance" between the 
camera and the picked point. This is worse because we can't just "not 
support" it - there will be some value and once somebody uses it we'll 
have a backward compatibility issue. The state right now is that the 
camera is (tentatively, by my arbitrary decision) at [0, 0, -1] and 
reports distances from there (note that as the camera renders 
everything, for nodes "in front of Z=-1" it reports negative distances). 
This may change when the camera position is properly discussed and 
specified.

Note that this post is *not* meant to discuss the camera position. Even 
if we could find the answer quickly (which I doubt), it's most probably 
too late to apply the change for FX8.

So finally here is my question: do you think it's OK to solve this by 
keeping the current behavior and documenting the "intersectedDistance" 
in a way that for parallel camera the numbers are unspecified and 
subject to change in future versions? Or would you prefer something more 
drastic like throwing an UnsupportedOperationException (losing the 
possibility to compare the distances)?

Thanks,
Pavel


More information about the openjfx-dev mailing list